Repository 32bit  Forum
Repository 64bit  Wiki

Riparare il sistema info

Da Slacky.eu.
Versione delle 10:19, 14 giu 2008, autore: Melmothx (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Il sistema info (il sistema di documentazione ufficiale del sistema GNU, integrato in modo magnifico in GNU Emacs) di default in Slackware è fallato. Benché le pagine info siano accessibili usando il nome del file con estensione info o .info, i vari nodi che compongono il sistema info non sono accessibili perché mancano tutti gli indici.

L'installazione di una pagina info si effettua infatti con il comando

install-info file.info dir

Nella relativa directory di installazione. Il file dir contiene infatti tutti gli indici. Gli SlackBuild di default non eseguono questo comando ed eliminano il file /usr/info/dir per evitare che questo venga sovrascritto.

Probabilmente questo è anche il motivo per cui Pat si rifiuta di riparare il sistema info, poiché complica il processo di installazione (e rimozione) dei pacchetti.

La mia soluzione è la seguente:

Come prima cosa bisogna inizializzare la variabile INFOPATH, che di default è vuota.

Aggiungiamo questa riga a /etc/profile

export INFOPATH=/usr/info:/usr/local/info

In questo modo il sistema info troverà i file anche presenti nella directory /usr/local.

Se avete l'abitudine di installare programmi nella vostra $HOME consiglio di aggiungere questa riga a $HOME/.bashrc

export INFOPATH=$INFOPATH:~/usr/info

aggiungendo così la directory ~/usr/info all'elenco delle directory info. Ovviamente ne potete aggiungere quante ne volete, basta che ogni campo sia separato dai due punti :

Ora dobbiamo solo riparare i file dir

Io propongo di preparare il seguente script:


#!/bin/sh

PATH="/usr/sbin:/usr/local/bin:/usr/bin:/bin"
INFOPATH="/usr/info:/usr/local/info"

which install-info > /dev/null  2> /dev/null || exit 0

for i in $(echo $INFOPATH | sed -e "s/:/ /g"); do
    cd $i
    rm -f dir
    for a in * ; do
	 install-info $a dir 2> /dev/null
    done 
done	
 
exit 0


E di eseguirlo con privilegi di root dopo ogni installazione, al boot, ogni due mesi, o quando volete. Probabilmente è scontato, ma i neofiti dovrebbero incollare il codice in un documento di testo vuoto, salvarlo con un nome qualsiasi, (update-info-system andrà più che bene), renderlo eseguibile con

chmod +x update-info-system

ed eseguirlo con

./update-info-system



A cose fatte (è una procedura molto veloce) vi consiglio di aprire Emacs, digitare C-h i e di godervi lo spettacolo.

Strumenti personali
Namespace

Varianti