× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Linux
 Script de mise à jour pour Archlinux
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
rodak
  Posté le 28/06/2020 @ 15:34 
Aller en bas de la page 
Petit astucien

Bonjour,

Avec le confinement, je suis resté plusieurs mois sans accéder à mon ordi du boulot, qui est sous Arch, et je me suis dit que le (pas si) petit (que ça) script bash que j'avais écrit il y a quelque temps pour la mise à jour d'un système Archlinux pourrait servir à quelqu'un d'autre qui, comme moi, n'aurait pas pu mettre à jour sa Arch pendant quelque temps et voudrait le faire en plusieurs fois.

L'idée est que la date de la dernière mise à jour est présente dans la mirrorlist via la ligne

Server=https://archive.archlinux.org/repos/2020/06/23/$repo/os/$arch

et que le script avance la date et fait la mise à jour. Une lubie personnelle (je ne sais pas si elle est pertinente) est de faire la mise à jour deux jours avant la date du jour (genre, si on est le 28, on fait la mise à jour à la date du 26) parce que j'ai toujours peur qu'une manip manuelle nécessaire n'ait pas encore été affichée par le site d'Archlinux au moment où le paquet sort.

(Depuis, j'ai fait quelques raffinements au script : télécharger les paquets avec des miroirs plus rapides avant de mettre à jour avec le miroir "jour", chercher les miroirs rapides et complets avec le paquet reflector, ne pas les chercher si la mise à jour est trop ancienne...)

Bref, je partage :

#!/bin/sh


# Options :
# bash /etc/pacman.d/update.sh -n
# ou
# bash /etc/pacman.d/update.sh --nomirrors
# pour ne pas faire la recherche de miroirs avant la mise à jour.
#
# bash /etc/pacman.d/update.sh -t
# pour faire la mise à jour la plus récente possible (sans utiliser le miroir "jour")
#
# Si aucune option n'est passée, la recherche de miroirs se fait normalement.


# Le fichier /etc/pacman.d/mirrorlist doit se présenter sous cette forme :
#
# #Server = https://archive.archlinux.org/repos/2020/01/22/$repo/os/$arch
#
# Server = https://mirror.cyberbits.eu/archlinux/$repo/os/$arch
# Server = https://mirror.ubrco.de/archlinux/$repo/os/$arch
# Server = https://mirrors.kernel.org/archlinux/$repo/os/$arch
# Server = https://mirror.wtnet.de/arch/$repo/os/$arch
# ...


FormatMirrorlist () {
# On vérifie que le fichier mirrorlist est bien "formaté" comme il faut
format=$(more /etc/pacman.d/mirrorlist | grep "https://archive.archlinux.org/repos/[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]")
if [ "$format" != "" ]
then
# On décale l'adresse en début de ligne
sed -i "s%.*https://archive.archlinux.org/repos%#Server = https://archive.archlinux.org/repos%g" /etc/pacman.d/mirrorlist

else
echo "Le fichier /etc/pacman.d/mirrorlist ne contient pas la ligne suivante :"
echo '#Server = https://archive.archlinux.org/repos/YEAR/MM/DD/$repo/os/$arch'
echo "Cette ligne doit être présente pour que le script puisse fonctionner."
echo "Fin du script."
exit 1
fi
}

SearchMirrors () {
# On prend les miroirs les plus rapides
echo "Recherche des miroirs les plus rapides..."
# Copie de secours
cp /etc/pacman.d/mirrorlist /etc/pacman.d/.mirrorlist_temp
# Modification
sed -i "s%Server%#Server%g" /etc/pacman.d/mirrorlist
sed -i "s%##Server%Server%g" /etc/pacman.d/mirrorlist
sed -i "/#Server/d" /etc/pacman.d/mirrorlist
sed -i "s%Server%#Server%g" /etc/pacman.d/mirrorlist

reflector -l 15 --sort rate | grep "Server" >> /etc/pacman.d/.mirrorlist_fast
fast_mirrors_list="$(cat /etc/pacman.d/.mirrorlist_fast | sed "s/#//g" | sed "s/Server = //g")"
wget -q https://www.archlinux.org/mirrorlist/all/https/ -O /etc/pacman.d/mirrorlist_full


# On affiche le miroir "jour"
echo $(more /etc/pacman.d/mirrorlist | grep "https://archive.archlinux.org/repos/[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]" | sed "s/#//g")

let "i = 0" # Compteur de miroirs
for mirror in $fast_mirrors_list
do
match="$(more /etc/pacman.d/mirrorlist_full | grep "$mirror")"
if [ "$match" != "" ]
then
echo "Server = "$mirror >> /etc/pacman.d/mirrorlist
echo "Server = "$mirror
let "i = i+1"
fi
done
rm /etc/pacman.d/.mirrorlist_fast

if [ $i = 0 ]
then
mv /etc/pacman.d/.mirrorlist_temp /etc/pacman.d/mirrorlist
echo "La méthode pour obtenir des miroirs rapides et fiables n'a pas fonctionné."
line=$(more /etc/pacman.d/update.sh | grep -n -m 1 "reflector" | cut -c1-4 | sed "s/://g" | sed "s/[a-z]//g")
echo "Vous devez modifier la ligne "$line" de ce script pour faire une recherche avec davantage de miroirs."
echo "Si vos miroirs sont à jour, vous pouvez aussi passer l'option -n lors du lancement de ce script pour sauter l'étape de recherche de miroirs :"
echo "# bash /etc/pacman.d/update.sh -n"
echo "Le fichier /etc/pacman.d/mirrorlist n'a pas été modifié."
echo "Fin du script."
exit 1
fi
rm /etc/pacman.d/.mirrorlist_temp
}

PreFormatDate () {
# Pour éviter les erreurs quand on lance la routine qui donne le jour du lendemain ou de la veille
DAY=$1
MONTH=$2
for i in `seq 1 9`;
do
if [ $DAY = "0"$i ]
then
let "DAY = "$i
fi
if [ $MONTH = "0"$i ]
then
let "MONTH = "$i
fi
done
}

TomorrowDate () {
DAY=$1
MONTH=$2
YEAR=$3
DAYbefore=$DAY

if [ $MONTH = "1" ] || [ $MONTH = "3" ] || [ $MONTH = "5" ] || [ $MONTH = "7" ] || [ $MONTH = "8" ] || [ $MONTH = "10" ]
then
if [ $DAY = "31" ]
then
let "DAY = 1"
let "MONTH = MONTH + 1"
fi

elif [ $MONTH = "4" ] || [ $MONTH = "6" ] || [ $MONTH = "9" ] || [ $MONTH = "11" ]
then
if [ $DAY = "30" ]
then
let "DAY = 1"
let "MONTH = MONTH + 1"
fi

elif [ $MONTH = "2" ]
then
let "bissext_testone = (YEAR/4)*4"
let "bissext_testtwo = (YEAR/100)*100"
if [ $bissext_testone = $YEAR ] && [ $bissext_testtwo != $YEAR ]
then
if [ $DAY = "29" ]
then
let "DAY = 1"
let "MONTH = MONTH + 1"
fi
else
if [ $DAY = "28" ]
then
let "DAY = 1"
let "MONTH = MONTH + 1"
fi
fi

elif [ $MONTH = "12" ]
then
if [ $DAY = "31" ]
then
let "DAY = 1"
let "MONTH = 1"
let "YEAR = YEAR + 1"
fi
fi

if [ $DAYbefore = $DAY ]
then
let "DAY = DAY + 1"
fi
}

YesterdayDate () {
DAY=$1
MONTH=$2
YEAR=$3
if [ $DAY = "1" ]
then
if [ $MONTH = "2" ] || [ $MONTH = "4" ] || [ $MONTH = "6" ] || [ $MONTH = "8" ] || [ $MONTH = "9" ] || [ $MONTH = "11" ]
then
let "DAY = 31"
let "MONTH = MONTH - 1"
elif [ $MONTH = "5" ] || [ $MONTH = "7" ] || [ $MONTH = "10" ] || [ $MONTH = "12" ]
then
let "DAY = 30"
let "MONTH = MONTH - 1"
elif [ $MONTH = "3" ]
then
let "bissext_testone = (YEAR/4)*4"
let "bissext_testtwo = (YEAR/100)*100"
if [ $bissext_testone = $YEAR ] && [ $bissext_testtwo != $YEAR ]
then
let "DAY = 29"
let "MONTH = MONTH - 1"
else
let "DAY = 28"
let "MONTH = MONTH - 1"
fi

elif [ $MONTH = "1" ]
then
let "DAY = 31"
let "MONTH = 12"
let "YEAR = YEAR - 1"
fi

else
let "DAY = DAY - 1"
fi
}

FormatDate () {
DAY=$1
MONTH=$2

for i in `seq 1 9`;
do
if [ $DAY = $i ]
then
DAY=0$DAY
fi
if [ $MONTH = $i ]
then
MONTH=0$MONTH
fi
done
}



FormatMirrorlist

# oldDAY, oldMONTH, oldYEAR : jour, mois et année de la dernière mise à jour.
# newDAY, newMONTH, newYEAR : jour, mois et année de la prochaine mise à jour.
# toDAY, toMONTH, toYEAR : date à ne pas dépasser

oldDAY=$(grep '[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]' /etc/pacman.d/mirrorlist | cut -d/ -f7)
oldMONTH=$(grep '[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]' /etc/pacman.d/mirrorlist | cut -d/ -f6)
oldYEAR=$(grep '[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]' /etc/pacman.d/mirrorlist | cut -d/ -f5)

toDAY=$(date +%d)
toMONTH=$(date +%m)
toYEAR=$(date +%Y)

# Pour pouvoir manipuler le jour et le mois comme des nombres
PreFormatDate $toDAY $toMONTH
toDAY=$DAY
toMONTH=$MONTH
PreFormatDate $oldDAY $oldMONTH
oldDAY=$DAY
oldMONTH=$MONTH


# Dernière mise à jour deux jours avant la date du jour
for i in `seq 1 2`;
do
YesterdayDate $toDAY $toMONTH $toYEAR
toDAY=$DAY
toMONTH=$MONTH
toYEAR=$YEAR
done

# Mises à jour de quinze jours en quinze jours
let "newDAY = oldDAY"
let "newMONTH = oldMONTH"
let "newYEAR = oldYEAR"

for i in `seq 1 15`;
do
TomorrowDate $newDAY $newMONTH $newYEAR
newDAY=$DAY
newMONTH=$MONTH
newYEAR=$YEAR
done

# Le nombre est plus grand si la date est postérieure
let "NumberToDate = (toYEAR - 2000)*2000 + toMONTH*100 + toDAY"
let "NumberOldDate = (oldYEAR - 2000)*2000 + oldMONTH*100 + oldDAY"
let "NumberNewDate = (newYEAR - 2000)*2000 + newMONTH*100 + newDAY"

# On ne dépasse pas le jour de la mise à jour maximale
if [ $NumberNewDate -gt $NumberToDate ]
then
let "newDAY = toDAY"
let "newMONTH = toMONTH"
let "newYEAR = toYEAR"
fi


# Les trois dates sont maintenant fixées, on a besoin de les comparer pour les différents cas de mise à jour
let "NumberToDate = (toYEAR - 2000)*2000 + toMONTH*100 + toDAY"
let "NumberOldDate = (oldYEAR - 2000)*2000 + oldMONTH*100 + oldDAY"
let "NumberNewDate = (newYEAR - 2000)*2000 + newMONTH*100 + newDAY"


# On remet au format JJ/MM/AAAA
FormatDate $oldDAY $oldMONTH
oldDAY=$DAY
oldMONTH=$MONTH

FormatDate $newDAY $newMONTH
newDAY=$DAY
newMONTH=$MONTH

FormatDate $toDAY $toMONTH
toDAY=$DAY
toMONTH=$MONTH



# Options pour ne pas chercher les miroirs avec rankmirrors (s'il y a un problème ou juste si on ne veut pas)
# Si aucune option n'est passée, alors on recherche automatiquement les miroirs (sauf si la mise à jour est trop ancienne)
OPTS=$( getopt -o nt -l nomirrors -- "$@" )
if [ $? != 0 ]
then
exit 1
fi

eval set -- "$OPTS"

while true ; do
case "$1" in
-n) break;;
-t) if [ $NumberNewDate -lt $NumberToDate ]
then
echo "La dernière mise à jour s'est faite à la date du $oldDAY/$oldMONTH/$oldYEAR."
echo "Vous avez demandé une mise à jour la plus récente possible, mais la date de la dernière mise à jour est trop ancienne pour ce script ($oldDAY/$oldMONTH/$oldYEAR)."
echo -n "Souhaitez-vous tout de même procéder à une mise à jour récente ? " && read maj
else
echo "La dernière mise à jour s'est faite à la date du $oldDAY/$oldMONTH/$oldYEAR."
echo "Vous avez demandé une mise à jour la plus récente possible."
echo -n "Voulez-vous procéder à la mise à jour (O/N) ? " && read maj
fi
if [ $maj != "O" ] && [ $maj != "o" ]
then
exit 1
fi
SearchMirrors;
newDAY=$(date +%d)
newMONTH=$(date +%m)
newYEAR=$(date +%Y)
sed -i "s#[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]#$newYEAR/$newMONTH/$newDAY#g" /etc/pacman.d/mirrorlist
pacman -Syyuu
echo "Liste des paquets orphelins :"
pacman -Qdt
echo ""
echo "Sauf erreur, le système est à jour."
echo "En cas d'erreur, vous pouvez lancer 'pacman -Syyuu' en ligne de commande après avoir vérifié les miroirs, ou attendre un autre jour pour relancer ce script."
if [ $NumberNewDate -lt $NumberToDate ]
then
echo "Rappel : la précédente mise à jour s'était faite à la date du $oldDAY/$oldMONTH/$oldYEAR."
fi
exit 1
;;
--nomirrors) break;;
--) if [ "$NumberNewDate" = "$NumberToDate" ]
then
SearchMirrors;
echo ""
fi
break;;
esac
done


