Comment les utilisateurs types doivent-ils lire la documentation dans / usr / share / doc?


43

J'ai récemment appris qu'il existe une énorme quantité de documentation /usr/share/doc.

Il semble qu'une grande partie est gzippée afin de ne pas être directement accessible sans privilèges administratifs:

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

Une solution à ce problème consisterait pour chaque utilisateur à dupliquer chaque élément de son répertoire personnel juste pour le lire, mais cet arrangement ne semble guère propice à une navigation régulière.

Comment les gens normaux lisent-ils cette documentation?

Je ne suis pas enclin à croire que l'utilisateur type est censé installer et gérer un serveur Web uniquement pour lire la documentation en texte local.


Juste pour clarifier les choses, êtes-vous intéressé à traiter des documents dans les répertoires / usr / share / doc, ou juste ceux de TeX / LaTeX?
Belacqua

OK, une autre question - avez-vous besoin de traiter des fichiers .tex au format dvi ou autre, ou simplement de regarder le code source?
Belacqua

1
Je parle de la documentation en /usr/share/docgénéral et en prêtant une attention particulière au fait que la plupart d’entre elles sont stockées dans un format compressé. S'il se trouve que de la documentation est stockée en tant que LaTeX non typé, je ne l'ai pas encore rencontrée. L'exemple particulier que j'ai cité ci-dessus est un modèle LaTeX du package texlive-latex-extra-doc.
ændrük


1
askubuntu.com/questions/24072/… . Je pense que c’est la meilleure solution sur une seule installation et que cela fonctionne ensuite.
Nelaaro

Réponses:


6

La plupart ont été très bien expliquées par jgbelacqua pour une utilisation en terminal. Ajoutons simplement ceci aux personnes qui sont sur un gestionnaire de bureau:

Depuis un bureau graphique (ici GNOME), le moyen le plus simple de lire des documents /usr/share/docconsiste à (double) ouvrir les fichiers compressés avec votre gestionnaire d'archives standard (ici File Roller) d'où vous pouvez (double) cliquer pour les ouvrir et les lire. votre éditeur standard (ici Gedit). Aucune autorisation d'écriture n'est nécessaire tant que vous ne décompressez pas les fichiers.


Solution merveilleuse. C’est en effet la raison pour laquelle les gens utilisent des choses comme Ubuntu, Gnome, etc. Ce genre de tâche est facilité.
Belacqua

20

Il y a au moins deux problèmes ici:

  1. lire les fichiers .gz sans douleur
  2. autorisations sur les répertoires
  3. (optionnel pour les fichiers tex)

Pour le n ° 1 , il existe un certain nombre d'applications qui gèrent les fichiers compressés de manière transparente. Un couple que vous pourriez utiliser sont lesset vim.

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

viewest un alias pour vim -R, qui dit simplement d'ouvrir le fichier en lecture seule.

Auparavant, avant d'installer moins de logiciels sur mon système, j'utilisais gzcatet dirigais la sortie vers un autre utilitaire. Apparemment, il n'est appelé que zcatmaintenant sur Ubuntu, mais vous l'utiliseriez comme ceci, par exemple:

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

zcat est toujours disponible et son utilisation pour diriger des contenus compressés quelque part peut être utile dans certains cas. (Pour les situations avec des fichiers .bz2, bzcatest disponible.)

Pour # 2 , tous les fichiers que j'ai vus sous / usr / share / doc se trouvent dans des répertoires avec d'autres autorisations + rx, ce qui signifie que tous les utilisateurs peuvent effectuer une recherche dans les répertoires (par exemple, le contenu de la liste) et y lire des fichiers. Ce que vous ne pouvez pas faire (car seul root a l'autorisation d'écriture par défaut), c'est créer des fichiers. Étant donné que vous essayez de décompresser dans ce répertoire, j'imagine qu'il vous donne l'autorisation refusée car vous avez lu, mais pas écrit, les autorisations par défaut.

