Antes de empezar con este tutorial llamado «Instalación y configuración de un servidor YUM local en Oracle Linux» , voy a aclarar dos cosas que en el anterior tutorial fueron “criticadas”:
1.- No trabajo para Oracle
2.- Escogí Oracle porque tenía los instaladores a mano.
Se puede utilizar este tutorial para cualquier distro que haya nacido de Red Hat como CentOS, Fedora y obvio RHEL (Red Hat Enterprise Linux)
Manos a la obra.
No me voy a adentrar en que es YUM (Yellow dog Updater, Modified) para eso pueden seguir el link, pero en términos generales YUM permite de una forma fácil y centralizada poder gestionar los paquetes tipo RPM para sistemas Linux.
Para poder utilizar YUM se puede generar un repositorio en el mismo filesystem del sistema operativo o se puede crear un servidor que comparte y mantenga los repositorios, esto es muy útil si tenemos mas de un sistema operativo. Mi consejo es que si tienen 1 o 100 sistemas instalados la primera tarea luego de instalar es crear un servidor YUM.
En este tutorial vamos a configurar un servidor YUM que utilice el protocolo FTP para acceder desde cualquier máquina dentro de la misma red.
Iniciamos verificando si tenemos instalado el paquete necesario para configurar un servidor FTP básico, prácticmante los dos comandos sirve para comprobar que en nuestro caso no tenemos instalado vsftp.
[root@example ~]# rpm -qa | grep -i vsftpd * [root@example ~]# rpm -qa vsftpd *
Comprobado esto vamos a instalar vsftp desde nuestra imago ISO o DVD de instalación:
[root@example ~]# cd /media/Enterprise\ Linux\ dvd\ 20100405/ [root@example Enterprise Linux dvd 20100405]# cd Server/ [root@example Server]# rpm -ivh vsftpd-2.0.5-16.el5_4.1.x86_64.rpm
warning: vsftpd-2.0.5-16.el5_4.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159 Preparing... ########################################### [100%] 1:vsftpd ########################################### [100%]
Procedemos a levantar el servicio y a realizar una prueba, en este caso vamos a utilizar el usuario anonymous para conectarnos al servidor FTP.
Tip: El usuario anonymous viene activado por defecto y no tiene una clave así que solo le damos enter.
[root@example Server]# service vsftpd start Starting vsftpd for vsftpd: [ OK ] [root@example Server]# ftp localhost Connected to example.naitcorp.org. 220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): anonymous
331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (127,0,0,1,164,100) 150 Here comes the directory listing.
drwxr-xr-x 2 0 0 4096 Dec 17 18:09 pub
226 Directory send OK. ftp> bye 221 Goodbye. [root@example Server]#
Ahora vamos a copiar los paquetes desde el medio de instalación al filesystem, como se está utilizando un servidor FTP para compartir a toda la red el respositorio YUM se debe copiar en /var/ftp/pub que es la ruta por defecto del servidor FTP para compartir los archivos.
[root@example Enterprise Linux dvd 20100405]# pwd /media/Enterprise Linux dvd 20100405 [root@example Enterprise Linux dvd 20100405]# ls
blafdoc.css EULA GPL README-en RELEASE-NOTES-en.html Server VT Cluster eula.en_US images README-en.html RPM-GPG-KEY supportinfo ClusterStorage eula.py isolinux RELEASE-NOTES-en RPM-GPG-KEY-oracle TRANS.TBL
[root@example Enterprise Linux dvd 20100405]# mkdir /var/ftp/pub/OEL5.5_x64 [root@example Enterprise Linux dvd 20100405]# cp -rf * /var/ftp/pub/OEL5.5_x64/
Luego de realizada la copia de nuestros paquetes vamos a proceder a instalar los paquetes necesarios para el servidor YUM:
[root@example Enterprise Linux dvd 20100405]# cd /var/ftp/pub/OEL5.5_x64/Server [root@example Server]# rpm -ivh yum-* --nodeps --force warning: yum-3.2.22-26.el5.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159 Preparing... ########################################### [100%]
1:yum-metadata-parser ########################################### [ 5%] 2:yum ########################################### [ 10%] 3:yum-aliases ########################################### [ 15%] 4:yum-changelog ########################################### [ 20%] 5:yum-downloadonly ########################################### [ 25%] 6:yum-fastestmirror ########################################### [ 30%] 7:yum-filter-data ########################################### [ 35%] 8:yum-keys ########################################### [ 40%] 9:yum-kmod ########################################### [ 45%] 10:yum-list-data ########################################### [ 50%] 11:yum-NetworkManager-disp########################################### [ 55%] 12:yum-protectbase ########################################### [ 60%] 13:yum-protect-packages ########################################### [ 65%] 14:yum-security ########################################### [ 70%] 15:yum-tmprepo ########################################### [ 75%] 16:yum-updateonboot ########################################### [ 80%] 17:yum-updatesd ########################################### [ 85%] 18:yum-utils ########################################### [ 90%] 19:yum-verify ########################################### [ 95%] 20:yum-versionlock ########################################### [100%]
[root@example Server]# rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm warning: createrepo-0.4.11-3.el5.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159 Preparing... ########################################### [100%] package createrepo-0.4.11-3.el5.noarch is already installed
Luego de realizar la instalación de los paquetes procedemos a la creación de nuestro repositorio YUM para Server, Cluster, ClusterStorage y VT con el comando createrepo.
[root@example Server]# pwd /var/ftp/pub/OEL5.5_x64/Server [root@example Server]# cd .. [root@example OEL5.5_x64]# createrepo -v Server/
1/3114 - gtk-vnc-python-0.3.8-3.el5.x86_64.rpm 2/3114 - gtk2-engines-2.8.0-3.el5.x86_64.rpm 3/3114 - xorg-x11-drv-siliconmotion-1.4.1-2.1.x86_64.rpm 4/3114 - shared-mime-info-0.19-5.el5.x86_64.rpm 5/3114 - m17n-db-korean-1.3.3-48.el5.noarch.rpm 6/3114 - yum-changelog-1.1.16-13.el5.noarch.rpm 7/3114 - xorg-x11-drv-palmax-1.1.0-1.1.x86_64.rpm ...
3111/3114 - oracle_updated/ocfs2-2.6.18-194.0.0.0.3.el5xen-1.4.4-1.el5.x86_64.rpm 3112/3114 - oracle_updated/kernel-headers-2.6.18-194.0.0.0.3.el5.x86_64.rpm 3113/3114 - oracle_updated/ocfs2-2.6.18-194.0.0.0.3.el5-1.4.4-1.el5.x86_64.rpm 3114/3114 - oracle_updated/kernel-xen-2.6.18-194.0.0.0.3.el5.x86_64.rpm
Saving Primary metadata Saving file lists metadata Saving other metadata [root@example OEL5.5_x64]#
[root@example OEL5.5_x64]# createrepo -v Cluster
1/9 - luci-0.12.2-12.0.1.el5.x86_64.rpm 2/9 - piranha-0.8.4-16.0.1.el5.x86_64.rpm 3/9 - cluster-snmp-0.12.1-2.0.1.el5.x86_64.rpm 4/9 - modcluster-0.12.1-2.0.1.el5.x86_64.rpm 5/9 - cluster-cim-0.12.1-2.0.1.el5.x86_64.rpm 6/9 - ricci-0.12.2-12.0.1.el5.x86_64.rpm 7/9 - system-config-cluster-1.0.57-3.noarch.rpm 8/9 - ipvsadm-1.24-10.x86_64.rpm 9/9 - rgmanager-2.0.52-6.0.1.el5.x86_64.rpm
Saving Primary metadata Saving file lists metadata Saving other metadata [root@example OEL5.5_x64]# createrepo -v ClusterStorage/
1/16 - kmod-gnbd-0.1.5-2.0.1.el5.x86_64.rpm 2/16 - kmod-gfs-0.1.34-12.el5.x86_64.rpm 3/16 - isns-utils-0.91-0.1.el5.x86_64.rpm 4/16 - ctdb-1.0.82-1.el5.x86_64.rpm 5/16 - gfs-utils-0.1.20-7.el5.x86_64.rpm 6/16 - scsi-target-utils-0.0-6.20091205snap.el5_4.1.x86_64.rpm 7/16 - kmod-cmirror-0.1.22-3.0.1.el5.x86_64.rpm 8/16 - kmod-cmirror-xen-0.1.22-3.0.1.el5.x86_64.rpm 9/16 - lvm2-cluster-2.02.56-7.el5.x86_64.rpm 10/16 - ctdb-devel-1.0.82-1.el5.i386.rpm 11/16 - kmod-gnbd-xen-0.1.5-2.0.1.el5.x86_64.rpm 12/16 - gnbd-1.1.7-1.el5.x86_64.rpm 13/16 - perl-Config-General-2.40-1.el5.noarch.rpm 14/16 - ctdb-devel-1.0.82-1.el5.x86_64.rpm 15/16 - cmirror-1.1.39-8.el5.x86_64.rpm 16/16 - kmod-gfs-xen-0.1.34-12.el5.x86_64.rpm
Saving Primary metadata Saving file lists metadata Saving other metadata
[root@example OEL5.5_x64]# createrepo -v VT/
1/48 - qcairo-1.8.7.1-3.el5.i386.rpm 2/48 - qffmpeg-libs-0.4.9-0.15.20080908.el5.x86_64.rpm 3/48 - celt051-devel-0.5.1.3-0.el5.i386.rpm 4/48 - qpixman-devel-0.13.3-4.el5.i386.rpm 5/48 - qcairo-devel-1.8.7.1-3.el5.x86_64.rpm 6/48 - libvirt-devel-0.6.3-33.0.1.el5.i386.rpm 7/48 - xen-devel-3.0.3-105.el5.x86_64.rpm 8/48 - libvirt-python-0.6.3-33.0.1.el5.x86_64.rpm ...
46/48 - qspice-0.3.0-54.el5.x86_64.rpm 47/48 - xen-3.0.3-105.el5.x86_64.rpm 48/48 - kvm-83-164.0.1.el5.x86_64.rpm
Saving Primary metadata Saving file lists metadata Saving other metadata
Se procede a crear y editar el archivo server.repo que se encuentra en /etc/yum.repos.d/ con la siguiente información y tomando en cuenta la IP que estemos utilizando.
[root@example OEL5.5_x64]# cd /etc/yum.repos.d/ [root@example yum.repos.d]# ls [root@example yum.repos.d]# vi server.repo
[server] name=Server baseurl=ftp://10.0.1.7/pub/OEL5.5_x64/Server enable=1 gpgcheck=0
Ejecutamos yum clean all para limpiar el cache y probamos eliminando telnet del servidor.
[root@example yum.repos.d]# yum clean all
Loaded plugins: aliases, changelog, downloadonly, fastestmirror, filter-data, keys, kmod, list-data, : protect-packages, protectbase, security, tmprepo, verify, versionlock Cleaning up Everything
[root@example yum.repos.d]# yum remove telnet Loaded plugins: aliases, changelog, downloadonly, fastestmirror, filter-data, keys, kmod, list-data, : protect-packages, protectbase, security, tmprepo, verify, versionlock Setting up Remove Process
Resolving Dependencies --> Running transaction check ---> Package telnet.x86_64 1:0.17-39.el5 set to be erased --> Finished Dependency Resolution Dependencies Resolved ========================================================================================================= Package Arch Version Repository Size ========================================================================================================= Removing: telnet x86_64 1:0.17-39.el5 installed 104 k Transaction Summary ========================================================================================================= Remove 1 Package(s) Reinstall 0 Package(s) Downgrade 0 Package(s)
Is this ok [y/N]: y
Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Erasing : telnet 1/1 Removed: telnet.x86_64 1:0.17-39.el5 Complete!
Luego de eliminar telnet y para confirmar que todo está correctamente configurado se procede a instalar telnet.
[root@example yum.repos.d]# yum install telnet
Loaded plugins: aliases, changelog, downloadonly, fastestmirror, filter-data, keys, kmod, list-data, : protect-packages, protectbase, security, tmprepo, verify, versionlock Loading mirror speeds from cached hostfile Skipping filters plugin, no data 0 packages excluded due to repository protections Reading version lock configuration Setting up Install Process Resolving Dependencies Skipping filters plugin, no data
--> Running transaction check ---> Package telnet.x86_64 1:0.17-39.el5 set to be updated --> Finished Dependency Resolution
Dependencies Resolved ========================================================================================================= Package Arch Version Repository Size ========================================================================================================= Installing: telnet x86_64 1:0.17-39.el5 server 59 k Transaction Summary =========================================================================================================
Install 1 Package(s) Upgrade 0 Package(s) Total download size: 59 k
Is this ok [y/N]: y
Downloading Packages: telnet-0.17-39.el5.x86_64.rpm | 59 kB 00:00 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : telnet 1/1 Installed: telnet.x86_64 1:0.17-39.el5 Complete!
Tips & tricks:
- Revisar que los servicios como ftp y yum estén iniciados.
- Si van a configurar el servidor en un ambiente de producción confirmar que los servicios se levanten automáticamente.