echo "La dernière mise à jour s'est faite à la date du $oldDAY/$oldMONTH/$oldYEAR."


if [ $NumberNewDate -le $NumberOldDate ]
then
echo "La nouvelle mise à jour devrait se faire à la date du $newDAY/$newMONTH/$newYEAR."
echo -n "Sauf erreur, une nouvelle mise à jour n'est pas nécessaire, mais si vous voulez, on vérifie (O/N) : " && read maj
if [ $maj != "O" ] && [ $maj != "o" ]
then
exit 1
fi
# On laisse le serveur "année/mois/jour" comme serveur unique pour mettre à jour
# On ne touche pas à la date rentrée dans la mirrorlist (pour ne pas faire de downgrade)
sed -i "s%Server%#Server%g" /etc/pacman.d/mirrorlist
sed -i "s%##Server%Server%g" /etc/pacman.d/mirrorlist
pacman -Syyuu
echo "Liste des paquets orphelins :"
pacman -Qdt
sed -i "s%Server%#Server%g" /etc/pacman.d/mirrorlist
sed -i "s%##Server%Server%g" /etc/pacman.d/mirrorlist

else
echo "La nouvelle mise à jour n'excèdera pas la date du $toDAY/$toMONTH/$toYEAR."
echo "La prochaine mise à jour se fera à la date du $newDAY/$newMONTH/$newYEAR."
echo -n "Voulez-vous procéder à la mise à jour (O/N) ? " && read maj
if [ $maj != "O" ] && [ $maj != "o" ]
then
exit 1
fi
sed -i "s#[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]#$newYEAR/$newMONTH/$newDAY#g" /etc/pacman.d/mirrorlist
if [ $NumberNewDate -ge $NumberToDate ]
then
# Cas qui se produit le plus souvent : La mise à jour va aboutir à un système à jour (à deux jours près). On télécharge
# les paquets sur des miroirs rapides et on met à jour en utilisant le miroir du jour choisi.
echo "Téléchargement des paquets..."
pacman -Syyuuw
echo ""
echo "Mise à jour proprement dite..."
sed -i "s%Server%#Server%g" /etc/pacman.d/mirrorlist
sed -i "s%##Server%Server%g" /etc/pacman.d/mirrorlist
pacman -Syyuu
echo "Liste des paquets orphelins :"
pacman -Qdt
sed -i "s%Server%#Server%g" /etc/pacman.d/mirrorlist
sed -i "s%##Server%Server%g" /etc/pacman.d/mirrorlist
echo ""
echo "Sauf erreur, le système est à jour."
echo "En cas d'erreur, vous pouvez lancer 'pacman -Syyuu' en ligne de commande après avoir vérifié les miroirs, ou attendre un autre jour pour relancer ce script."
else
# Le serveur "année/mois/jour" reste le serveur unique
echo "Téléchargement des paquets et mise à jour du système..."
sed -i "s%Server%#Server%g" /etc/pacman.d/mirrorlist
sed -i "s%##Server%Server%g" /etc/pacman.d/mirrorlist
pacman -Syyuu
sed -i "s%Server%#Server%g" /etc/pacman.d/mirrorlist
sed -i "s%##Server%Server%g" /etc/pacman.d/mirrorlist
echo "Liste des paquets orphelins :"
pacman -Qdt
echo -n "La date du système est encore ancienne. Vous pouvez procéder à une nouvelle mise à jour. Voulez-vous relancer l'ordinateur (O/N) ? " && read reboot_or_not
if [ $reboot_or_not = "O" ] || [ $reboot_or_not = "o" ]
then
reboot
fi
fi
fi

