Wie sollen typische Benutzer die Dokumentation in / usr / share / doc lesen?

43

Ich habe kürzlich erfahren, dass es einen riesigen Stapel an Dokumentation gibt /usr/share/doc.

Es scheint, als ob ein Großteil davon gzippt ist, so dass es ohne Administratorrechte nicht direkt zugänglich ist:

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

Eine Lösung hierfür wäre, dass jeder Benutzer jedes Element in seinem Ausgangsverzeichnis dupliziert, um es nur zu lesen. Diese Anordnung scheint jedoch dem regelmäßigen Durchsuchen kaum förderlich zu sein.

Wie lesen normale Leute diese Dokumentation?

Ich bin nicht geneigt zu glauben, dass von einem typischen Benutzer erwartet wird, dass er einen Webserver installiert und wartet, nur um die lokale Textdokumentation zu lesen.

ændrük
quelle
Sind Sie zur Verdeutlichung daran interessiert, mit Dokumenten in den Verzeichnissen / usr / share / doc oder nur mit TeX / LaTeX umzugehen?
Belacqua
OK, noch eine Frage - müssen Sie .tex-Dateien in dvi oder was auch immer verarbeiten oder sich nur den Quellcode ansehen?
Belacqua
1
Ich frage nach der Dokumentation im /usr/share/docAllgemeinen und mit besonderem Augenmerk darauf, dass ein Großteil davon in einem komprimierten Format gespeichert ist. Sollte es eine Dokumentation geben, die als nicht gesetztes LaTeX gespeichert ist, muss ich sie erst noch finden. Das Beispiel, auf das ich oben verwiesen habe, ist eine LaTeX-Vorlage aus dem Paket texlive-latex-extra-doc.
ændrük
1
askubuntu.com/questions/24072/… . Ich denke, dies ist die beste Lösung für alle Setups und es funktioniert danach.
Nelaaro

Antworten:

6

Das meiste wurde von jgbelacqua für den Einsatz im Terminal gesagt und sehr schön erklärt . Fügen Sie dies einfach für Personen hinzu, die sich in einem Desktop-Manager befinden:

Von einem grafischen Desktop (hier GNOME) aus können Sie Dokumente am einfachsten lesen, /usr/share/docindem Sie mit Ihrem Standardarchivmanager (hier File Roller) auf die komprimierten Dateien (Doppelklick) klicken, um sie zu öffnen und einzulesen Ihr Standardeditor (hier Gedit). Es sind keine Schreibrechte erforderlich, solange Sie die Dateien nicht entpacken.

Takkat
quelle
Wunderbare Lösung. Dies ist in der Tat der Grund, warum Leute Dinge wie Ubuntu, Gnome usw. benutzen. Diese Art von Aufgabe wird einfacher.
Belacqua
20

Hier gibt es mindestens zwei Probleme:

  1. Lesen der .gz-Dateien schmerzlos
  2. Berechtigungen für die Verzeichnisse
  3. (optional für tex dateien)

Für die Nummer 1 gibt es eine Reihe von Anwendungen, die die komprimierten Dateien nahtlos verarbeiten. Ein Paar, das Sie gebrauchen könnten, sind lessund vim.

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

viewist ein Alias ​​für vim -R, der nur sagt, dass die Datei schreibgeschützt geöffnet werden soll.

Früher, bevor less auf meinem System installiert war, verwendete ich gzcatdie Ausgabe und leitete sie an ein anderes Dienstprogramm weiter. Anscheinend heißt es erst zcatjetzt auf Ubuntu, aber du würdest es so benutzen, zB:

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

zcat ist weiterhin verfügbar. In einigen Fällen kann es hilfreich sein, komprimierte Inhalte an einen anderen Ort zu leiten. (Für Situationen mit .bz2-Dateien bzcatist verfügbar.)

Für # 2 befinden sich alle Dateien, die ich unter / usr / share / doc gesehen habe, in Verzeichnissen mit anderen + rx-Berechtigungen, was bedeutet, dass alle Benutzer die Verzeichnisse durchsuchen (z. B. Inhalte auflisten) und Dateien darin lesen können. Was Sie nicht tun können (da standardmäßig nur root über Schreibrechte verfügt), ist das Erstellen von Dateien. Da Sie versuchen, in dieses Verzeichnis zu entpacken, wird Ihnen vermutlich die Berechtigung verweigert, da Sie standardmäßig Lese-, aber keine Schreibberechtigungen haben.

