[ArchLinux] Nettoyage du cache pacman

J’ai constaté très récemment que la partition contenant mon système ArchLinux disposait de moins d’une dizaine de Go libre. N’ayant pas installé de jeux, ou de logiciels gourmands en espace disque, je me suis donc immédiatement intéressé à la taille du cache de pacman.

# du -sh /var/cache/pacman/pkg/
75G /var/cache/pacman/pkg/

La commande ci-dessus m’informe donc que le cache de pacman occupe un total de 75 giga. Je procède donc au nettoyage des anciennes versions des paquets, pour descendre à une taille plus raisonnable de 3,3 giga.

# sudo pacman -Sc
Paquets à conserver :
  Tous les paquets installés
Répertoire du cache : /var/cache/pacman/pkg/
:: Voulez-vous supprimer tous les autres paquets du cache ? [O/n] o
suppression des paquets obsolètes du cache…
Répertoire des dépôts : /var/lib/pacman/
:: Voulez-vous supprimer les dépôts non utilisés ? [O/n] o
suppression des dépôts synchronisés inutilisés…
# du -sh /var/cache/pacman/pkg/
3,3G /var/cache/pacman/pkg/

Pour réaliser ce nettoyage, on peut également utiliser le programme paccache :

# sudo pacman -S pacman-contrib
# sudo paccache -r
==> no candidate packages found for pruning

Une action à réaliser périodiquement pour éviter de se retrouver avec un cache gigantesque.

Citation [12] – Brandon Sanderson

Par conséquent, la destination importe-t-elle ? Ou seulement le chemin que nous empruntons ? Je déclare qu’aucune réussite ne possède de substance aussi grande que la route qui mène à elle. Nous ne sommes pas des créatures de destination. C’est le voyage qui nous façonne. Nos pieds calleux, nos dos renforcés d’avoir supporté le poids de nos voyages, nos yeux ouverts par le ravissement nouveau des expériences vécues.

La Voie des rois – Brandon Sanderson

And so, does the destination matter? Or is it the path we take? I declare that no accomplishment has substance nearly as great as the road used to achieve it. We are not creatures of destinations. It is the journey that shapes us. Our callused feet, our backs strong from carrying the weight of our travels, our eyes open with the fresh delight of experiences lived.

The Way of Kings – Brandon Sanderson

[Bash] Test chaîne vide ou non

Vérification qu’une variable est non vide en Bash.

if [[ -n "$PARAMETERS_FILE" ]]; then
  METADATA="${METADATA},parameters_file=${PARAMETERS_FILE}"
fi

En d’autres termes, si la variable PARAMETERS_FILE n’est pas vide, on la concatène dans METADATA. Pour vérifier qu’une variable est vide, utiliser -z.

Soit au final :

  • -z : retourne vrai si la taille de la chaîne vaut zéro.
  • -n : retourne vrai si la taille de la chaîne n’est pas zéro.

Source : Shellcheck – SC2236 : Use -n instead of ! -z

Carnet 5 – Du côté du LAN

Pour le mois dernier, soit celui de juillet 2019, mon attention s’est dirigé vers le LAN de mon appartement, mon réseau interne. Après les nombreuses améliorations effectuées du côté de la sauvegarde des données, je me suis donc attelé à effectuer quelques modifications de la topologie du LAN. En effet, le recâblage de l’ensemble des ports RJ45 de mon habitation, il y a de cela quelques semaines, m’offre de nouvelles possibilités.

Jusqu’à présent, seuls les appareils placés dans la même pièce que mon modem était en mesure de disposer d’un accès filaire au réseau. Les appareils présents dans mon salon, devait quant à eux se contenter d’un accès par onde. Afin de garantir davantage de stabilité à ces appareils, j’ai donc fait l’acquisition d’un nouveau switch configurable, de taille réduite avec ses 5 ports, et que j’ai placé au niveau de mon tableau électrique, à côté de l’ONT de mon fournisseur d’accès internet.

Couplé à un second switch configurable à proximité du routeur et grâce à la configuration de deux VLANs, l’un pour le trafic LAN, l’autre en 832 pour le WAN, j’ai donc réussi, après quelques tâtonnements et remise à jour de mes connaissances en matière de VLAN, à séparer et faire cohabiter sur un même câble les deux réseaux. J’ai donc ressorti un ancien switch, encore un, que j’ai placé en sortie de la prise RJ45 dans mon salon, afin de pouvoir distribuer le réseau aux appareils à proximité.

Le but de cette opération était en particulier de passer à une connexion filaire pour mon Pi configuré en lecteur de musique Runeaudio. En effet, après plus d’un an d’utilisation, je me suis enfin décidé à lui adjoindre une carte DAC+ pro de chez Hifiberry, afin d’améliorer la qualité du son en sortie. Ayant lu dans la documentation et sur les forums, que la carte en question été susceptible de perturber le signal WiFi du raspberry pi, j’ai trouvé préférable d’améliorer l’ensemble de mon réseau pour être en mesure de connecter le Pi en filaire. Ayant effectué les modifications de réseau, avant de recevoir la carte, je n’ai en revanche pas vérifié la présence ou l’absence des-dites instabilités. En tous cas, cette nouvelle configuration fonctionne parfaitement, et je crois distinguer une nette amélioration du côté du son.