J'ai aussi fait un script dans le même esprit pour une downgrade (qui ne sert quasiment jamais) :

#!/bin/sh


# Le fichier /etc/pacman.d/mirrorlist se présente sous cette forme :
#
# #Server = https://archive.archlinux.org/repos/2020/01/22/$repo/os/$arch
#
# Server = https://mirror.cyberbits.eu/archlinux/$repo/os/$arch
# Server = https://mirror.ubrco.de/archlinux/$repo/os/$arch
# Server = https://mirrors.kernel.org/archlinux/$repo/os/$arch
# Server = https://mirror.wtnet.de/arch/$repo/os/$arch
# ...


FormatMirrorlist () {
# On vérifie que le fichier mirrorlist est bien "formaté" comme il faut
format=$(more /etc/pacman.d/mirrorlist | grep "https://archive.archlinux.org/repos/[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]")
if [ "$format" != "" ]
then
formatt=$(more /etc/pacman.d/mirrorlist | grep "^#Server = https://archive.archlinux.org/repos/[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]")
if [ "$formatt" = "" ]
then
# On décale l'adresse en début de ligne
sed -i "s%.*https://archive.archlinux.org/repos%#Server = https://archive.archlinux.org/repos%g" /etc/pacman.d/mirrorlist
fi

else
echo "Le fichier /etc/pacman.d/mirrorlist ne contient pas la ligne suivante :"
echo '#Server = https://archive.archlinux.org/repos/YEAR/MM/DD/$repo/os/$arch'
echo "Cette ligne doit être présente pour que le script puisse fonctionner."
echo "Fin du script."
exit 1
fi
}

