{"id":30605,"date":"2020-12-22T09:47:44","date_gmt":"2020-12-22T08:47:44","guid":{"rendered":"https:\/\/eltallerdelbit.com\/?p=30605"},"modified":"2021-07-09T14:28:38","modified_gmt":"2021-07-09T12:28:38","slug":"actualizar-centos7-centos8-stream","status":"publish","type":"post","link":"https:\/\/eltallerdelbit.com\/actualizar-centos7-centos8-stream\/","title":{"rendered":"C\u00f3mo actualizar de CentOS7 a CentOS8 Stream"},"content":{"rendered":"
<\/p>\n
<\/p>\n
<\/p>\n
La noticia sobre el fin acelerado de Centos8 se puede ver en el email del anuncio publicado en centos.org<\/a>.<\/p>\n <\/p>\n <\/p>\n Y en el blog de CentOS la noticia del d\u00eda 8 de diciembre deja bien claro el tiempo de vida de CentOS 7 y 8<\/a>:<\/p>\n <\/p>\n <\/p>\n <\/p>\n En resumen, Centos<\/em> era una distribuci\u00f3n muy estable, un banco de pruebas para RedHa<\/em>t, pero seria, estable, con mucho desarrollo, actualizaciones y soporte; pero parece ser que por influencias de IBM, se ha tomado la decisi\u00f3n de “matar<\/em>” a CentOS.<\/p>\n Concretamente se ha acelerado el fin del ciclo de vida de la \u00faltima versi\u00f3n de CentOS<\/em>, o sea CentOS<\/em>8, que termina inesperadamente en 2021.<\/p>\n CentOS<\/em> 7 terminar\u00e1 su ciclo de vida en 2024. Tiene algo m\u00e1s de tiempo, pero ya tiene fecha de caducidad establecida, as\u00ed que … mal\u00a0 \u00a0\ud83d\ude41<\/p>\n La \u00fanica alternativa que se ofrece es la de CentOS Stream<\/em><\/strong>, que ser\u00e1 una rama de desarrollo de RedHat<\/em>. O sea, que quiz\u00e1s para servidores en producci\u00f3n tampoco es una alternativa viable … pero es la \u00fanica versi\u00f3n de CentOS que seguir\u00e1 viva. <\/p>\n <\/p>\n Es inviable mantener servidores en producci\u00f3n con CentOS<\/em> 8<\/strong>, as\u00ed que los servidores CentOS<\/em> 8 est\u00e1n forzados a desaparecer. Y aunque no sean servidores en producci\u00f3n, tampoco tiene mucho sentido mantener CentOS<\/em> 8 en ning\u00fan server, ya que dejar\u00e1 de tener soporte y actualizaciones.<\/p>\n En estos casos, ser\u00e1 inevitable migrar de CentOS<\/em> 8 a otra distribuci\u00f3n, como por ejemplo Ubuntu<\/em> o Debian LTS<\/em>; tambi\u00e9n se plantea la posibilidad de migrar a Oracle Linux<\/em><\/a> en los casos que proceda.<\/p>\n Tambi\u00e9n se est\u00e1 desarrollando Rocky Linux<\/a>, del ex fundador de CentOS. Veremos como funciona y si va ganando adeptos ..<\/p>\n La decisi\u00f3n m\u00e1s sencilla y r\u00e1pida para mantener un sistema operativo funcional y con soporte, es la de actualizar a RedHat<\/em>, pero esto requiere pagar por la licencia, y solo algunos lo har\u00e1n.<\/p>\n Los que no est\u00e9n dispuestos a pagar o no puedan afrontar el gasto (la mayor\u00eda), se ver\u00e1n forzados a buscar otras alternativas como las que hemos mencionado.<\/p>\n <\/p>\n Lo mismo, pero el fin de vida termina en 2024, parece que a\u00fan queda tiempo para replantearse qu\u00e9 hacer.<\/p>\n <\/p>\n Dicho todo esto, si quieres mantener tu CentOS<\/em>, tendr\u00e1s que atreverte a migrar a CentOS Stream<\/em> como \u00fanica alternativa viable (aunque repetimos que no parece ser una buena idea para servidores en producci\u00f3n ya que ser\u00e1 un banco de pruebas de RedHat<\/em>).<\/p>\n <\/p>\n As\u00ed que vamos a ver c\u00f3mo actualizar Centos7 a Centos8 Stream<\/strong>, realizando de forma intermedia una actualizaci\u00f3n a CentOS8 para despu\u00e9s migrar a CentOS Stream. (Solo despu\u00e9s de haber realizado la subida de versi\u00f3n de Centos7 a Centos8, podremos migrar a Centos8 Stream)<\/em><\/strong>.<\/p>\n <\/p>\n En este art\u00edculo:<\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n Lo primero nos aseguramos de tener instalados los repositorios epel en CentOS<\/a>:<\/p>\n <\/p>\n <\/p>\n <\/p>\n Instalamos tambi\u00e9n las herramientas yum-utils<\/em><\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n Instalamos rpmconf<\/em><\/p>\n Usamos rpmconf<\/em> para verificar conflictos en ficheros de configuraci\u00f3n; si queremos dejar los ficheros como est\u00e1n, usamos la tecla N o Enter<\/em> Si queremos instalar la nueva versi\u00f3n del fichero de config, usamos Y<\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n Limpiamos los paquetes no necesarios:<\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n Podemos instalar el gestor de paquetes dnf<\/em><\/strong> para sustituir a yum<\/em>, ya que dnf<\/em> es el gestor de paquetes por defecto en CentOS8<\/em>:<\/p>\n <\/p>\n <\/p>\n Los dos gestores de paquetes pueden convivir, pero es mejor que nos quedemos solo con dnf<\/em> (y eliminamos yum<\/em>, las dependencias y su directorio):<\/p>\n <\/p>\n <\/p>\n <\/p>\n Ya tenemos el sistema preparado para pasar de Centos 7 a Centos 8, pero antes vamos a actualizar todo el sistema utilizando el nuevo gestor de paquetes dnf<\/em> previamente instalado<\/p>\n <\/p>\n <\/p>\n <\/p>\n Le costar\u00e1 un buen rato hasta que actualice todos los paquetes.<\/p>\n si tenemos errores del estilo: “el archivo *** entra en conflicto con el archivo del paquete ***<\/em>“, por ejemplo:<\/p>\n <\/p>\n podemos intentar la actualizaci\u00f3n con la opci\u00f3n –allowerasing<\/em>, que sirve para reemplazar autom\u00e1ticamente los paquetes con conflictos:<\/p>\n <\/p>\n o usando la opci\u00f3n –skip-broken<\/em> para eliminar los paquetes problem\u00e1ticos:<\/p>\n <\/p>\n Si no queda m\u00e1s remedio, borramos los paquetes con problemas<\/strong>, como por ejemplo python<\/em>, que suele fallar en algunas m\u00e1quinas (despu\u00e9s de haber hecho varias pruebas, en algunas m\u00e1quinas lo mejor es eliminar los paquetes problem\u00e1ticos):<\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n y ahora ejecutamos de nuevo la actualizaci\u00f3n, permitiendo que se sobrescriban los paquetes con las nuevas versiones:<\/p>\n <\/p>\n A continuaci\u00f3n ya podemos instalar el paquete de lanzamiento de Centos8:<\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n Ahora actualizamos el repositorio EPEL<\/em>:<\/p>\n <\/p>\n <\/p>\n Comprobamos las repos instaladas y que est\u00e9n actualizadas con dnf repolist<\/em>:<\/p>\n <\/p>\n <\/p>\n Eliminamos los ficheros temporales<\/p>\n <\/p>\n En este punto puede parecer que ya tenemos instalado Centos8, podemos comprobarlo revisando el fichero os-release<\/em> y redhat-release<\/em>, pero realmente a\u00fan quedan cosas importantes por hacer (todav\u00eda no tenemos un kernel adecuado para Centos8):<\/p>\n <\/p>\n <\/p>\n Si comprobamos el kernel instalado, veremos que todav\u00eda tenemos instalado el kernel de CentOS7:<\/p>\n <\/p>\n <\/p>\n Ahora vamos a eliminar el kernel de centos7<\/strong>;<\/p>\n Antes de eliminarlo, mostramos los kernel instalados para comprobarlo:<\/p>\n <\/p>\n Tambi\u00e9n mostramos el kernel que se est\u00e1 utilizando con:<\/p>\n <\/p>\n y ahora eliminamos el n\u00facleo antiguo del kernel de CentOS 7 (si en este paso tenemos errores, realmente seguir\u00e1 instalado el kernel de centos 7 y no habremos instalado el kernel de centos 8):<\/p>\n <\/p>\n Eliminamos paquetes conflictivos (como las herramientas systemv<\/em>):<\/p>\n <\/p>\n Si recibimos errores al ejecutar el comando anterior para eliminar el kernel :<\/p>\n comprobamos si seguimos teniendo errores y conflictos en paquetes; si es as\u00ed, procuraremos eliminarlos para evitar los problemas (aunque en algunos casos esto es una soluci\u00f3n muy arriesgada, sobre todo en servidores en producci\u00f3n).<\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n Lanzamos actualizaci\u00f3n del sistema a Centos8:<\/p>\n <\/p>\n Vemos que se han instalado los paquetes para actualizar a Centos8 :<\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n Si tenemos errores, lo m\u00e1s seguro que se referir\u00e1n a paquetes problem\u00e1ticos, como nos pasaba con python3<\/em>, y deber\u00edamos eliminarlos para poder actualizar sin problemas;<\/p>\n si tenemos errores, tambi\u00e9n podemos probar a\u00a0 lanzar la actualizaci\u00f3n as\u00ed:<\/p>\n <\/p>\n <\/p>\n Ejecutamos instalaci\u00f3n del kernel<\/p>\n <\/p>\n Aunque puede no ser necesario, si queremos estar seguros de que est\u00e1 instalado de forma correcta, primero lo desinstalamos y lo volvemos a instalar<\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n instalamos el kernel de centos8 de forma manual<\/a>:<\/p>\n <\/p>\n <\/p>\n Finalmente hemos sido capaces de eliminar el kernel antiguo perteneciente a Centos7 e instalar el nuevo kernel para centos8.<\/p>\n Vemos que el kernel de centos8 se ha instalado correctamente:<\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n –> De nuevo, si tenemos problemas con paquetes, los desinstalamos o lanzamos la instalaci\u00f3n as\u00ed:<\/p>\n <\/p>\n —>Por cierto, si en este punto recibes este error, es porque no has eliminado yum todav\u00eda del sistema, y entra en conflicto con el gestor de paquetes dnf:<\/p>\n <\/p>\n\u00bfQu\u00e9 ha ocurrido con CentOS<\/em>?<\/strong><\/span><\/h3>\n
\n <\/p>\nConsecuencias para los usuarios de CentOS<\/em> y alternativas<\/span><\/h3>\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Instalar el repositorio EPEL<\/span><\/h3>\n
yum install epel-release -y<\/pre>\n
\n <\/p>\nInstalar las herramientas yum-utils<\/em><\/span><\/h3>\n
yum install yum-utils<\/pre>\n
yum install rpmconf<\/pre>\n
\n <\/p>\nrpmconf -a<\/pre>\n
package-cleanup --leaves\r\npackage-cleanup --orphans<\/pre>\n
\n <\/p>\nInstalamos el gestor de paquetes DNF<\/span><\/h3>\n
yum install dnf<\/pre>\n
dnf -y remove yum yum-metadata-parser\r\nrm -Rf \/etc\/yum<\/pre>\n
Actualizar<\/strong> la versi\u00f3n, subir de CentOS7 a CentOS8<\/strong>, y resolver problemas con paquetes al actualizar <\/strong><\/span>a CentOS8<\/strong><\/span><\/h3>\n
dnf upgrade<\/pre>\n
el archivo \/usr\/lib\/python3.6\/site-packages\/setuptools\/command\/__pycache__\/test.cpython-36.pyc de la instalaci\u00f3n de platform-python-setuptools-39.2.0-6.el8.noarch entra en conflicto con el archivo del paquete python3-setuptools-39.2.0-10.el7.noarch\r\nel archivo \/usr\/lib\/python3.6\/site-packages\/setuptools\/command\/__pycache__\/upload.cpython-36.opt-1.pyc de la instalaci\u00f3n de platform-python-setuptools-39.2.0-6.el8.noarch entra en conflicto con el archivo del paquete python3-setuptools-39.2.0-10.el7.noarch\r\nel archivo \/usr\/lib\/python3.6\/site-packages\/setuptools\/command\/__pycache__\/upload.cpython-36.pyc de la instalaci\u00f3n de platform-python-setuptools-39.2.0-6.el8.noarch entra en conflicto con el archivo del paquete python3-setuptools-39.2.0-10.el7.noarch\r\n<\/pre>\n
dnf upgrade --best --allowerasing<\/pre>\n
dnf upgrade --best --allowerasing --skip-broken<\/pre>\n
dnf remove python3<\/pre>\n
dnf upgrade --best --allowerasing<\/pre>\n
dnf install http:\/\/mirror.centos.org\/centos\/8\/BaseOS\/x86_64\/os\/Packages\/centos-linux-repos-8-2.el8.noarch.rpm http:\/\/mirror.centos.org\/centos\/8\/BaseOS\/x86_64\/os\/Packages\/centos-linux-release-8.3-1.2011.el8.noarch.rpm http:\/\/mirror.centos.org\/centos\/8\/BaseOS\/x86_64\/os\/Packages\/centos-gpg-keys-8-2.el8.noarch.rpm<\/pre>\n
dnf -y upgrade https:\/\/dl.fedoraproject.org\/pub\/epel\/epel-release-latest-8.noarch.rpm<\/pre>\n
dnf clean all<\/pre>\n
[root@sercentos7 operador]# cat \/etc\/os-release\r\nNAME=\"CentOS Linux\"\r\nVERSION=\"8\"\r\nID=\"centos\"\r\nID_LIKE=\"rhel fedora\"\r\nVERSION_ID=\"8\"\r\nPLATFORM_ID=\"platform:el8\"\r\nPRETTY_NAME=\"CentOS Linux 8\"\r\nANSI_COLOR=\"0;31\"\r\nCPE_NAME=\"cpe:\/o:centos:centos:8\"\r\nHOME_URL=\"https:\/\/centos.org\/\"\r\nBUG_REPORT_URL=\"https:\/\/bugs.centos.org\/\"\r\nCENTOS_MANTISBT_PROJECT=\"CentOS-8\"\r\nCENTOS_MANTISBT_PROJECT_VERSION=\"8\"\r\n<\/pre>\n
[root@sercentos7 operador]# cat \/etc\/redhat-release\r\nCentOS Linux release 8.3.2011\r\n<\/pre>\n
[root@sercentos7 operador]# uname -a\r\nLinux sercentos7.curso.esp 3.10.0-957.12.2.el7.x86_64 #1 SMP Tue May 14 21:24:32 UTC 2019 x86_64 x86_64 x86_64 GNU\/Linux\r\n[root@sercentos7 operador]# uname -r\r\n3.10.0-957.12.2.el7.x86_64\r\n<\/pre>\n
Eliminamos el viejo kernel para CentOS7 e instalamos el nuevo kernel para CentOS 8<\/span><\/h3>\n
[root@sercentos7 operador]# rpm -qa kernel\r\nkernel-3.10.0-229.el7.x86_64\r\nkernel-3.10.0-957.12.2.el7.x86_64\r\nkernel-3.10.0-1160.6.1.el7.x86_64\r\n<\/pre>\n
uname -a\r\nuname -r\r\n<\/pre>\n
rpm -e `rpm -q kernel`\r\n<\/pre>\n
rpm -e --nodeps sysvinit-tools<\/pre>\n
Troubleshooting para eliminar el kernel de centos7<\/span><\/h4>\n
rpm -e `rpm -q kernel`\r\n<\/pre>\n
\n
dnf remove --oldinstallonly --setopt installonly_limit=1 kernel<\/pre>\n
\n
dnf remove kernel<\/pre>\n
Comenzando la actualizaci\u00f3n a Centos8<\/span><\/h3>\n
dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync<\/pre>\n
Troubleshooting para actualizar a CentOS8<\/span><\/h4>\n
dnf -y --releasever=8 --allowerasing --skip-broken --setopt=deltarpm=false distro-sync<\/pre>\n
Instalamos el nuevo kernel para CentOS 8<\/span><\/h3>\n
dnf -y install kernel-core\r\n<\/pre>\n
rpm -e kernel-core\r\ndnf -y install kernel-core<\/pre>\n
\n <\/p>\nTroubleshooting para instalar el kernel de CentOS8<\/span><\/h4>\n
\nSi al instalar el kernel obtenemos errores, seguramente tendr\u00e1n que ver con el problema que coment\u00e1bamos antes con ciertos paquetes (por mucho que duela, parece ser la mejor opci\u00f3n, sino iremos arrastrando los errores todo el rato) ;<\/p>\n\n
[root@sercentos7 operador]# dnf -y install kernel-core\r\n\u00daltima comprobaci\u00f3n de caducidad de metadatos hecha hace 0:04:17, el s\u00e1b 19 dic 2020 00:20:08 CET.\r\nError:\r\nProblema: package kexec-tools-2.0.20-34.el8.x86_64 requires dracut >= 049-24, but none of the providers can be installed\r\n- package dracut-049-95.git20200804.el8.x86_64 requires systemd-udev >= 219, but none of the providers can be installed\r\n- package system-config-kdump-2.0.13-21.el7.centos.noarch requires kexec-tools, but none of the providers can be installed\r\n- package systemd-udev-239-41.el8_3.x86_64 obsoletes systemd < 229-5 provided by systemd-219-78.el7_9.2.x86_64\r\n- package kernel-core-4.18.0-240.1.1.el8_3.x86_64 conflicts with kexec-tools < 2.0.20-8 provided by kexec-tools-2.0.15-51.el7_9.1.x86_64\r\n- package systemd-python-219-78.el7_9.2.x86_64 requires systemd = 219-78.el7_9.2, but none of the providers can be installed\r\n- conflicting requests\r\n- problem with installed package systemd-python-219-78.el7_9.2.x86_64\r\n- problem with installed package system-config-kdump-2.0.13-21.el7.centos.noarch\r\n(pruebe a a\u00f1adir '--allowerasing' a la l\u00ednea de comandos para reemplazar los paquetes que producen conflictos o '--skip-broken' para descartar los paquetes que no se pueden instalar)\r\n<\/pre>\n
\n
dnf -y install kernel-core --allowerasing<\/pre>\n
dnf -y install kernel-core --best --allowerasing\r\n<\/pre>\n
\n
dnf -y install kernel-core --best --allowerasing --skip-broken\r\n<\/pre>\n
\n
Problema: The operation would result in removing the following protected packages: kernel\r\n<\/pre>\n
Kernel de Centos8 instalado<\/strong><\/span><\/h3>\n
Instalando:\r\nkernel-core x86_64 4.18.0-240.1.1.el8_3 baseos 30 M\r\n\r\nResumen de la transacci\u00f3n\r\n=====================================================================================\r\nInstalar 1 Paquete\r\n\r\nTama\u00f1o total de la descarga: 30 M\r\nTama\u00f1o instalado: 62 M\r\nDescargando paquetes:\r\nkernel-core-4.18.0-240.1.1.el8_3.x86_64.rpm 3.2 MB\/s | 30 MB 00:09\r\n-------------------------------------------------------------------------------------\r\nTotal 3.2 MB\/s | 30 MB 00:09\r\nEjecutando verificaci\u00f3n de operaci\u00f3n\r\nVerificaci\u00f3n de operaci\u00f3n exitosa.\r\nEjecutando prueba de operaciones\r\nPrueba de operaci\u00f3n exitosa.\r\nEjecutando operaci\u00f3n\r\nPreparando : 1\/1\r\nInstalando : kernel-core-4.18.0-240.1.1.el8_3.x86_64 1\/1\r\nEjecutando scriptlet: kernel-core-4.18.0-240.1.1.el8_3.x86_64 1\/1\r\nVerificando : kernel-core-4.18.0-240.1.1.el8_3.x86_64 1\/1\r\n\r\nInstalado:\r\nkernel-core-4.18.0-240.1.1.el8_3.x86_64\r\n\r\n\u00a1Listo!\r\n<\/pre>\n
Instalamos el paquete minimal de CentOS8 y actualizamos grupos<\/strong><\/span><\/h3>\n
dnf -y groupupdate \"Core\" \"Minimal Install\"<\/pre>\n
Troubleshooting<\/span><\/h4>\n
dnf -y groupupdate \"Core\" \"Minimal Install\" --allowerasing --skip-broken<\/pre>\n
Fallido:\r\nyum-4.2.23-4.el8.noarch\r\n\r\nError: Fall\u00f3 la transacci\u00f3n\r\n<\/pre>\n