<Предыдущая | Содержание: | Следующая>
6.54.1. Установка Coreutils
POSIX требует, чтобы программы Coreutils правильно распознавали границы символов даже в многобайтовых языковых стандартах. Следующий патч исправляет это несоответствие и другие ошибки, связанные с интернационализацией.
патч -Np1 -i ../coreutils-8.31-i18n-1.patch
патч -Np1 -i ../coreutils-8.31-i18n-1.patch
Внимание
В прошлом в этом патче было обнаружено много ошибок. Сообщая разработчикам Coreutils о новых ошибках, сначала проверьте, воспроизводятся ли они без этого патча.
Внимание
В прошлом в этом патче было обнаружено много ошибок. Сообщая разработчикам Coreutils о новых ошибках, сначала проверьте, воспроизводятся ли они без этого патча.
Подавить тест, который на некоторых машинах может повторяться бесконечно:
sed -i '/test.lock/s/^/#/' gnulib-tests / gnulib.mk
sed -i '/test.lock/s/^/#/' gnulib-tests / gnulib.mk
Теперь подготовим Coreutils к компиляции:
autoreconf -fiv FORCE_UNSAFE_CONFIGURE = 1 ./configure \
--prefix = / usr \
--enable-no-install-program = kill, время безотказной работы
autoreconf -fiv FORCE_UNSAFE_CONFIGURE = 1 ./configure \
--prefix = / usr \
--enable-no-install-program = kill, время безотказной работы
Значение параметров настройки:
автореконф
Эта команда обновляет сгенерированные файлы конфигурации в соответствии с последней версией automake.
FORCE_UNSAFE_CONFIGURE = 1
Эта переменная среды позволяет создать пакет от имени пользователя root.
--enable-no-install-program = kill, время безотказной работы
Назначение этого переключателя - предотвратить установку Coreutils двоичных файлов, которые позже будут установлены другими пакетами.
Скомпилируйте пакет:
сделать
сделать
Перейдите к пункту «Установить пакет», если вы не запускаете набор тестов.
Теперь набор тестов готов к запуску. Сначала запустите тесты, которые предназначены для запуска от имени пользователя. корень:
сделать NON_ROOT_USERNAME = никто не проверяет root
сделать NON_ROOT_USERNAME = никто не проверяет root
Мы собираемся запустить оставшиеся тесты как никто Пользователь. Однако некоторые тесты требуют, чтобы пользователь был членом более чем одной группы. Чтобы эти тесты не пропускались, добавим временную группу и заставим пользователя никто его часть:
echo "пустышка: x: 1000: никто" >> / etc / group
echo "пустышка: x: 1000: никто" >> / etc / group
Исправьте некоторые разрешения, чтобы пользователь без полномочий root мог компилировать и запускать тесты:
chown -Rv никто.
chown -Rv никто.
Теперь запустим тесты. Убедитесь, что ПУТЬ в su среда включает / tools / bin.
su никто -s / bin / bash \
-c "ПУТЬ = $ ПУТЬ сделать RUN_EXPENSIVE_TESTS = да проверить"
su никто -s / bin / bash \
-c "ПУТЬ = $ ПУТЬ сделать RUN_EXPENSIVE_TESTS = да проверить"
Известно, что тестовая программа test-getlogin не работает в частично созданной системной среде, такой как здесь chroot-среда, но проходит, если запускается в конце этой главы. Известно также, что тестовая программа tty.sh завершилась неудачно.
Удалите временную группу:
sed -i '/ фиктивный / d' / и т. д. / группа
sed -i '/ фиктивный / d' / и т. д. / группа
Установите пакет:
сделать установку
сделать установку
Переместите программы в места, указанные FHS:
mv -v / usr / bin / {cat, chgrp, chmod, chown, cp, date, dd, df, echo} / bin mv -v / usr / bin / {false, ln, ls, mkdir, mknod, mv, pwd, rm} / bin
mv -v / usr / bin / {rmdir, stty, sync, true, uname} / bin mv -v / usr / bin / chroot / usr / sbin
mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8 sed -is / \ "1 \" / \ "8 \" / 1 / usr / share / man /man8/chroot.8
mv -v / usr / bin / {cat, chgrp, chmod, chown, cp, date, dd, df, echo} / bin mv -v / usr / bin / {false, ln, ls, mkdir, mknod, mv, pwd, rm} / bin
mv -v / usr / bin / {rmdir, stty, sync, true, uname} / bin mv -v / usr / bin / chroot / usr / sbin
mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8 sed -is / \ "1 \" / \ "8 \" / 1 / usr / share / man /man8/chroot.8
Некоторые сценарии в пакете LFS-Bootscripts зависят от , хороший, спатьи трогать. Так как / USR могут быть недоступны на ранних и поздних этапах загрузки, эти двоичные файлы должны находиться в корневом разделе для обеспечения соответствия FHS:
mv -v / usr / bin / {голова, приятно, спать, прикоснуться} / bin
mv -v / usr / bin / {голова, приятно, спать, прикоснуться} / bin