PreFormatDate () {
# Pour éviter les erreurs quand on lance la routine qui donne le jour du lendemain ou de la veille
DAY=$1
MONTH=$2
for i in `seq 1 9`;
do
if [ $DAY = "0"$i ]
then
let "DAY = "$i
fi
if [ $MONTH = "0"$i ]
then
let "MONTH = "$i
fi
done
}

YesterdayDate () {
DAY=$1
MONTH=$2
YEAR=$3
if [ $DAY = "1" ]
then
if [ $MONTH = "2" ] || [ $MONTH = "4" ] || [ $MONTH = "6" ] || [ $MONTH = "8" ] || [ $MONTH = "9" ] || [ $MONTH = "11" ]
then
let "DAY = 31"
let "MONTH = MONTH - 1"
elif [ $MONTH = "5" ] || [ $MONTH = "7" ] || [ $MONTH = "10" ] || [ $MONTH = "12" ]
then
let "DAY = 30"
let "MONTH = MONTH - 1"
elif [ $MONTH = "3" ]
then
let "bissext_testone = (YEAR/4)*4"
let "bissext_testtwo = (YEAR/100)*100"
if [ $bissext_testone = $YEAR ] && [ $bissext_testtwo != $YEAR ]
then
let "DAY = 29"
let "MONTH = MONTH - 1"
else
let "DAY = 28"
let "MONTH = MONTH - 1"
fi

elif [ $MONTH = "1" ]
then
let "DAY = 31"
let "MONTH = 12"
let "YEAR = YEAR - 1"
fi

else
let "DAY = DAY - 1"
fi
}

