Ошибка установки Binutils 2.29 при попытке создать дистрибутив Linux с помощью инструкций «Linux From Scratch»

442
Nathanael Carper

Я пытаюсь создать дистрибутив Linux с Linux From Scratch (LFS) версии 8.1 . Я создаю его с помощью ElementaryOS (которая основана на Ubuntu), которую я установил на VirtualBox на моем Mac. У меня есть небольшой опыт работы с Linux, поэтому у меня есть представление о том, что я делаю.

Все шло хорошо, пока я не попал в раздел 5.4 в книге. В этом разделе рассказывается, как скомпилировать и установить Binutils 2.29 (в книге указано, что я должен использовать версию 2.29, поскольку более новые версии еще не были протестированы для Linux с нуля ). Когда я добрался до этой части книги, казалось, ничего не получилось. Вот что я сделал:

Следуя книге, я приготовился скомпилировать ее с помощью этой команды:

./configure --prefix=/tools  --with-sysroot=$LFS  --with-lib-path=/tools/lib  --target=$LFS_TGT  --disable-nls  --disable-werror 

После того, как я это сделал, я скомпилировал его make. Так как я работаю на 64-битной машине и системе, я выполнил это в соответствии с инструкциями после компиляции:

case $(uname -m) in x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;; esac 

Затем я выполнил, make installи именно здесь у меня начались проблемы. Терминал дал мне это:

make[1]: Entering directory '/media/nathanael/f2f5c607-926f-4931-ba6e-4e4fd6f08eee/build' /bin/bash ./mkinstalldirs /tools /tools mkdir -p -- /tools /tools mkdir: cannot create directory ‘/tools’: File exists mkdir: cannot create directory ‘/tools’: File exists Makefile:2466: recipe for target 'installdirs' failed make[1]: *** [installdirs] Error 1 make[1]: Leaving directory '/media/nathanael/f2f5c607-926f-4931-ba6e-4e4fd6f08eee/build Makefile:2224: recipe for target 'install' failed make: *** [install] Error 2 

У меня было несколько проблем, прежде чем я дошел до этого момента, к счастью, мне удалось их исправить, но этот сбивает меня с толку. Любые предложения о том, что я должен делать?

Я отклонился от книги в одном месте. Книга заставила меня создать непривилегированного пользователя, lfsкоторого я должен был использовать при компиляции (таким образом, вероятность случайного разрушения системы была бы низкой). Но у меня были проблемы с компиляцией lfs. Я попробовал несколько вещей, чтобы заставить его работать, но обнаружил, что просто компиляция с правами администратора работает лучше всего. Надеюсь, что это не вызовет проблем в долгосрочной перспективе.

Любая помощь будет принята с благодарностью.

3
Вы пробовали `sudo make install` вместо` make install`? JakeGould 6 лет назад 0
@ JakeGould Да, я сделал, и я получил ту же ошибку. Nathanael Carper 6 лет назад 1
Таким образом, ваш вопрос гласит «Binutils 2.29», но когда я смотрю на инструкции, он говорит: «Binutils 2.29.1». [Разница здесь не кажется напрямую связанной с тем, что вы видите] (https://fossies.org/ diffs / binutils / 2.29_vs_2.29.1 / ChangeLog-diff.html), но что я знаю. JakeGould 6 лет назад 0

1 ответ на вопрос

-1
szymszl

Кажется, что каталог сборки загроможден.

Попробуйте запустить make clean.

Добро пожаловать в суперпользователя: хотя это может или не может ответить на вопрос, было бы лучше ответить, если бы вы могли предоставить более подробное объяснение и простые для выполнения инструкции. Да, ваш ответ может дать ответ этому пользователю, но будущие читатели могут не понимать достаточно, чтобы ответ был полезным. В любом случае спасибо за ответ. Пожалуйста, уделите пару минут и прочитайте: - http://superuser.com/help. Ответ: http://superuser.com/help/how-to-answer, снова добро пожаловать в superuser и продолжайте отвечать. Спасибо mic84 6 лет назад 0
Если я запущу `make clean`, придется ли мне снова его компилировать? Если я правильно помню, `make clean` хорошо очистит каталог, но потребует от меня перекомпиляции пакета снова. Я попробую. Nathanael Carper 6 лет назад 0