igloo

Création d’un dépôt local pour Gentoo

Il est possible que vous ayez plusieurs machines tournant sous Gentoo et que par souci d’économie de vos ressources réseau (et celles des miroirs Gentoo), vous souhaitiez créer votre propre miroir sur une machine locale.

Depuis le serveur:

Choisissez l’hôte qui fera office de serveur et éditez son fichier /etc/rsyncd.conf :

# emacs /etc/rsyncd.conf

pid file = /var/run/rsyncd.pid
max connections = 5
use chroot = yes
uid = nobody
gid = nobody
read only = yes
[gentoo-portage]
path = /usr/portage
comment = Gentoo Portage tree
exclude = /distfiles /packages

Démarrez le service et ajoutez le au démarrage :

# rc-service rsyncd start
# rc-update add rsyncd default

testez (depuis un client, si possible) et mettez à jour Portage sur votre serveur :

# rsync ip_serveur::

doit renvoyer 'gentoo-portage Gentoo Portage'

# rsync ip_serveur::gentoo-portage

doit renvoyer la liste des paquets

# emerge --sync

ou

# emerge-webrsync

Depuis vos clients:

éditez le fichier /etc/portage/repos.conf/gentoo.conf :

[DEFAULT]
main-repo = gentoo

[gentoo]
location = /usr/portage
sync-type = rsync
sync-uri = rsync://ip_serveur/gentoo-portage ← ip du serveur à modifier.
auto-sync = yes

et mettez à jour portage

# emerge --sync

Cron :

Afin de mettre à jour le serveur automatiquement, vous pouvez installez un démon 'cron' (un programme qui permet aux utilisateurs des systèmes Unix d’exécuter automatiquement des scripts, des commandes ou des logiciels à une date et une heure spécifiées à l’avance, ou selon un cycle défini à l’avance. ).

Il existe plusieurs version, pour cet exemple, nous allons utiliser dcron.

Installez dcron :

# emerge -a dcron

démarrez le démon :

# rc-service dcron start

ajoutez le au démarrage :

# rc-update add dcron default

et initialisez la configuration de base :

# crontab /etc/crontab

déplacez-vous vers votre répertoire root et créez le fichier crons.cron :

# cd
# emacs crons.cron

les 5 premiers champs de votre table indiquent respectivement : les minutes (0-59), les heures(0-23), les jours du mois (1-31), les mois (1-12) et les jours de la semaines ( 0 et 7 pour le dimanche). Une étoile signifie que toutes les valeurs sont acceptées : '* * * * * tâche' lancera 'tâche' toutes les minutes. On peut spécifier également spécifier une plage de valeur en les séparent par un tiret, ou une liste en séparant les valeurs par une virgule.

Pour lancer 'emerge --sync' une fois par jour à 4h00 :

04***/usr/bin/emerge --sync

ajoutez votre fichier a la liste de tâche de cron :

# crontab crons.cron

la commande suivante doit afficher la liste des tâches :

# crontab -l