FormatDate () {
DAY=$1
MONTH=$2

for i in `seq 1 9`;
do
if [ $DAY = $i ]
then
DAY=0$DAY
fi
if [ $MONTH = $i ]
then
MONTH=0$MONTH
fi
done
}


FormatMirrorlist

# oldDAY, oldMONTH, oldYEAR : jour, mois et année de la dernière mise à jour.
# newDAY, newMONTH, newYEAR : jour, mois et année de la prochaine mise à jour.

oldDAY=$(grep '[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]' /etc/pacman.d/mirrorlist | cut -d/ -f7)
oldMONTH=$(grep '[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]' /etc/pacman.d/mirrorlist | cut -d/ -f6)
oldYEAR=$(grep '[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]' /etc/pacman.d/mirrorlist | cut -d/ -f5)


# Pour pouvoir manipuler le jour et le mois comme des nombres
PreFormatDate $oldDAY $oldMONTH
oldDAY=$DAY
oldMONTH=$MONTH



# Mises à jour de trente jours en trente jours
let "newDAY = oldDAY"
let "newMONTH = oldMONTH"
let "newYEAR = oldYEAR"

for i in `seq 1 30`;
do
YesterdayDate $newDAY $newMONTH $newYEAR
newDAY=$DAY
newMONTH=$MONTH
newYEAR=$YEAR
done

