Page 1 sur 1

[rsync] Mirroir local (résolu)

Publié : sam. 23 mai 2015, 16:44
par tomsawyer01
Bonjour,
J'aimerai créer un mirror local et j'ai trouvé ceci sur le wiki https://wiki.archlinux.org/index.php/Local_Mirror. J'ai commencé à modifier le script proposé comme suit:

Code : Tout sélectionner

#!/bin/bash

#################################################################################################
### It is generally frowned upon to create a local mirror due the bandwidth that is required.
### One of the alternatives will likely fulfill your needs.
### REMEMBER:
###   * Bandwidth is not free for the mirrors. They must pay for all the data they serve you
###       => This still applies although you pay your ISP 
###       => There are many packages that will be downloaded that you will likely never use
###       => Mirror operators will much prefer you to download only the packages you need
###   * Really please look at the alternatives on this page:
###       https://wiki.archlinux.org/index.php?title=Local_Mirror
### If you are ABSOLUTELY CERTAIN that a local mirror is the only sensible solution, then this
### script will get you on your way to creating it. 
#################################################################################################

# Configuration
SOURCE='rsync://mirror.23media.de/archlinux/'
DEST='/media/archlinux/mirror'
BW_LIMIT='20k'
REPOS='core extra community multilib'
RSYNC_OPTS="-rtlHq --delete-after --delay-updates --copy-links --safe-links --max-delete=1000 --bwlimit=${BW_LIMIT} --delete-excluded --exclude-from=/media/archlinux/pacman-ignore.txt"
LCK_FLE='/media/archlinux/repo-sync.lck'

PATH='/usr/bin'

# Make sure only 1 instance runs
if [ -e "$LCK_FLE" ] ; then
	OTHER_PID=$(cat $LCK_FLE)
	echo "Another instance already running: $OTHER_PID"
	exit 1
fi
echo $$ > "$LCK_FLE"

for REPO in $REPOS ; do
	echo "Syncing $REPO"
	rsync $RSYNC_OPTS ${SOURCE}/${REPO} ${DEST}
done

# Cleanup
rm -f "$LCK_FLE"

exit 0
Après dans le fichier /media/archlinux/pacman-ignore.txt , j'ai mis:

Code : Tout sélectionner

.*i686.*
Ca a lancé mais il y avait pas de retours donc je relu le wiki mais comme c'est en anglais, au final je suis perdu donc si quelqu'un peut m'aider. Je n'ai pas bien compris les trucs de Tier 1 et 2 et surtout mon idée est de faire mirroir qui fonctionne la nuit et qui synchronise seulement certains paquets (KDE, core).
Merci

Re: [rsync] Mirroir local

Publié : sam. 23 mai 2015, 17:00
par Moviuro
Plop,

C'est MAL de faire un mirroir local. C'est MAL MAL MAL : c'est compliqué, ça prend plein d'espace et ça mange la bande passante des vrais miroirs utiles à tous les archers de part le monde.

Donc avant de t'aider, pourquoi tu veux faire un miroir local ?

Re: [rsync] Mirroir local

Publié : sam. 23 mai 2015, 20:47
par tomsawyer01
Bonsoir,
Quand il faut faire des mises à jours, ca pese et ca derange pendant mes heures de travail. Mon idée est d'avoir un mirroir avec une copie des paquets installés sur mon pc à jour que je synchroniserai une fois par mois ou une fois tous les deux mois par exemple.
Le portable n'a pas accès internet qu'avec un clé 3g la nuit mais mon pc de bureau est sur ubuntu et est accès à une internet adsl la nuit. Je voulais donc lancé la synchronisation sur le ubuntu avec rsync .
Ou est ce qu'il y a un moyen de lister les paquets installés et de générer des liens de téléchargements des paquets?

Re: [rsync] Mirroir local

Publié : sam. 23 mai 2015, 22:29
par Moviuro
Tu peux :
  • Lancer un service qui télécharge les paquets en pleine nuit (un timer et un service systemd, ça se fera rapidement)
  • limiter la bande passante utilisée par le logiciel de téléchargement (curl(1) --limit-rate)
  • Pour le non-accès à internet, tu peux mettre les paquets sur une clef USB ou un partage réseau (pacman(8) -U)
  • Installer un container archlinux sur ton ubuntu pour avoir pacman
Mais les infos que tu donnes ne sont pas assez précises, j'arrive pas à visualiser ton environnement ni même ce que tu veux pouvoir faire.

Re: [rsync] Mirroir local

Publié : lun. 25 mai 2015, 00:22
par tomsawyer01
Mon idée est de lancer le téléchargement des paquets comme on ferait avec un simple fichier mais pour y parvenir:
  • Faire une simple pacman -Syy sur la machine
  • Avoir la liste des paquets à mettre à jour
  • Générer une liste de lien de téléchargement pour chaque paquet
  • Lancer le téléchargement des paquets
  • Installer les paquets (ceci n'est pas un probleme)

Mais le mirroir local, si j'ai bien compris, fait plus que ca et cela peut nuire aux autres archers. Et pour lancer les téléchargements la nuit , cela n'est pas vraiment un probleme , c'est d'avoir la liste et les liens pour les téléchargements qui me posent probleme:
  • Récuperer manuellement l'url de chaque paquet me semble exagéré et ca risque de prendre beaucoup de temps (KDE comme DE, c'est beaucoup de paquets)
  • Utiliser un container archlinux, je ne sais pas comment cela fonctionne

Re: [rsync] Mirroir local

Publié : lun. 25 mai 2015, 08:37
par benjarobin
Tu peux faire tout ceci via pacman. Voir son man: option p

Re: [rsync] Mirroir local

Publié : lun. 25 mai 2015, 22:35
par tomsawyer01
Merci!

Code : Tout sélectionner

pacman -Sup