Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

6.9.1. Установка Glibc


Внимание

Система сборки Glibc является самодостаточной и установится идеально, даже если файл спецификаций компилятора и компоновщик все еще указывают на /инструменты. Спецификации и компоновщик не могут быть изменены до установки Glibc, потому что тесты автоконфигурации Glibc дадут ложные результаты и нарушат цель достижения чистой сборки.

Внимание

Система сборки Glibc является самодостаточной и установится идеально, даже если файл спецификаций компилятора и компоновщик все еще указывают на /инструменты. Спецификации и компоновщик не могут быть изменены до установки Glibc, потому что тесты автоконфигурации Glibc дадут ложные результаты и нарушат цель достижения чистой сборки.

Некоторые программы Glibc используют компилятор, отличный от FHS. / var / db каталог для хранения их данных времени выполнения. Примените следующий патч, чтобы такие программы сохраняли свои данные времени выполнения в FHS-совместимых местах:


патч -Np1 -i ../glibc-2.30-fhs-1.patch

патч -Np1 -i ../glibc-2.30-fhs-1.patch


Исправьте проблему, возникшую в ядре linux-5.2:


sed -i '/asm.socket.h/a# включить '\ sysdeps / unix / sysv / linux / бит / сокет.h

sed -i '/asm.socket.h/a# включить '\ sysdeps / unix / sysv / linux / бит / сокет.h


изображение

-сфв

-сфв

-сфв

-сфв

../lib/ld-linux-x86-64.so.2 / lib64

../lib/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3

../lib/ld-linux-x86-64.so.2 / lib64

../lib/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3

Создайте символическую ссылку для соответствия LSB. Кроме того, для x86_64 создайте символическую ссылку совместимости, необходимую для правильной работы динамического загрузчика:


case $ (uname -m) в

case $ (uname -m) в


i? 86) ln

;;

x86_64) лин

ln

;;

ESAC

-сфв

ld-linux.so.2 /lib/ld-lsb.so.3

i? 86) ln

;;

x86_64) лин

ln

;;

ESAC

Документация Glibc рекомендует собирать Glibc в специальном каталоге сборки:


mkdir -v сборка cd сборка

mkdir -v сборка cd сборка


изображение

Подготовьте Glibc к компиляции:


CC = "gcc -ffile-prefix-map = / tools = / usr" \

../configure --prefix = / usr

--disable-ошибка

--enable-kernel = 3.2

--enable-stack-protector = сильный

--with-headers = / usr / include libc_cv_slibdir = / lib

\

\

\

\

\

CC = "gcc -ffile-prefix-map = / tools = / usr" \

../configure --prefix = / usr

--disable-ошибка

--enable-kernel = 3.2

--enable-stack-protector = сильный

--with-headers = / usr / include libc_cv_slibdir = / lib


Значение опций и новых параметров настройки:


CC = "gcc -ffile-prefix-map = / tools = / usr"

Заставьте GCC записывать любые ссылки на файлы в / tools в результате компиляции, как если бы файлы находились в / usr. Это позволяет избежать введения неверных путей в отладочные символы.

--disable-ошибка

Этот параметр отключает параметр -Werror, передаваемый GCC. Это необходимо для запуска набора тестов.

--enable-stack-protector = сильный

Этот параметр повышает безопасность системы за счет добавления дополнительного кода для проверки переполнения буфера, например атак с разбиением стека.

--with-headers = / usr / include

Эта опция сообщает системе сборки, где найти заголовки API ядра. По умолчанию эти заголовки ищутся в

/ tools / include.

libc_cv_slibdir = / библиотека

Эта переменная устанавливает правильную библиотеку для всех систем. Мы не хотим, чтобы использовалась lib64.

Скомпилируйте пакет:


сделать

сделать


Важнo

В этом разделе набор тестов для Glibc считается критически важным. Не пропускайте его ни при каких обстоятельствах.

Важнo

В этом разделе набор тестов для Glibc считается критически важным. Не пропускайте его ни при каких обстоятельствах.


изображение

изображение

изображение

/ lib ;;

/ lib ;;

-sfnv $ PWD / elf / ld-linux-x86-64.so.2 / lib ;;

-sfnv $ PWD / elf / ld-linux-x86-64.so.2 / lib ;;

Как правило, некоторые тесты не проходят. Перечисленные ниже сбои тестов обычно можно игнорировать.


case $ (uname i? 86) ln x86_64) ln

ESAC

-m) в

-sfnv $ PWD / elf / ld-linux.so.2

case $ (uname i? 86) ln x86_64) ln

ESAC


Внимание

Приведенная выше символическая ссылка необходима для запуска тестов на этом этапе сборки в среде chroot. Он будет перезаписан на этапе установки ниже.

Внимание

Приведенная выше символическая ссылка необходима для запуска тестов на этом этапе сборки в среде chroot. Он будет перезаписан на этапе установки ниже.


делать чек

делать чек

Вы можете увидеть некоторые ошибки теста. Набор тестов Glibc в некоторой степени зависит от хост-системы. Это список наиболее распространенных проблем, наблюдаемых в некоторых версиях LFS:

