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.
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
setenforce 0
Le serveur vsftpd permettra d'alimenter le dépôt local
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
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 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
Copier :
/usr/share/nginx/html/repo/pub/Centos/6/i386, /usr/share/nginx/html/repo/pub/Centos/6/x86_64%%, /usr/share/nginx/html/repo/pub/Centos/6/SRPMS. 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
crontab -e 00 */6 * * * /root/create-local-repo
Si /usr/share/nginx/html/ est la racine FTP disponible, ftp://ip-du-serveur/repo/pub/Centos/6/i386serait 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é.