#!/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:
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
Dernière modification par tomsawyer01 le lun. 25 mai 2015, 22:36, modifié 1 fois.
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 ?
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière) toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable popho.be : Kimsufi KS-3, FreeBSD 11.0 Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
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?
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.
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière) toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable popho.be : Kimsufi KS-3, FreeBSD 11.0 Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
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