In che modo gli utenti tipici devono leggere la documentazione in / usr / share / doc?


43

Di recente ho appreso che c'è una grande pila di documentazione in /usr/share/doc.

Sembra che gran parte di esso sia compresso in modo da non essere direttamente accessibile senza i privilegi di amministratore:

$ gunzip examples/letter.tex.gz 
gzip: examples/letter.tex: Permission denied

Mentre una soluzione a questo sarebbe per ogni utente duplicare ogni elemento nella propria directory home solo per leggerlo, questa disposizione sembra a malapena favorevole alla normale navigazione.

In che modo le persone normali leggono questa documentazione?

Non sono propenso a credere che l'utente normale debba installare e gestire un server Web solo per leggere la documentazione di testo locale.


Giusto per essere chiari, sei interessato a trattare qualsiasi documento nelle directory / usr / share / doc, o solo quelle TeX / LaTeX?
belacqua,

OK, un'altra domanda: devi elaborare i file .tex in dvi o altro, o semplicemente guardare il codice sorgente?
belacqua,

1
Sto chiedendo informazioni sulla documentazione in /usr/share/docgenerale e con particolare attenzione all'osservazione che gran parte di essa è archiviata in un formato compresso. Se risulta che ci sia della documentazione memorizzata come LaTeX non tipizzata, devo ancora incontrarla. L'esempio particolare a cui ho fatto riferimento sopra è un modello LaTeX dal pacchetto texlive-latex-extra-doc.
ændrük,


1
askubuntu.com/questions/24072/… . Penso che questa sia la soluzione migliore per tutte le impostazioni e funzioni dopo.
nelaaro,

Risposte:


6

La maggior parte è stata detta e ben spiegata da jgbelacqua per l'uso nel terminale. Basta aggiungere questo per le persone che si trovano su un desktop manager:

Da un desktop grafico (qui GNOME) il modo più semplice per leggere i documenti /usr/share/docè di (fare doppio clic) aprire i file compressi con il proprio gestore archivi standard (qui File Roller) da dove è possibile (fare doppio clic) aprire e leggerli in il tuo editor standard (qui Gedit). Non sono necessarie autorizzazioni di scrittura finché non si decomprimono i file.


Soluzione meravigliosa Questo è davvero il motivo per cui le persone usano cose come Ubuntu, Gnome, ecc. Questo tipo di attività è resa più semplice.
Belacqua,

20

Ci sono almeno due problemi qui:

  1. leggere i file .gz indolore
  2. permessi per le directory
  3. (opzionale per file tex)

Per # 1 , ci sono un certo numero di applicazioni che faranno fronte senza problemi ai file compressi con gzip. Una coppia che potresti usare sono lesse vim.

 less README.gz 
 vim -R README.Debian.gz
 view Important.bits.gz

viewè un alias per vim -R, che dice solo di aprire il file in sola lettura.

Ai vecchi tempi, prima di meno è stato installato sul mio sistema, vorrei utilizzare gzcate inviare l'output ad un altro programma di utilità. Apparentemente, si chiama solo zcatora su Ubuntu, ma lo useresti in questo modo, ad esempio:

 /usr/share/doc/xpdf$ zcat changelog.Debian.gz  | more

zcat è ancora disponibile e in alcuni casi può essere utile utilizzarlo per convogliare contenuti compressi da qualche parte. (Per situazioni con file .bz2, bzcatè disponibile.)

Per # 2 , tutti i file che ho visto sotto / usr / share / doc sono in directory con altre autorizzazioni + rx, il che significa che tutti gli utenti possono cercare nelle directory (ad esempio, elencare i contenuti) e leggere i file all'interno. Quello che non puoi fare (dato che solo root ha i permessi di scrittura di default) è creare file. Poiché stai tentando di decomprimerlo in quella directory, immagino che ti dia l'autorizzazione negata perché hai letto ma non scrivi le autorizzazioni per impostazione predefinita.

