
Я отвечаю за администрирование Centos 7 на своей контрактной работе. Я больше разработчик, чем админ Linux, так что, пожалуйста, потерпите и, возможно, попытайтесь объяснить мне это, как будто мне 5 лет.
Одно из приложений, над которым мы работаем, нуждалось в чем-то под названиемpdftk. К сожалению, зависимость для него — это что-то под названием libgcj. Я читал, что libgcj считается устаревшим и больше не «поставляется» с новым Centos 7.
Итак, я сделал следующее:
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libgcj-4.4.7-11.el6.x86_64.rpm
wget https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk-2.02-1.el6.x86_64.rpm
rpm -ivh --nodeps libgcj-4.4.7-11.el6.x86_64.rpm
yum install pdftk-2.02-1.el6.x86_64.rpm
И ура, pdftk теперь работает. Однако я почитал и пришел к выводу, что это была плохая идея. Никаких причин, по которым это было глупым поступком, не было. Так может ли кто-нибудь пролить свет на то, почему мне не следовало этого делать? Или, может быть, дать мне какой-нибудь совет или меры предосторожности, которые мне следует предпринять сейчас? Я боюсь перезапускать сервер или устанавливать обновления, пока не буду уверен, что это не сломает нашу коробку.
Заранее спасибо.
решение1
Это не претендует на полный ответ, но поскольку до сих пор никто не привел причин, по которым эта процедура НЕ МОЖЕТ быть плохой идеей:
Определенные версии пакетов полагаются на функции, предоставляемые внешними библиотеками. Эти библиотеки со временем меняются, и в этом процессе возможно изменение их поведения или даже полное удаление функций. Переход с EL6 на EL7 — довольно большой шаг, поэтому может быть новая версия пакета/библиотеки XYZ, которая может в целом работать с вашей установленной версией пакета, но не в полном объеме.
В вашем случае pdftk может работать, как и ожидалось, но в некоторых особых случаях может быть вызов функции, который не будет работать с остальными установленными пакетами, и, таким образом, может дать сбой или вести себя неожиданно. Оценка того, где находится источник этого неправильного поведения, станет тогда очень сложной.
Может быть много других причин не делать этого, но это первое, что приходит мне в голову, а для производственных систем стабильность — это ключ. Поэтому я бы не стал путать версии, не предназначенные для конкретного выпуска ОС. По крайней мере, без тщательного тестирования.
решение2
Основная проблема:
Не поддерживается.
Вы можете использовать некоторые командные строки, чтобы добавить gcc-java
, libgcj
, libgcj-devel
в свою систему. Однако это программное обеспечение не поддерживается в CentOS 7. Вероятность поломки возрастает, когда вы используете такие конфигурации, которые не поддерживаются. Что приводит нас к...
Rackspace не будет его поддерживать.Преимущество использования CentOS по сравнению с Ubuntu, конечно, в том, что у него лучшая поддержка на уровне предприятия. Вы теряете все это, когда используете неподдерживаемые конфигурации, такие как эта. Так что если вы скажете Rackspace "идите, сделайте мне сервер с программным обеспечением XYZ, включая pdftk", они скажут вам "нет".
Если кому-то еще НУЖЕН pdftk для работы на CentOS 7 в поддерживаемой конфигурации, существует форк для переписывания частей Java и принятия его в CentOS 7. Моей компании это НУЖНО, а у меня нет времени этим заниматься, поэтому мы начинаем вознаграждение за эту работу. Я приглашаю вас ознакомиться с этим вознаграждением и форком наhttps://github.com/fulldecent/pdftk