Bei # 3 verwenden Sie vermutlich mehr .tex-Dateien als ich. Aber hier ist eine Möglichkeit, mit ihnen umzugehen, ohne sie nach Hause oder in eine temporäre Datei zu kopieren. Zu diesem Zweck erstellen Sie eine Named Pipe, die Sie jedoch für Ihre anderen Tex-Piping- und Verarbeitungsanforderungen wiederverwenden können. Es sollte so gehen:

  • zcat oder gzcat den text
  • ... und leiten Sie das an Ihren TeX-Prozessor weiter
  • ... und schicke das zu deiner Named Pipe (hier rufe ich ihn an pipey)
  • ... und greifen Sie dann in einem separaten Bildschirm auf Ihre Ausgabe von pipey zu
  • ... und senden Sie das an einen DVI-Anzeigeprozess.

Sie können diese Schritte natürlich ändern, wenn Sie andere oder bessere Dienstprogramme als die hier beschriebenen verwenden.

In meinem Beispiel wird das mkfifoDienstprogramm zum Erstellen der Named Pipe verwendet pipey. Die zu verarbeitende Zieldatei ist /usr/share/doc/gdb/refcard.tex.gz. Sie benötigen zwei Shell-Befehlszeilen (über Terminal, Alt + F2 oder aber).

Sie geben Terminal eins ein:

mkfifo pipey

Sie haben jetzt eine permanente Named Pipe. Hier können Sie ls -leinen Blick darauf werfen.

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

Beachten Sie, dass dieser Befehl erst zurückgegeben wird, wenn Sie etwas mit der Ausgabe an der Named Pipe tun.

Jetzt geben Sie in Terminal zwei Folgendes ein: tex pipey | xdvi

Und es funktioniert (naja, hier sowieso). Der Prozess kann für eine schönere Ausgabe verfeinert werden. Wenn Sie jedoch schnell und relativ unkompliziert arbeiten möchten, können Sie dies auf diese Weise tun.

belacqua
quelle
1
Schauen Sie sich meine Lösung an, ich denke, Sie werden beeindruckt sein. askubuntu.com/questions/24072/…
nelaaro
1
+1 für das Detail. Wie auch von @nelaar erwähnt, füge ich nur ein paar Direktiven zur Apache- <Directory "/usr/share/doc/">Verzeichnisdeklaration hinzu (normalerweise in /etc/apache2/sites-enabled/000-default), und ich glaube, dass die Dekomprimierung von den Browsern selbst vorgenommen wird. ( AddEncoding x-gzip gz tgzund AddType text/plain .gz).
Löschen Sie den
Obwohl dies eine erstaunliche und detaillierte Lektion für viele nützliche Befehle war, ist dies kaum eine gute Lösung dafür, wie ein typischer Benutzer die Systemdokumentation lesen soll. Für Ubuntu, Gnome Jaulen oder Debians dwww ist die am meisten schmerzfrei, einfache Methode. Meine Antwort beschreibt letzteres: askubuntu.com/a/52419/11015
MestreLion
1
@MestreLion Ein "typischer Benutzer" im realistischsten Sinne weiß nicht, dass die Dateien überhaupt vorhanden sind. Ich denke, die einfachste Lösung ist die, die ich zuerst erwähnt habe - mit less. Dies hat den zusätzlichen Vorteil, dass es standardmäßig auf jedem modernen * nix-System installiert wird. Für den Benutzer, der weiß, dass die Dateien vorhanden sind und mehr als ein paar Mal im Jahr darauf verweisen möchte, klingt die Installation von so etwas wie dwww nach einer großartigen Lösung. Zur Not erinnere ich mich vielleicht nicht an dwww, aber ich werde mich an grundlegende Befehle wie 'less' erinnern. Oder, wie Takkat sagte, Nautilus / Fileroller / etc ..
Belacqua
13

Vielleicht ist das zu spät, um zu antworten, aber ich habe die beste Lösung gefunden (sowohl einfache Bedienung als auch Vollständigkeit)

  • Installieren Sie dwww Installieren Sie dwww

Ein typisches Linux-System verfügt über Dokumentation in vielen Formaten (Handbuchseiten, Info-Dateien, READMEs usw.). dwww ermöglicht den Zugriff auf alle diese über die gleiche Oberfläche, einen WWW-Browser. Dies erleichtert die Verwendung der Dokumentation.

dwww ist ein Webinterface für alle Online-Dokumentationen auf einem Debian-System. Es werden einige Webseiten erstellt, auf denen alle installierten Dokumente aufgelistet sind, und alle Dokumente werden in HTML konvertiert. Die Konvertierung erfolgt, wenn der Benutzer das Dokument anfordert.

  • Aktivieren Sie das CGI-Modul, das in den letzten Ubuntu / Apache-Versionen nicht mehr standardmäßig aktiviert ist:

    sudo a2enmod cgi
    sudo service apache2 restart
    
  • Öffnen Sie Ihren Browser und zeigen Sie auf: http: // localhost / dwww /

  • Getan!