Per # 3, suppongo che tu usi i file .tex più di me. Ma ecco un modo per gestirli senza copiare in home o un file temporaneo. Per questo, creerai una pipe con nome, ma puoi riutilizzarla per le tue altre esigenze di piping ed elaborazione tex. Dovrebbe andare così:

  • zcat o gzcat il testo
  • ... e collegalo al tuo processore TeX
  • ... e invialo al tuo Named Pipe (qui, lo chiamerò pipey)
  • ... e poi in una schermata separata prendi l'output da pipey
  • ... e inviarlo a un processo di visualizzazione DVI.

Puoi ovviamente modificare questi passaggi se usi utility diverse o migliori di quelle qui.

Il mio esempio utilizzerà il mkfifoprogramma di utilità per creare la named pipe, pipey. Il file di destinazione da elaborare è /usr/share/doc/gdb/refcard.tex.gz. Avrai bisogno di due righe di comando della shell disponibili (tramite terminale, Alt + F2 o comunque).

Digiterai il primo terminale:

mkfifo pipey

Ora hai una pipe di nome persistente. Puoi usarlo ls -lper sbirciare.

zcat /usr/share/doc/gdb/refcard.tex.gz | tex > pipey

Si noti che questo comando non verrà restituito fino a quando non si esegue qualcosa con l'output che è andato alla pipe denominata.

Ora, nel secondo terminale, digiterai: tex pipey | xdvi

E funziona (bene, qui comunque). Il processo può essere perfezionato per un output più bello, ma se stai cercando un modo rapido e relativamente privo di problemi, questo è un modo per farlo.


1
Dai un'occhiata alla mia soluzione, penso che rimarrai colpito. askubuntu.com/questions/24072/…
nelaaro

1
+1 per il dettaglio. Per quanto mi riguarda, come menzionato anche da @nelaar, aggiungo solo alcune direttive alla <Directory "/usr/share/doc/">dichiarazione della directory di Apache (di solito in /etc/apache2/sites-enabled/000-default) e credo che la decompressione sia gestita dai browser stessi. ( AddEncoding x-gzip gz tgze AddType text/plain .gz).
Elimina il

Sebbene questa sia stata una lezione straordinaria e dettagliata su molti comandi utili, non è certo una buona soluzione per come un utente normale dovrebbe leggere la documentazione di sistema. Per Ubuntu, il guaito di Gnome o il dwww di Debian è il metodo più semplice e senza dolore. La mia risposta descrive quest'ultima: askubuntu.com/a/52419/11015
MestreLion

1
@MestreLion Un "utente tipico" nel senso più realistico non sa che i file sono persino lì. Penso che la soluzione più semplice sia quella che ho citato per prima - l'utilizzo less. Questo ha l'ulteriore vantaggio di essere installato di default su ogni moderno sistema * nix. Per l'utente che sa che i file sono presenti e che desidera farvi riferimento più di un paio di volte all'anno, l'installazione di qualcosa come dwww sembra un'ottima soluzione. Io stesso, in un pizzico, potrei non ricordare dwww, ma ricorderò comandi di base come 'meno'. Oppure, come diceva Takkat, Nautilus / fileroller / ecc.
belacqua,

13

