как установить libc6 2.34 из исходников?

Вопрос или проблема

Я использую Linux Mint 20.2 Uma и пытаюсь обновить версию ядра linux. Я хочу установить версию ядра 5.15rc3, но проблема в том, что после загрузки .deb пакетов из mainline (https://kernel.ubuntu.com/~kernel-ppa/mainline/?C=N;O=D) и выполнения dpkg -i *.deb у меня возникает эта ошибка.

dpkg: проблемы с зависимостями препятствуют конфигурированию linux-headers-5.15.0-051500rc3-generic:
 linux-headers-5.15.0-051500rc3-generic зависит от linux-headers-5.15.0-051500rc3; однако:
  Пакет linux-headers-5.15.0-051500rc3 не установлен.
 linux-headers-5.15.0-051500rc3-generic зависит от libc6 (>= 2.34); однако:
  Версия libc6:amd64 в системе — 2.31-0ubuntu9.2.

Как я понимаю, мне нужно установить libc6. В настоящее время нет скомпилированной версии libc6 2.34 для Linux Mint, так что мне нужно сделать это самому. Я выполнил шаги из “Сборки glibc без установки” https://sourceware.org/glibc/wiki/Testing/Builds, и я скомпилировал lib, но что мне теперь нужно сделать, чтобы установить его? Мне просто нужно скопировать и вставить вывод сборки в мою корневую папку?

Лучше самостоятельно собрать ядро. Согласно моим тестам, когда используется make-kpkg для сборки deb-пакета ядра, будет сгенерирован только пакет ядра, соответствующий текущей среде системы (версии libc6). В то время как использование параметра make deb-pkg для сборки пакета ядра сгенерирует пакет, в дополнение к стандартному пакету ядра, будет сгенерирован новый deb-пакет, соответствующий libc6, который компилирует исходный код версии ядра. Например, я использовал make deb-pkg для компиляции из исходного кода ядра 6.6.1 под Debian 11 и получил дополнительную версию deb-пакета 2.38.

Ответ или решение

Для установки libc6 2.34 из исходников на Linux Mint 20.2 Uma, необходимо следовать нескольким важным шагам. Учтите, что обновление libc6 может повлиять на стабильность вашей системы, поэтому рекомендуется создавать резервные копии критически важных данных.

Подготовка к сборке

  1. Установка необходимых зависимостей:
    Перед тем как приступить к сборке, убедитесь, что у вас установлены все необходимые инструменты и зависимости. Выполните команду:

    sudo apt update
    sudo apt install build-essential bison python3 perl

    Также могут потребоваться дополнительные пакеты, такие как gawk, make, autoconf, automake.

  2. Скачивание исходников glibc:
    Перейдите на официальный сайт GNU C Library и загрузите нужную версию libc6 (в данном случае 2.34). Вы также можете использовать wget:

    wget http://ftp.gnu.org/gnu/libc/glibc-2.34.tar.gz
    tar -xvf glibc-2.34.tar.gz
    cd glibc-2.34

Сборка и установка

  1. Создание директории для сборки:
    Рекомендуется создать отдельную директорию для сборки:

    mkdir build
    cd build
  2. Настройка сборки:
    Вам необходимо настроить сборку glibc, указав необходимую архитектуру и директорию установки:

    ../configure --prefix=/usr/local/glibc-2.34
  3. Сборка libc6:
    Теперь, после настройки, выполните сборку:

    make
  4. Тестирование:
    Рекомендуется протестировать собранную библиотеку, прежде чем устанавливать её:

    make test
  5. Установка:
    Если тесты прошли успешно, вы можете установить библиотеку, но будьте осторожны. Установка новой версии libc может привести к нестабильности системы. Установите новую библиотеку в указанную директорию:

    sudo make install

Настройка динамического линковщика

  1. Обновление динамического линковщика:
    Чтобы система могла использовать новую версию libc6, необходимо обновить конфигурацию динамического линковщика:

    sudo ldconfig /usr/local/glibc-2.34/lib

Важно

  • Осторожность: Обновление libc может сломать совместимость с некоторыми установленными программами. Будьте готовы к возможным проблемам и, возможно, к необходимости восстановления системы.
  • Резервное копирование: Перед выполнением таких серьезных изменений сделайте полное резервное копирование системы.

Альтернативный подход

Как упоминалось в вашем вопросе, возможно, стоит рассмотреть возможность сборки ядра самостоятельно. Используйте make deb-pkg, что может обеспечить совместимость с текущей версией libc. Это менее рискованный способ обновления ядра, так как позволит избежать ручной установки новых библиотек, что может негативно сказаться на стабильности системы.

Следуя данным шагам, вы сможете установить libc6 2.34 из исходников. Однако не забывайте об осторожности и важных аспектах совместимости программного обеспечения.

Оцените материал
Добавить комментарий

Капча загружается...