Установка Glibc-2.3.2

Ожидаемое время сборки: 12.3 SBU
Ожидаемое место на диске: 784 MB

Описание Glibc

Glibc является библиотекой C, которая обеспечивает системные вызовы и основные функции, такие как  open, malloc, printf и другие. Библиотека C используется всеми динамически скомпоноваными программами.

Устанавливаемые программы: catchsegv, gencat, getconf, getent, glibcbug, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale, localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen, rpcinfo, sln, sprof, tzselect, xtrace, zdump и zic

Устанавливаемые библиотеки: ld.so, libBrokenLocale.[a,so], libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], libc_nonshared.a, libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a, libm.[a,so], libmcheck.a, libmemusage.so, libnsl.a, libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so, libpcprofile.so, libpthread.[a,so], libresolv.[a,so], librpcsvc.a, librt.[a,so], libthread_db.so и libutil.[a,so]

Зависимости установки Glibc

Glibc зависит от: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Gettext, Grep, Make, Perl, Sed, Texinfo.

Установка Glibc

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

Замечание: Тестирование Glibc в этой главе является критичным. Ни в коем случае нельзя его пропускать.

Перед началом сборки Glibc не забудьте снова распаковать Glibc-linuxthreads в дмректории glibc-2.3.2 и отключить переменные окружения, отвечающие за флаги оптимизации сборки.

На стадии установки Glibc выдает ошибку при отсутствии файла /etc/ld.so.conf. Исправим это командой:

touch /etc/ld.so.conf

Применим ранее использовавшийся патч:

patch -Np1 -i ../glibc-2.3.2-sscanf-1.patch

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

mkdir ../glibc-build
cd ../glibc-build

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

../glibc-2.3.2/configure --prefix=/usr \
--disable-profile --enable-add-ons \
--libexecdir=/usr/bin --with-headers=/usr/include

Описание параметров конфигурации:

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

make

Протестируем результаты:

make check

Тестирование, описаное в части Установка Glibc-2.3.2 Главы 5, будет очень уместно здесь. Убедитесь перед продолжением установки, что все в порядке.

И установим пакет:

make install

Локали позволят вашей системе работать на разных языках. Их установка не обеспечивается предыдущей командой, вам надо зделать это с помощью:

make localedata/install-locales

Альтернативой запуску предыдущей команды будет установка только необходимых вам локалей. Это обеспечивается запуском команды localedef.Информацию о ней можно получить из файла INSTALL file из директории с glibc-2.3.2. Тем не менее, есть ряд локалей, которые необходимы для успешного прохождения некоторых тестов других пакетов. Следующие инструкции установят минимально необходимый набор локалей:

mkdir -p /usr/lib/locale
localedef -i de_DE -f ISO-8859-1 de_DE
localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
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 es_MX -f ISO-8859-1 es_MX
localedef -i fr_FR -f ISO-8859-1 fr_FR
localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
localedef -i it_IT -f ISO-8859-1 it_IT
localedef -i ja_JP -f EUC-JP ja_JP

Наконец, соберем man страницы для linuxthreads:

make -C ../glibc-2.3.2/linuxthreads/man

И установим их:

make -C ../glibc-2.3.2/linuxthreads/man install

Конфигурирование Glibc

Нам нужно создать файл /etc/nsswitch.conf потому, что по умолчанию Glibc не создает этот файл, а  без него Glibc не работает с сетью. Также это надо для работы с вашей временной зоной.

Создадим новый файл /etc/nsswitch.conf запуском следующих команд:

cat > /etc/nsswitch.conf << "EOF"
# Begin /etc/nsswitch.conf

passwd: files
group: files
shadow: files

publickey: files

hosts: files dns
networks: files

protocols: db files
services: db files
ethers: db files
rpc: db files

netgroup: db files

# End /etc/nsswitch.conf
EOF

Для определения вашей временной зоны, запустите скрипт:

tzselect

Когда вы ответите на некоторые вопросы о вашим местонахождении, скрипт выдаст вам вашу временную зону. Что-то наподобие EST5EDT или Canada/Eastern. Создадим файл /etc/localtime запуском:

cp --remove-destination /usr/share/zoneinfo/Canada/Eastern /etc/localtime

Описание параметров:

Само собой, вам надо заменить Canada/Eastern на вашу временную зону, которую мы определили с помощью скрипта tzselect.

Настройка динамического загрузчика

По умолчанию, динамический загрузчик (/lib/ld-linux.so.2) ищет динамические библиотеки, необходимые для программ, в  /lib и /usr/lib. Таким образом, если есть директории с библиотеками, отличные от /lib и /usr/lib, вам надо указать их в файле /etc/ld.so.conf. Две наиболее распространенные директории с дополнительными библиотеками находятся в /usr/local/lib и /opt/lib, и мы добавим их в путь поиска динамического компоновщика.

Создадим новый файл /etc/ld.so.conf запуском команды:

cat > /etc/ld.so.conf << "EOF"
# Begin /etc/ld.so.conf

/usr/local/lib
/opt/lib

# End /etc/ld.so.conf
EOF