Forse è troppo tardi per rispondere, ma ho trovato la soluzione migliore (sia facilità d'uso che completezza)

Un tipico sistema Linux ha documentazione in molti formati (pagine di manuale, file di informazioni, file README e così via). dwww consente di accedere a tutti questi tramite la stessa interfaccia, un browser WWW. Ciò semplifica l'utilizzo della documentazione.

dwww è un'interfaccia web per tutta la documentazione online su un sistema Debian. Crea alcune pagine Web che elencano tutti i documenti installati e converte tutti i documenti in HTML. La conversione viene eseguita quando l'utente richiede il documento.

  • Abilita il modulo CGI, che non è più abilitato di default in Ubuntu / Apache recenti:

    sudo a2enmod cgi
    sudo service apache2 restart
    
  • Apri il browser e punta a: http: // localhost / dwww /

  • Fatto!

Tutte le tue infopagine, manpagine, /usr/share/docfile e descrizione del pacchetto in un unico posto! Il tuo sito Web di documentazione personale!


Usa questo metodo È meno dolore pieno. E puoi cercare le cose molto velocemente in quanto avrai una casella di ricerca come Google.
Apprendista curioso,

1
Per i futuri visitatori, è necessario abilitare CGI e riavviare il servizio Apache: askubuntu.com/questions/581118/…
Sergiy Kolodyazhnyy

7

gunzip file.gztentativi di decomprimere file.gza file, la rimozione file.gz. Ecco perché viene visualizzato l'errore "Autorizzazione negata", non è consentito scrivere /usr/share/doc. Per ottenere il contenuto di un file, utilizzare gunzip -c file.gzo zcat file.gz.

La lettura di file di testo compressi con gzip può essere eseguita con zless. Come potrebbero suggerire i nomi, è giusto less, ma per i file compressi con gzip.

Esempio di utilizzo:

zless /usr/share/doc/bash/NEWS.gz

Anche il .gzsuffisso può essere omesso:

zless /usr/share/doc/bash/NEWS

Sui sistemi recenti, non ho dovuto specificare zless, come lesslo gestirò automaticamente.
belacqua,

1
@belacqua Vero, faccio lo stesso al giorno d'oggi. Credo che abbia qualcosa a che fare con le LESSOPENe LESSCLOSEambientali variabili.
Lekensteyn,

5

Prima installa apache2

sudo apt-get install apache2 apache2-doc  

apache2-docè il caso speciale qui. Ti permette di sfogliare la tua documentazione /usr/share/doc/attraverso il tuo browser web. fro http://localhost/doc/.

Questo non funziona bene però. È necessario modificare la configurazione di Apache per farlo decomprimere e mostrare i file * .gz come testo normale.

Ho pubblicato su Stack Overflow per ottenere un modo di usare Apache per mostrare il contenuto dei documenti * .gz nella /usr/share/doc/directory. Questo è ciò che è stato pubblicato come possibile soluzione.

Ecco queste istruzioni in breve. Indica ad Apache come gestire i file .gz per elaborarli come testo normale e inviarli al browser come testo normale.

sudo a2enmod headers   
sudo a2enmod deflate  
gksu gedit /etc/apache2/sites-enabled/000-default 

Vai in fondo al file e trova la sezione con Alias /doc/ "/usr/share/doc/" e modificala in questo modo.

Alias /doc/ "/usr/share/doc/"
<Directory /usr/share/doc>
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128

    AddEncoding gzip gz
    <FilesMatch "\.gz$">
      ForceType text/plain
      Header set Content-Encoding: gzip
    </FilesMatch>
</Directory>   

Quindi riavviare Apache:

sudo apache2ctl restart   

1
Non sono troppo sicuro se questa è una soluzione diversa. Ho appena aggiunto la AddEncoding x-gzip gz tgz AddType text/plain .gzmia <Directory "/usr/share/doc/">voce e credo che la decompressione sia effettivamente gestita sul lato client.
Elimina il

@Alain, no, non è una soluzione diversa, questo è essenzialmente quello che sto facendo.
nelaaro,

Mentre penso che questa sia la soluzione migliore (nulla può battere usando un browser per sfogliare i documenti), è un grosso problema per installare un intero server web solo per quello. Vorrei davvero che Linux ( yelpforse?) Avesse un modo pronto per leggere i documenti.
MestreLion,

Aggiornamento: la soluzione ha funzionato perfettamente !!! mod "deflate" era già abilitato sudo service apache2 restartper impostazione predefinita e ho cambiato l'ultima riga in per motivi di standartization. Ultimo ma non meno importante, le letture devono essere consapevoli del trascinamento "/": deve essere localhost / doc / , localhost / doc non funzionerà.
MestreLion,

-3

Non dovresti leggere i file .tex! È in formato leggibile, ma è progettato per essere elaborato prima del reanding. Puoi usare lo strumento tex2pdf per convertirlo in .pdf.


1
1) Voglio leggere la fonte LaTeX. 2) Il comando è pdflatex. 3) Questo è tangenziale al problema della necessità di comprimere il file prima di leggerlo.
ændrük,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.