Pour # 3, je suppose que vous utilisez plus que moi les fichiers .tex. Mais voici une façon de les gérer sans copier à la maison ou dans un fichier temporaire. Pour cela, vous allez créer un canal nommé, mais vous pouvez le réutiliser pour vos autres besoins en traitement et en traitement de texte. Cela devrait aller comme ceci:

  • zcat ou gzcat le texte
  • ... et dirigez-le vers votre processeur TeX
  • ... et envoyez ça à votre pipe nommée (ici, je l'appellerai pipey)
  • ... puis dans un écran séparé, saisissez votre sortie de pipey
  • ... et l'envoyer à un processus d'affichage dvi.

Vous pouvez évidemment modifier ces étapes si vous utilisez des utilitaires différents ou meilleurs que ceux décrits ici.

Mon exemple utilisera cet mkfifoutilitaire pour créer le canal nommé pipey. Le fichier cible à traiter est /usr/share/doc/gdb/refcard.tex.gz. Vous aurez besoin de deux lignes de commande shell disponibles (via terminal, Alt + F2, ou cependant).

Vous allez taper au terminal un:

mkfifo pipey

Vous avez maintenant un canal nommé persistant. Vous pouvez utiliser ls -lpour jeter un coup d'oeil.

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

Notez que cette commande ne renverra pas tant que vous ne ferez pas quelque chose avec la sortie qui est passée dans le canal nommé.

Maintenant, au terminal deux, vous allez taper: tex pipey | xdvi

Et ça marche (enfin, ici quand même). Le processus peut être affiné pour obtenir une sortie plus jolie, mais si vous recherchez une solution rapide et relativement sans dégâts, c’est une façon de le faire.


1
Découvrez ma solution, je pense que vous serez impressionné. askubuntu.com/questions/24072/…
nelaaro

1
+1 pour le détail. Quant à moi, comme mentionné également par @nelaar, j’ai ajouté quelques directives à la <Directory "/usr/share/doc/">déclaration du répertoire Apache (généralement dans /etc/apache2/sites-enabled/000-default) et je pense que la décompression est gérée par les navigateurs eux-mêmes. ( AddEncoding x-gzip gz tgzet AddType text/plain .gz)
Supprimer

Bien que ce soit une leçon étonnante et détaillée sur de nombreuses commandes utiles, ceci n’est guère une bonne solution pour permettre à un utilisateur typique de lire la documentation du système. Pour Ubuntu, Gnome de jappement ou de Debian de dwww est la méthode la plus facile sans douleur. Ma réponse décrit ce dernier: askubuntu.com/a/52419/11015
MestreLion

1
@MestreLion Un "utilisateur typique" dans le sens le plus réaliste ne sait pas que les fichiers sont là même. Je pense que la solution la plus simple est celle que j'ai mentionnée en premier - utiliser less. Cela présente l’avantage supplémentaire d’être installé par défaut sur tous les systèmes modernes * nix. Pour l'utilisateur qui sait que les fichiers sont là et veut s'y référer plus de deux fois par an, installer quelque chose comme dwww semble être une excellente solution. En un rien de temps, je ne me souviendrais peut-être pas de dwww, mais je me souviendrai des commandes de base telles que "moins". Ou, comme Takkat l'a dit, Nautilus / fileroller / etc.
belacqua

13

C’est peut-être trop tard pour répondre, mais j’ai trouvé la meilleure solution (facilité d’utilisation et exhaustivité)

Un système Linux typique possède une documentation dans de nombreux formats (pages de manuel, fichiers d’information, fichiers README, etc.). Avec dwww, il est possible d'accéder à tous ces éléments via la même interface, un navigateur WWW. Cela facilite l'utilisation de la documentation.

dwww est une interface Web pour toute la documentation en ligne sur un système Debian. Il crée des pages Web répertoriant tous les documents installés et convertit tous les documents au format HTML. La conversion est effectuée lorsque l'utilisateur demande le document.

  • Activez le module CGI, qui n’est plus activé par défaut dans Ubuntu / Apache récent:

    sudo a2enmod cgi
    sudo service apache2 restart
    
  • Ouvrez votre navigateur et pointez sur: http: // localhost / dwww /

  • Terminé!

Toutes vos infopages, manpages, /usr/share/docfichiers et description du paquet en un seul endroit! Votre site de documentation personnelle!


Utilisez cette méthode. C'est moins douloureux complet. Et vous pouvez rechercher des choses très rapidement car vous allez avoir un Google comme zone de recherche.
Apprenti curieux

1
Pour les futurs visiteurs, notez que cela nécessite l'activation de CGI et le redémarrage du service Apache: askubuntu.com/questions/581118/…
Sergiy Kolodyazhnyy le

7

gunzip file.gztentatives de Décompresser file.gzpour file, enlever file.gz. C'est pourquoi vous obtenez une erreur "Autorisation refusée", vous n'êtes pas autorisé à écrire /usr/share/doc. Pour obtenir le contenu d'un fichier, utilisez gunzip -c file.gzou zcat file.gz.

Vous pouvez lire des fichiers texte compressés au format gzip zless. Comme son nom l’indique, c’est juste less, mais pour les fichiers compressés au format gzip.

Exemple d'utilisation:

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

Le .gzsuffixe peut également être omis:

zless /usr/share/doc/bash/NEWS

Sur les systèmes récents, je n'ai pas eu à spécifier zless, car lesscela le gérera automatiquement.
belacqua

1
@belacqua C'est vrai, je fais la même chose de nos jours. Je suppose que cela a quelque chose à voir avec les variables d'environnement LESSOPENet LESSCLOSE.
Lekensteyn

5

Installez d'abord apache2

sudo apt-get install apache2 apache2-doc  

apache2-docest le cas particulier ici. Il vous permet de parcourir votre documentation /usr/share/doc/via votre navigateur Web. vient http://localhost/doc/.

Cela ne marche pas bien cependant. Vous devez modifier la configuration d'Apache pour le décompresser et afficher les fichiers * .gz sous forme de texte brut.

J'ai posté sur Stack Overflow pour trouver un moyen d'utiliser Apache pour afficher le contenu des documents * .gz du /usr/share/doc/répertoire. C'est ce qui a été affiché comme solution possible.

Voici ces instructions en bref. Il indique à Apache comment traiter les fichiers .gz pour les traiter en texte brut et les envoyer au navigateur en texte brut.

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

Allez au bas du fichier et trouvez la section avec Alias /doc/ "/usr/share/doc/" et changez-la pour ressembler à ceci.

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>   

Puis redémarrez Apache:

sudo apache2ctl restart   

1
Je ne suis pas trop sûr s'il s'agit d'une solution différente. Je viens d'ajouter AddEncoding x-gzip gz tgz AddType text/plain .gzà mon <Directory "/usr/share/doc/">entrée et je crois que la décompression est en réalité gérée du côté client.
Supprimer

@ Alain, non ce n'est pas une solution différente c'est essentiellement ce que je suis en train de faire.
Nelaaro

Bien que je pense que C’EST la meilleure solution (rien n’est imbattable en utilisant un navigateur pour parcourir les documents), c’est une surcharge de travail importante d’installer un serveur Web complet rien que pour ça. Je souhaite vraiment que Linux ( yelppeut-être?) Ait un moyen unique de lire la documentation.
MestreLion

Mise à jour: la solution a parfaitement fonctionné !!! mod "deflate" était déjà activé dès la sortie de la boîte, et j'ai changé la dernière ligne en sudo service apache2 restartpour des raisons de standardisation. Enfin, les lecteurs doivent être conscients de la fin du caractère "/": ce doit être localhost / doc / , localhost / doc ne fonctionnera pas.
MestreLion

-3

Votre ne devrait pas lire les fichiers .tex! Il est au format lisible par l’homme, mais il est conçu pour être traité avant le reanding. Vous pouvez utiliser l'outil tex2pdf pour le convertir en .pdf.


1
1) Je veux lire la source LaTeX. 2) La commande est pdflatex. 3) Cela est lié à la nécessité de gunzip le fichier avant de le lire.
ændrük le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.