J’en ai également profité pour remplacer certains des câbles par des câbles plus courts lorsque cela était possible, afin de réduire l’effet capharnaüm.

Connexion fibre – Remplacer la livebox

En passant d’un accès adsl chez OVH, à un accès fibre chez Sosh, je me suis donc retrouvé avec une livebox sur les bras pour la connexion au réseau. N’étant pas fan de l’interface et disposant déjà d’un routeur entièrement configuré et responsable de la gestion de l’ensemble de mon LAN, j’ai donc rapidement cherché à remplacer la livebox par mon routeur tournant sous Advanced Tomato.

Pour la configuration, je me suis basé sur les deux liens ci-dessous. Le premier sur le forum lafibre.info, réunit toutes les informations nécessaires à la configuration d’un routeur sous Advanced Tomato sur le réseau d’Orange. Le deuxième complète avantageusement le premier lien, en donnant un exemple détaillé de configuration et de nombreuses informations sur le contexte de connexion à la fibre d’Orange.

Génération de l’identifiant de connexion hexadécimal

L’identifiant de la connexion orange est de la forme fti/xxxx, la partie qui nous intéresse est celle qui suit le préfixe fti/, et qu’il faut convertir en hexadécimal pour l’ajouter dans la configuration de l’option 90. Le code JavaScript suivant permet de générer la chaîne nécessaire:

function strToHex(str) {
  let result = '';
  for (let i = 0; i < str.length; i++) {
    result += str.charCodeAt(i).toString(16);
  }
  return result;
}
console.log(strToHex(xxxx));
Mise en place des options 77 et 90

Dans l’interface du routeur sous Advanced Tomato, dans la partie Administration > Scripts, onglet Init, j’ajoute le code suivant en remplaçant les xxxxxx par la chaîne hexadécimale générée précédemment :

cp -R /sbin/ /tmp/sbin
rm /tmp/sbin/udhcpc
echo 'exec busybox udhcpc -O 0x4d -O 0x5a -x 0x4d:2b46535644534c5f6c697665626f782e496e7465726e65742e736f66746174686f6d652e4c697665626f7833 -x 0x5a:00000000000000000000001a0900000558010341010d6674692fxxxxxx "$@"' > /tmp/sbin/udhcpc
chmod +x /tmp/sbin/udhcpc
mount --bind /tmp/sbin/ /sbin
Priorité et classement du trafic

Pour la suite, on ajoute de la priorité au trafic, cette fois dans l’onglet firewall :

### Version 16 20181010
### https://lafibre.info/remplacer-livebox/tuto-remplacer-la-livebox-par-un-routeur-dd-wrt-internet-tv/

### Priorite / CoS pour Internet

# File 0 (par defaut) pour le DHCP (raw-socket), file 1 pour le reste du trafic
vconfig set_egress_map vlan832 0 6
vconfig set_egress_map vlan832 1 0

### On classe le trafic Internet dans les bonnes files

# Tout le trafic priorite 1 (CoS 0)
iptables -t mangle -A POSTROUTING -j CLASSIFY --set-class 0000:0001

# Client DHCP non raw-socket (pas le cas de udhcpc) mais sert aussi pour le renew
iptables -t mangle -A POSTROUTING -o vlan832 -p udp --dport 67 -j CLASSIFY --set-class 0000:0000
Configuration du VLAN 832

Dans la partie Basic Settings > Network, partie WAN Settings, sélectionner DHCP.
Dans la partie Advanced Settings > VLAN, ajouter un VLAN supplémentaire, portant le VID 832. Pour ce VLAN, compléter les colonnes de la façon suivante :

  • WAN Port : Yes
  • Tagged : On (Colonne après WAN Port)
  • Bridge: WAN

Le reste de colonnes restent vides pour le VLAN 832. En cas de doute, se référer à l’image présente sur la page du forum lafibre.info dont le lien figure plus haut.

Conclusion

Une fois cette configuration mise en place, il ne reste plus qu’à redémarrer le routeur, et à croiser les doigts en espérant ne pas avoir fait d’erreurs de recopiage. Dans le cas contraire, il faudrait passer au débug de la configuration, ce qui est une autre paire de manche. Dernier point, s’il m’arrive de perdre la connexion, suite à un changement de configuration, ou plus généralement, après un changement de câblage ayant laisser le router déconnecté de l’ONT plusieurs minutes, je retrouve une connexion fonctionnelle en forçant le renouvellement de la connexion dans l’interface Status > Overview, encart WAN, bouton Renew.

A terme, il n’est pas impossible que je procède au changement de mon routeur R7000. En effet, Advanced Tomato ayant beau être fantastique à utiliser, celui-ci, basé sur Tomato Shibby, n’est plus mis à jour. Il faudrait que j’étudie plus en détails les implications, ou plutôt la vulnérabilité actuelle du composant aux failles de sécurité découvertes ses derniers mois. Quelques internautes semblent utiliser un routeur MikroTik en remplacement de leur livebox avec succès, c’est une piste à creuser, d’autant plus que ce n’est pas la première fois que j’entends parler de cette marque.