yes1111 (yes1111) wrote,
yes1111
yes1111

Category:

Поддержка glibc-2.17 и GLIBCXX_3.4.19, или то, чего вам так не хватало в RHEL6



Имел я сегодня неосторожность обновить свой любимый броузер Pale Moon. Причем не себе, а сотруднице. А его разработчики, оказывается, позавчера выложили версию 27.0 (предыдущей была 26.5.0 от 28.09.2016). И так нехорошо получилось, что новая версия запускаться категорически отказалась (дело было под Scientific Linux 6).

Поскольку времени разбираться на месте у меня не было, то я был вынужден вернуть обратно версию 26.5.0. А выяснять причину сел уже у себя. Оказалось, что новый Pale Moon требует glibc версии не ниже, чем 2.17. Что совсем грустно, т.к. крайнее официальное обновление имеет номер версии eще аж, 2.12-1.192, а найденное мною неофициальное, которое пару лет назад собрал английский народный умелец в рамках проекта по установке нативного Steam, - 2.15-60. Естественно, это мою проблему не решало.

Да, Scientific Linux 6 на сегодня дистрибутив, мягко говоря, далеко не новый. И даже, как бы, совсем наоборот. Но тем не менее, ведь работать-то надо! Тем более, что работа по массовой переустановке ОС на энном количестве компьютеров, с учетом объема и специфики стоЯщего на них софта, получается почти неподъемной. Итак, для выхода из создавшейся ситуации надо было найти (или собрать самому) glibc версии 2.17 или выше.

И, как выяснилось после непродолжительных поисков в Google, еще не перевелись таки на нашей планете хорошие люди! И не только не перевелись, а даже сделали за меня всю необходимую работу, позаимствовав необходимые пакеты у Fedora 20 и пересобрав их под EL6. Итак, знакомьтесь: репозиторий под неприметным названием mosquito-myrepo-el6. Чтобы воспоьзоваться его услугами, достаточно скачать файл mosquito-myrepo-el6.repo и сохранить его в папку /etc/yum.repos.d

Вот его содержимое (строчку enabled=1 лучше сразу поменять на enabled=0, чтобы система не обращалась туда лишний раз при установке каждого пакета):

[mosquito-myrepo-el6]
name=Copr repo for myrepo-el6 owned by mosquito
baseurl=https://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-$basearch/
type=rpm-md
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/pubkey.gpg
repo_gpgcheck=0
enabled=1
enabled_metadata=1


И далее просто обновляем glibc до версии 2.17-55 командой:

#yum --enablerepo=mosquito-myrepo-el6 install glibc

Внимание! После обновления glibc обязательно проверяем содержимое папки /etc. Если файл /etc/localtime в процессе установки был переименован в /etc/localtime.rpmsave или что-то подобное, то переименовываем его обратно. Иначе системные часы в трее будут показывать неправильное время!

Кроме обновленного glibc, там присутствуют еще и другие вкусности. Например, gcc-4.8.2. А в нем - замечательный пакет libstdc++-4.8.2-16.3, установка которого обновит библиотеку libstdc++.so.6 аж до версии libstdc++.so.6.0.19 (официально доступна только  libstdc++.so.6.0.13, ранее мне посчастливилось наковырять libstdc++.so.6.0.16). Это позволит без проблем устанавливать и запускать программы, требующие вплоть до GLIBCXX_3.4.19 включительно. В данном репозитории присутствует также и binutils-2.23.52.0.1-17.

В результате установки обновлений из данного репозитория мне удалось заставить работать не только Pale Moon 27.0, но и Google Chrome 54.0.2840.100 (текущая на момент написания данной статьи стабильная версия):



Ранее, до вышеупомянутого обновления системы, установка Google Chrome в данных дистрибутивах была сопряжена с определенными сложностями (см. статью по ссылке).

После обновления системных библиотек единственным нюансом остается тот момент, что при установке Google Chrome с помощью yum выскакивает сообщение о якобы неразрешенных зависимостях:

#yum --enablerepo=google-chrome install google-chrome-stable  --downloadonly
Загружены модули: fastestmirror, refresh-packagekit, security
Подготовка к установке
Loading mirror speeds from cached hostfile
 * sl: ftp.scientificlinux.org
 * sl-security: ftp.scientificlinux.org
Разрешение зависимостей
--> Проверка сценария
---> Package google-chrome-stable.x86_64 0:54.0.2840.100-1 will be для установки
--> Обработка зависимостей: libstdc++.so.6(GLIBCXX_3.4.14)(64bit) для пакета: google-chrome-stable-54.0.2840.100-1.x86_64
--> Обработка зависимостей: libstdc++.so.6(GLIBCXX_3.4.15)(64bit) для пакета: google-chrome-stable-54.0.2840.100-1.x86_64
--> Обработка зависимостей: libstdc++.so.6(GLIBCXX_3.4.18)(64bit) для пакета: google-chrome-stable-54.0.2840.100-1.x86_64
--> Проверка зависимостей окончена
Ошибка: Пакет: google-chrome-stable-54.0.2840.100-1.x86_64 (google-chrome)
            Необходимо: libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
Ошибка: Пакет: google-chrome-stable-54.0.2840.100-1.x86_64 (google-chrome)
            Необходимо: libstdc++.so.6(GLIBCXX_3.4.18)(64bit)
Ошибка: Пакет: google-chrome-stable-54.0.2840.100-1.x86_64 (google-chrome)
            Необходимо: libstdc++.so.6(GLIBCXX_3.4.14)(64bit)
 Вы можете попробовать --skip-broken чтобы обойти проблему
 Вы можете попробовать запустить: rpm -Va --nofiles --nodigest


На самом деле, библиотека libstdc++.so.6.0.19 обеспечивает поддержку вплоть до GLIBCXX_3.4.19, в чем легко убедиться, введя в терминале:
strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_DEBUG_MESSAGE_LENGTH


Поэтому просто скачиваем RPM-пакет (к примеру, google-chrome-stable-54.0.2840.100-1.x86_64.rpm) и устанавливаем его командой:

rpm -ivh google-chrome-stable-54.0.2840.100-1.x86_64.rpm --nodeps

Ключ --nodeps разрешает установку пакета с ингорированием зависимостей (на самом деле никакого нарушения зависимостей не происходит, и после установки все нормально работает).

Обновление glibc и libstdc++ позволило также успешно установить и запустить программу САПР DraftSight версии сначала 2016, а затем и 2017. Здесь установка и запуск прошли абсолютно гладко и без каких-либо особенностей; до обновления системы версия 2016 не работала, и при запуске "ругалась" на отсутствие нужной версии GLIBCXX_3.4.



Итак, благодаря обновлению системных библиотек из репозитория mosquito-myrepo-el6, стало возможным устанавливать и запускать под ОС Scientific Linux 6 (а значит, и с высокой вероятностью также и под Red Hat Enterprise Linux 6, CentOS 6, Oracle Linux 6 и т.п. дистрибутивами) прикладные программы, требующие наличия glibc 2.17 и GLIBCXX_3.4.19, которые раньше с этими дистрибутивами не работали. На очереди новые эксперименты. Давно хотел попробовать, к примеру, нативный клиент 1С 8.3, который раньше не ставился и не запускался по причине все тех же зависимостей.



Вы читаете зеркало моего журнала - yes1111.

Основной пост находится здесь: http://yes1111.dreamwidth.org/1439901.html

Tags: linux, записки сумасшедшего, компьютер, позитив
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 3 comments