разное / tst-ttyname известен сбой в среде chroot LFS.

inet / tst-idna_name_classify известен сбой в среде chroot LFS.

posix / tst-getaddrinfo4 и posix / tst-getaddrinfo5 может выйти из строя на некоторых архитектурах.

nss / tst-nss-files-hosts-multi Тест может не пройти по неустановленным причинам.


rt / tst-cputimer {1,2,3} тесты зависят от ядра хост-системы. Известно, что ядра 4.14.91–4.14.96, 4.19.13–4.19.18 и 4.20.0–4.20.5 приводят к сбою этих тестов.

• Математические тесты иногда терпят неудачу при запуске в системах, в которых процессор не является относительно новым процессором Intel или AMD.

Хотя это безобидное сообщение, на этапе установки Glibc будет жаловаться на отсутствие /etc/ld.so.conf. Предотвратить это предупреждение с помощью:


коснитесь /etc/ld.so.conf

коснитесь /etc/ld.so.conf


Исправьте сгенерированный Makefile, чтобы пропустить ненужную проверку работоспособности, которая не выполняется в частичной среде LFS:


sed '/ test-installation / s @ $ (PERL) @echo not running @' -i ../Makefile

sed '/ test-installation / s @ $ (PERL) @echo not running @' -i ../Makefile


Установите пакет:


сделать установку

сделать установку


Установите файл конфигурации и каталог времени выполнения для NSCD:


cp -v ../nscd/nscd.conf /etc/nscd.conf mkdir -pv / var / cache / nscd

cp -v ../nscd/nscd.conf /etc/nscd.conf mkdir -pv / var / cache / nscd


Затем установите локали, которые могут заставить систему реагировать на другом языке. Ни одна из локалей не требуется, но если некоторые из них отсутствуют, тестовые наборы будущих пакетов будут пропускать важные тестовые наборы.


Индивидуальные языковые стандарты могут быть установлены с помощью локальдеф программа. Например, первая локальдеф команда ниже объединяет / usr / share / i18n / locales / cs_CZ независимое от кодировки определение локали с / usr / share / i18n / charmaps / UTF-8.gz определение charmap и добавляет результат в / usr / lib / locale / locale- архив файл. Следующие инструкции установят минимальный набор локалей, необходимый для оптимального покрытия тестов:


изображение

mkdir -pv / usr / lib / locale

localedef -i POSIX -f UTF-8 C.UTF-8 2> / dev / null || истинный localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8

localedef -i de_DE -f ISO-8859-1 de_DE

localedef -i de_DE @ euro -f ISO-8859-15 de_DE @ euro localedef -i de_DE -f UTF-8 de_DE.UTF-8

localedef -i el_GR -f ISO-8859-7 el_GR localedef -i en_GB -f UTF-8 en_GB.UTF-8 localedef -i en_HK -f ISO-8859-1 en_HK localedef -i en_PH -f ISO-8859-1 en_PH localedef -i en_US -f ISO-8859-1 en_US localedef -i en_US -f UTF-8 en_US.UTF-8 localedef -i es_MX -f ISO-8859-1 es_MX localedef -i fa_IR -f UTF-8 fa_IR localedef - i fr_FR -f ISO-8859-1 fr_FR

localedef -i fr_FR @ euro -f ISO-8859-15 fr_FR @ euro localedef -i fr_FR -f UTF-8 fr_FR.UTF-8

localedef -i it_IT -f ISO-8859-1 it_IT localedef -i it_IT -f UTF-8 it_IT.UTF-8 localedef -i ja_JP -f EUC-JP ja_JP

localedef -i ja_JP -f SHIFT_JIS ja_JP.SIJS 2> / dev / null || истинный localedef -i ja_JP -f UTF-8 ja_JP.UTF-8

localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R localedef -i ru_RU -f UTF-8 ru_RU.UTF-8 localedef -i tr_TR -f UTF-8 tr_TR.UTF-8 localedef -i zh_CN -f GB18030 zh_CN .GB18030

localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS


Кроме того, установите локаль для вашей страны, языка и набора символов.

Или установите все языковые стандарты, перечисленные в glibc-2.30 / localedata / ПОДДЕРЖИВАЕТСЯ файл (он включает все перечисленные выше языковые стандарты и многие другие) сразу с помощью следующей трудоемкой команды:


сделать localedata / install-locales

сделать localedata / install-locales


изображение

Затем используйте локальдеф команда для создания и установки локалей, не перечисленных в glibc-2.30 / localedata / ПОДДЕРЖИВАЕТСЯ файл в том маловероятном случае, когда они вам понадобятся.


Внимание

Glibc теперь использует libidn2 при разрешении интернационализированных доменных имен. Это зависимость времени выполнения. Если эта возможность необходима, инструкции по установке libidn2 находятся на странице BLFS libidn2.

Внимание

Glibc теперь использует libidn2 при разрешении интернационализированных доменных имен. Это зависимость времени выполнения. Если эта возможность необходима, инструкции по установке libidn2 находятся на странице BLFS libidn2.


Лучшие облачные вычисления для ОС в OnWorks: