
Soy responsable de la administración de una caja Centos 7 en mi trabajo por contrato. Realmente soy más un desarrollador y no un gran administrador de Linux, así que tengan paciencia conmigo y tal vez intenten explicarme esto como si tuviera 5 años.
Una de las aplicaciones en las que estamos trabajando necesitaba algo llamadopdftk. Desafortunadamente, una dependencia es algo llamado libgcj. Leí que libgcj se considera obsoleto y ya no se "incluye" con el nuevo Centos 7.
Entonces, hice esto:
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
Y sí, pdftk funciona ahora. Sin embargo, he estado leyendo y he determinado que era una mala idea. No se dan razones de por qué esto fue una estupidez. Entonces, ¿alguien podría arrojarme algo de luz sobre por qué no debería haber hecho esto? ¿O quizás darme algún consejo o precauciones que debo tomar ahora? Tengo miedo de reiniciar el servidor o instalar actualizaciones hasta que sepa que esto no romperá nuestra caja.
Gracias de antemano.
Respuesta1
Esto no pretende ser una respuesta completa, pero como hasta ahora nadie ha proporcionado razones de por qué este no es el procedimiento, PUEDE ser una mala idea:
Ciertas versiones de paquetes dependen de funciones proporcionadas por bibliotecas externas. Esas bibliotecas cambian con el tiempo y, en ese proceso, posiblemente cambien su comportamiento o incluso eliminen funciones por completo. Pasar de EL6 a EL7 es un paso bastante grande, por lo que podría haber una nueva versión del paquete/biblioteca XYZ, que generalmente podría funcionar con la versión instalada del paquete, pero no en su totalidad.
En su caso, pdftk generalmente podría funcionar como se esperaba, pero en algunos casos especiales podría haber una llamada a una función, que no funcionará con el resto de los paquetes instalados y, por lo tanto, podría fallar o comportarse inesperadamente. Evaluar dónde tiene su origen este mal comportamiento sería muy complicado entonces.
Puede haber muchas otras razones para no hacer esto, pero esto es lo primero que pienso, y para los sistemas de producción la estabilidad es clave. Por lo tanto, no mezclaría versiones que no estén diseñadas para una versión específica del sistema operativo. Al menos no sin pruebas exhaustivas.
Respuesta2
El principal problema es:
no es compatible
Puede utilizar algunas líneas de comando para incorporar gcc-java
, libgcj
, libgcj-devel
a su sistema. Sin embargo, este software no es compatible con CentOS 7. Es más probable que las cosas se rompan cuando utiliza configuraciones que no son compatibles. Lo que nos lleva a...
Rackspace no lo admitirá.Una ventaja de usar CentOS sobre Ubuntu es, por supuesto, que tiene un mejor soporte empresarial. Pierdes todo eso cuando usas configuraciones no compatibles como esta. Entonces, si le dice a Rackspace "hagame un servidor con el software XYZ, incluido pdftk", le dirán "no".
Si alguien más NECESITA pdftk para trabajar en CentOS 7 en una configuración compatible, existe una bifurcación para reescribir las partes de Java y lograr que sea aceptado en CentOS 7. Mi empresa NECESITA esto y no tengo tiempo para hacerlo, así que estamos iniciando un recompensa por este trabajo. Te invito a ver esta recompensa y bifurcación enhttps://github.com/fulldecent/pdftk