# On remet au format JJ/MM/AAAA
FormatDate $oldDAY $oldMONTH
oldDAY=$DAY
oldMONTH=$MONTH
FormatDate $newDAY $newMONTH
newDAY=$DAY
newMONTH=$MONTH


echo "La dernière mise à jour s'est faite à la date du $oldDAY/$oldMONTH/$oldYEAR"
echo "Vous avez décidé de faire un downgrade à la date du $newDAY/$newMONTH/$newYEAR."
echo "Voulez-vous continuer (O/N) ?"
read maj
if [ $maj != "O" ] || [ $maj != "o" ]
then
exit 1
fi
sed -i "s#[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]#$newYEAR/$newMONTH/$newDAY#g" /etc/pacman.d/mirrorlist
sed -i "s%Server%#Server%g" /etc/pacman.d/mirrorlist
sed -i "s%##Server%Server%g" /etc/pacman.d/mirrorlist
pacman -Syyuu
sed -i "s%Server%#Server%g" /etc/pacman.d/mirrorlist
sed -i "s%##Server%Server%g" /etc/pacman.d/mirrorlist
echo ""
echo "En cas d'erreur, vous pouvez lancer 'pacman -Syyuu' en ligne de commande."
echo "Si vous souhaitez que votre système fonctionne avec des paquets plus anciens, vous devez relancer ce script."

Voilà, ça servira peut-être un jour à quelqu'un, peut-être pas !



Modifié par rodak le 07/07/2020 00:08
Publicité
Logicien
 Posté le 28/06/2020 à 17:38 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Salut,

ça a l'air intéressant en terme de connaissance de Bash. La Arch installe pleins de nouveaux paquets à toutes les semaines et elle le fait bien. L'installation des paquets est rapide. Je ne pense pas que ce soit nécessaire de faire une mise-à-jour en plusieurs étapes. Je fais les miennes à toutes les semaines Arch et Debian. Je ne peux donc pas parler des problèmes de mise-à-jours après trois mois par exemple. Si ta méthode fonctionne et quelqu'un d'autre est intéressé pourquoi pas dans le mesure où il connaît bien la Arch et ce que ta méthode fait.



Modifié par Logicien le 28/06/2020 17:42
rodak
 Posté le 29/06/2020 à 17:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Oui, c'est exactement ça : un utilisateur "normal" d'Arch ne doit pas avoir besoin de ce script. Je l'avais fait pas très longtemps après avoir installé ma première Arch, sous une impulsion un peu irrationnelle, pour pallier un problème hypothétique qui finalement s'est présenté deux ans après (et du coup, comme je ne me voyais pas faire une mise à jour avec un shift de plus de trois mois, il m'a bien servi).

Mais effectivement, il n'est pas utile pour tout le monde, et il faut évidemment comprendre ce qu'il fait avant de l'utiliser !

rodak
 Posté le 02/07/2020 à 18:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Ce que tu m'as dit m'a un peu travaillé et j'ai rajouté une option... qui en fait revient à faire une simple mise à jour standard du système

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
14,99 €Hub Aukey USB C 6 en 1 (USB 3.0, HDMI 4K, lecteur SD et MicroSD) à 14,99 €
Valable jusqu'au 14 Août

Amazon fait une promotion sur le Hub Aukey USB C 6 en 1 qui passe à 14,99 €. Ce Hub à brancher sur un port USB C vous permettra d'ajouter 3 ports USB 3.0, un lecteur de cartes mémoire SD et MicroSD ainsi qu'un port HDMI 4K à votre ordinateur portable ou votre smartphone.


> Voir l'offre
62,38 €Kit mémoire 16 Go DDR4 SO-DIMM HyperX (2x8 Go) à 62,38 € livré
Valable jusqu'au 12 Août

Amazon Allemagne propose actuellement le Kit mémoire 16 Go DDR4 SO-DIMM HyperX Impact à 57,83 €. Comptez 4,55 € pour la livraison en France soit un total de 62,38 € livré alors qu'on le trouve ailleurs à partir de 75 €. Un excellent prix pour ce kit mémoire dédié aux ordinateurs portables et composé de 2 modules de 8 Go DDR4 2666 MHz CL15. Notez que la version 32 Go (2x16 Go) est également en promotion à 114,10 € livrée.


> Voir l'offre
66,90 €Kit de 16 Go (2 x 8 Go) de mémoire DDR4 Corsair Vengeance LPX 3200 MHz à 66,90 €
Valable jusqu'au 16 Août

Amazon fait une belle promotion sur le kit de 16 Go (2x8 Go) de mémoire DDR4 Corsair Vengeance LPX 3200 MHz qui passe à 66,90 € livrée gratuitement.


> Voir l'offre

Sujets relatifs
Besoin de conseils pour mise à jour Debian Testing
Pas de connection pour mise à jour
Miroir de mise a jour pour mdk / amd64
Problème de mise à jour Clamtk
Les consignes de base pour administrer une Archlinux. - YouTube
Problème de mise à jour sur Arch
Problème pour la mise à jour xubuntu
Mise à jour de ma Debian Wheezy vers Jessie
Archlinux : mise à jour foireuse - merci chroot !
[TUTO]Script, pour Notification de Réponse.
Plus de sujets relatifs à Script de mise à jour pour Archlinux
 > Tous les forums > Forum Linux