Table of Contents
Centos: Dépôt local yum
Table of Contents
Afin de pouvoir installer certaines paquets ne se trouvant pas dans les dépôts officiels et devant être alors téléchargés de façon manuelle on peut créer un dépôt local et s’en servir pour initialiser l’application en question.
Installation du serveur
Installation et configuration de NGINX
S'il ne l'est pas déjà, installer ,
yum install nginx
Configurer le démarrage automatique de nginx au boot
/sbin/chkconfig nginx on
Contrôler la configuration de nginx
nginx -t
Créer le fichier localyum.conf
vi /etc/nginx/conf.d/localyum.conf server { listen 8088; server_name localyum; # enable auto indexing for rpm location ~ ^/usr/share/nginx/html/repo/$ { try_files $uri $uri/ =404; autoindex on; autoindex_exact_size on; autoindex_localtime on; } # serve box(s) with specific header location ~ \.rpm$ { add_header Content-Type application/octet-stream; } }
Démarrer nginx
service nginx start
Configurer le mode permissif
setenforce 0
Installation et configuration du serveur vsftpd
Le serveur vsftpd permettra d'alimenter le dépôt local
Création du dépôt local
Installer createrepo
Créer un dépôt yum est facile et très simple. Pour ce faire, on utilise l'outil createrepo, qui peut être trouvé dans le paquet createrepo, donc pour l'installer, exécuter en tant que root:
yum install createrepo
Créer le référentiel
Une fois le package installé, on peut commencer à créer le référentiel. Vous aurez également besoin de quelques paquets RPM pour créer le référentiel.
Créer les dossiers
Créer un l'arbre de répertoire approprié en utilisant les commandes suivantes:
mkdir -p /usr/share/nginx/html/repo/pub/Centos/6/{SRPMS,i386,x86_64} chmod 755 -R /usr/share/nginx/html/repo/pub
Peupler les répertoires avec les rpms
Copier :
- les paquets i386 dans
/usr/share/nginx/html/repo/pub/Centos/6/i386
, - les paquets %%x86_64 dans
/usr/share/nginx/html/repo/pub/Centos/6/x86_64%%
, - les SRPMS dans
/usr/share/nginx/html/repo/pub/Centos/6/SRPMS
.
Créer un script shell create-local-repo
Pour automatiser facilement la création des métadonnées du référentiel,
cat <<EOF >~/create-local-repo #!/bin/sh destdir="/usr/share/nginx/html/repo/pub/Centos/6" for arch in i386 x86_64 do pushd \${destdir}/\${arch} >/dev/null 2>&1 createrepo . popd >/dev/null 2>&1 done EOF
Rendre le script exécutable
chmod + x ~/create-local-repo
Chaque exécution de ce script va appeler l'outil createrepo sur les deux répertoires: /usr/share/nginx/html/repo/pub/Centos/6/i386
et /usr/share/nginx/html/repo/pub/Centos/6/x86_64
.
~/create-local-repo Spawning worker 0 with 121 pkgs Workers Finished Gathering worker results Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete Spawning worker 0 with 121 pkgs
Planifier l'exécution automatique du script
crontab -e 00 */6 * * * /root/create-local-repo
Paramétrage du dépôt chez les clients
Si /usr/share/nginx/html/
est la racine FTP disponible, ftp://ip-du-serveur/repo/pub/Centos/6/i386
serait l'URL de téléchargement pour les paquets i386. Pour le rendre disponible aux autres systèmes client, créer un fichier de configuration du référentiel yum appelé /etc/yum.repos.d/my.repo
avec le contenu suivant:
[myrepo] name=My Repository baseurl=ftp://ip-du-serveur/repo/pub/Centos/6/$basearch enabled=1
Ce fichier peut être utilisé sur les clients i386 et x86_64 en raison du spécificateur $basearch. Il sera activé la prochaine fois que yum update sera exécuté.