Alle Ihre infoSeiten, manSeiten, /usr/share/docDateien und Paketbeschreibungen an einem Ort! Ihre persönliche Dokumentationswebsite!

MestreLion
quelle
Verwenden Sie diese Methode. Es ist weniger schmerzvoll. Und Sie können sehr schnell nach Dingen suchen, da Sie ein Google-ähnliches Suchfeld haben.
Neugieriger Lehrling
1
Beachten Sie für zukünftige Besucher, dass dazu CGI aktiviert und der Apache-Dienst neu gestartet werden muss
Sergiy Kolodyazhnyy
7

gunzip file.gzVersuche zum Dekomprimieren file.gzauf file, das Entfernen file.gz. Aus diesem Grund erhalten Sie die Fehlermeldung "Erlaubnis verweigert", Sie dürfen nicht schreiben /usr/share/doc. Verwenden Sie gunzip -c file.gzoder, um den Inhalt einer Datei abzurufen zcat file.gz.

Das Lesen von gzip-komprimierten Textdateien kann mit erfolgen zless. Wie der Name vermuten lässt, handelt es sich nur lessum gzip-komprimierte Dateien.

Anwendungsbeispiel:

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

Das .gzSuffix kann auch weggelassen werden:

zless /usr/share/doc/bash/NEWS
Lekensteyn
quelle
Auf neueren Systemen musste ich nicht angeben zless, wie lessdas automatisch gehandhabt wird.
Belacqua
1
@belacqua Stimmt, ich mache heutzutage dasselbe. Ich denke, es hat etwas mit den Umgebungsvariablen LESSOPENund zu tun LESSCLOSE.
Lekensteyn
5

Installieren Sie zuerst apache2

sudo apt-get install apache2 apache2-doc  

apache2-docist der Sonderfall hier. Sie können Ihre Dokumentation /usr/share/doc/über Ihren Webbrowser durchsuchen . her http://localhost/doc/.

Das klappt aber nicht richtig. Sie müssen die Konfiguration von Apache ändern, damit die * .gz-Dateien dekomprimiert und als einfacher Text angezeigt werden.

Ich habe auf Stack Overflow gepostet , um eine Möglichkeit zu finden, mit Apache den Inhalt von * .gz-Dokumenten im /usr/share/doc/Verzeichnis anzuzeigen . Dies ist, was als mögliche Lösung gebucht wurde.

Hier sind diese Anweisungen in Kürze. Hier erfahren Sie, wie Apache mit .gz-Dateien umgeht, um sie als Nur-Text-Dateien zu verarbeiten und als Nur-Text-Dateien an den Browser zu senden.

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

Gehen Sie zum Ende der Datei und suchen Sie den Abschnitt mit Alias /doc/ "/usr/share/doc/" und ändern Sie ihn so, dass er so aussieht.

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>   

Dann starte Apache neu:

sudo apache2ctl restart   
Nelaaro
quelle
1
Ich bin mir nicht sicher, ob dies eine andere Lösung ist. Ich habe AddEncoding x-gzip gz tgz AddType text/plain .gzmeinen <Directory "/usr/share/doc/">Eintrag gerade ergänzt und glaube, dass die Dekomprimierung tatsächlich auf der Clientseite erfolgt.
Löschen Sie den
@Alain, nein es ist keine andere Lösung das ist im Wesentlichen was ich tue.
Nelaaro
Während ich denke, dass dies die beste Lösung ist (nichts kann es übertreffen, einen Browser zum Durchsuchen der Dokumente zu verwenden), ist es ein großer Overkill, einen ganzen Webserver nur dafür zu installieren. Ich wünschte wirklich , Linux ( yelpvielleicht?) Hatte jeden Ausweg der Box die Dokumentation zu lesen.
MestreLion
Update: Lösung hat einwandfrei funktioniert !!! mod "deflate" war bereits ab Werk aktiviert und ich habe die letzte Zeile sudo service apache2 restartaus Gründen der Standardisierung auf geändert . Last but not least, sein Reades bewusst Hinter "/": es muss sein localhost / doc / , localhost / doc wird nicht funktionieren.
MestreLion
-3

Sie sollten keine .tex-Dateien lesen! Es ist in einem gut lesbaren Format, aber es ist so konzipiert, dass es vor dem erneuten Lesen verarbeitet wird. Sie können das tex2pdf-Tool verwenden, um es in .pdf zu konvertieren.

przemo_li
quelle
1
1) Ich möchte die LaTeX-Quelle lesen. 2) Der Befehl lautet pdflatex. 3) Dies ist tangential zu dem Problem, dass die Datei vor dem Lesen gezippt werden muss.
ændrük