Visualizzazione post con etichetta slackware. Mostra tutti i post
Visualizzazione post con etichetta slackware. Mostra tutti i post

2026-01-12

Gestire la cache dei pacchetti su Slackware

Chi usa Slackware lo sa, mantenere DELALL=off in slackpkg.conf è fondamentale per avere sempre un paracadute e poter effettuare un rollback in caso di necessità. Tuttavia, col tempo, l'archivio locale dei pacchetti può diventare enorme.

Pubblichiamo uno script che risolve proprio questo problema, inserendosi perfettamente nel workflow di aggiornamento standard:

  1. slackpkg update
  2. slackpkg upgrade-all
  3. manage_updates

Cosa fa lo script? Agisce come un garbage collector intelligente per l'archivio locale. Invece di accumulare versioni obsolete all'infinito, lo script applica una policy di conservazione: mantiene solo le due versioni più recenti di ogni pacchetto.

Sicurezza. Hai sempre a disposizione l'ultima versione stabile e quella precedente per un rollback immediato.

Efficienza. Mantieni il controllo dello spazio su disco in modo automatico.

Pulizia. Eviti la rimozione manuale dei vecchi pacchetti `.txz`.

Trovi la documentazione e lo script qui: https://github.com/morinim/documents/tree/master/sysadmin/slackware

2025-12-09

Slackware - Installare una versione aggiornata di GCC/CLANG

GCC e LLVM

Rendiamo disponibili, nel nostro repository su GitHub, gli script per utilizzare una versione aggiornata di GCC e/o CLANG su una Slackware stable (si tratta comunque di POSIX script, quindi ragionevolmente compatibili con altre distribuzioni).

L'installazione, conformemente al Filesystem Hierarchy Standard, avviene nella directory /opt. In genere questa è una buona scelta per i compilatori dal momento che permette:

  • di evitare interferenze con /usr/bin/gcc e /usr/bin/clang;
  • di non sovrascrivere librerie già installate con la distribuzione Linux;
  • di effettuare semplici scelte a livello di utente (export PATH=/opt/gcc-XX.Y.Z/bin:$PATH);
  • il supporto di versioni multiple;
  • una semplice rimozione (rm -rf /opt/gcc-XX.Y.Z).

I collegamenti diretti sono:


2025-07-31

Attenzione a fstrim su RAID 10: crash del kernel in alcune configurazioni Linux (5.15.181-stable / 5.15.188-stable)


Sintomo

Su alcune configurazioni Linux, eseguire il comando:

> fstrim -v /

può causare un crash del kernel immediato, accompagnato dal messaggio `Killed` e da una traccia nel log (`dmesg`) simile a questa:

RIP: 0010:0x0
Code: Unable to access opcode bytes at RIP 0xffffffffffffffd6.
Call Trace:
  raid10_make_request+0xbf1/0xd20
  ...

Il problema si verifica anche su altri mount point e non è legato a mancanza di memoria o corruzione del filesystem.

Causa

Il problema è causato da un bug noto nel driver md/raid10 del kernel Linux: quando viene eseguito un comando TRIM (come `fstrim`) su un volume configurato in RAID 10 software, il kernel tenta di accedere ad un puntatore funzione nullo, provocando un kernel panic.

Questa anomalia è stata segnalata anche in altre distribuzioni (es. Ubuntu, bug #2117395) e si verifica su filesystem ext4 montati sopra array RAID 10.

Perché succede

Il supporto TRIM (discard) non è sempre correttamente implementato nel livello RAID 10 software. Il kernel presume l'esistenza di una funzione per gestire l'operazione `REQ_OP_DISCARD`, ma questa non è definita in alcune configurazioni. Il risultato è un accesso a indirizzo nullo (0x0) e il crash del sistema.

Soluzioni consigliate

Non usare, momentaneamente, `fstrim` su RAID 10.

Rimuovere l'opzione `discard` da `/etc/fstab` per evitare TRIM automatici:

diff
- /dev/md0 / ext4 defaults,discard 0 1
+ /dev/md0 / ext4 defaults 0 1
 

2025-06-26

Come ripristinare un sistema Slackware dopo un aggiornamento del kernel senza aver eseguito lilo

Se utilizzi Slackware e hai aggiornato il kernel, c'è un passaggio fondamentale da non dimenticare: eseguire `lilo`. Questo comando aggiorna il bootloader con le informazioni del nuovo kernel. Dimenticarlo significa molto probabilmente ritrovarsi con un sistema che non si avvia più correttamente.

Cosa succede se dimentichi lilo

Slackware, a differenza di altre distribuzioni, non aggiorna automaticamente il bootloader dopo l'installazione di un nuovo kernel. Se dimentichi di eseguire `lilo`, potresti riscontrare:

  • errori all'avvio, come "kernel not found";
  • sistema che continua a caricare il vecchio kernel (se ancora presente);
  • blocco totale all'avvio, con la necessità di intervenire manualmente.

Niente panico: è possibile ripristinare il sistema con pochi passaggi, utilizzando il disco di installazione di Slackware o una live USB.