¿Cómo se espera que los usuarios típicos lean la documentación en / usr / share / doc?

43

Hace poco me enteré de que hay una gran cantidad de documentación en /usr/share/doc.

Parece que gran parte está comprimido para que no sea accesible directamente sin privilegios administrativos:

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

Si bien una solución para esto sería que cada usuario duplique cada elemento en su directorio de inicio solo para leerlo, esta disposición difícilmente parece conducir a una navegación regular.

¿Cómo leen esta documentación las personas normales?

No me inclino a creer que se espera que el usuario típico instale y mantenga un servidor web solo para leer la documentación de texto local.

ændrük
fuente
Para ser claros, ¿está interesado en tratar con cualquier documento en los directorios / usr / share / doc, o solo en los de TeX / LaTeX?
belacqua 01 de
De acuerdo, una pregunta más: ¿necesita procesar archivos .tex en dvi o lo que sea, o simplemente mirar el código fuente?
belacqua 01 de
1
Estoy preguntando sobre la documentación en /usr/share/docgeneral y con especial atención a la observación de que gran parte está almacenada en un formato comprimido. Si resulta que hay alguna documentación almacenada como LaTeX sin tipografía, todavía tengo que encontrarla. El ejemplo particular al que hice referencia anteriormente es una plantilla LaTeX del paquete texlive-latex-extra-doc.
ændrük
1
askubuntu.com/questions/24072/… . Creo que esta es la mejor solución para todas las configuraciones y funciona allí después.
nelaaro

Respuestas:

6

La mayoría se ha dicho y muy bien explicado por jgbelacqua para su uso en la terminal. Solo agregue esto para las personas que están en un administrador de escritorio:

Desde un escritorio gráfico (aquí GNOME), la forma más fácil de leer documentos /usr/share/doces (doble) hacer clic en abrir los archivos comprimidos con su administrador de archivos estándar (aquí File Roller) desde donde puede (doble) hacer clic en abrir y leerlos su editor estándar (aquí Gedit). No se necesitan permisos de escritura siempre que no descomprima los archivos.

Takkat
fuente
Maravillosa solución Esta es la razón por la cual la gente usa cosas como Ubuntu, Gnome, etc. Este tipo de tarea se hace más fácil.
belacqua
20

Aquí hay al menos dos problemas:

  1. leer los archivos .gz sin dolor
  2. permisos en los directorios
  3. (opcional para archivos tex)

Para el n. ° 1 , hay una serie de aplicaciones que harán frente a los archivos comprimidos sin problemas. Una pareja que podrías usar son lessy vim.

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

viewes un alias para vim -R, que solo dice abrir el archivo de solo lectura.

En los viejos tiempos, antes de que se instalara menos en mi sistema, usaba gzcaty canalizaba la salida a otra utilidad. Aparentemente, solo se llama zcatahora en Ubuntu, pero lo usarías así, por ejemplo:

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

zcat todavía está disponible, y usarlo para canalizar contenido comprimido en algún lugar puede ser útil en algunos casos. (Para situaciones con archivos .bz2, bzcatestá disponible).

Para el n. ° 2 , todos los archivos que he visto en / usr / share / doc están en directorios con otros permisos + rx, lo que significa que todos los usuarios pueden buscar en los directorios (por ejemplo, enumerar contenidos) y leer archivos en su interior. Lo que no puede hacer (ya que solo la raíz tiene permiso de escritura por defecto), es crear archivos. Debido a que está intentando descomprimir en ese directorio, imagino que le está dando permiso denegado porque tiene permisos de lectura pero no de escritura por defecto.

Para el n. ° 3, supongo que usa archivos .tex más que yo. Pero aquí hay una forma de lidiar con ellos sin copiarlos a casa o un archivo temporal. Para esto, va a crear una tubería con nombre, pero puede reutilizarla para sus otras necesidades de procesamiento y tuberías de texto. Debería ir así:

  • zcat o gzcat el texto
  • ... y canaliza eso a tu procesador TeX
  • ... y envíalo a tu canalización con nombre (aquí, lo llamaré pipey)
  • ... y luego en una pantalla separada, tome su salida de pipey
  • ... y envíelo a un proceso de visualización de dvi.

Obviamente, puede alterar estos pasos si utiliza utilidades diferentes o mejores que las de aquí.

Mi ejemplo utilizará la mkfifoutilidad para crear la canalización con nombre, pipey. El archivo de destino para procesar es /usr/share/doc/gdb/refcard.tex.gz. Necesitará dos líneas de comando de shell disponibles (a través de la terminal, Alt + F2, o sin embargo).

Escribirás la terminal uno:

mkfifo pipey

Ahora tiene una canalización con nombre persistente. Puedes usar ls -lpara mirarlo.

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

Tenga en cuenta que este comando no volverá hasta que haga algo con la salida que se ha ido a la tubería con nombre.

Ahora, en la terminal dos, escribirás: tex pipey | xdvi

Y funciona (bueno, aquí de todos modos). El proceso se puede refinar para obtener una salida más bonita, pero si está buscando una solución rápida y relativamente libre de problemas, esa es una forma de hacerlo.

belacqua
fuente
1
Mira mi solución, creo que quedarás impresionado. askubuntu.com/questions/24072/…
nelaaro
1
+1 para el detalle. En cuanto a mí, como también mencionó @nelaar, solo agrego algunas directivas a la <Directory "/usr/share/doc/">declaración del directorio de Apache (generalmente en /etc/apache2/sites-enabled/000-default) y creo que la descompresión es manejada por los propios navegadores. ( AddEncoding x-gzip gz tgzy AddType text/plain .gz)
Eliminar
Aunque esta fue una lección sorprendente y detallada sobre muchos comandos útiles, esta no es una buena solución para cómo se espera que un usuario típico lea la documentación del sistema. Para Ubuntu, el yelp de Gnome o el dwww de Debian es el método más sencillo y sencillo. Mi respuesta describe lo último: askubuntu.com/a/52419/11015
MestreLion
1
@MestreLion Un 'usuario típico' en el sentido más realista no sabe que los archivos están ahí. Creo que la solución más fácil es la que mencioné primero: usar less. Esto tiene la ventaja adicional de instalarse por defecto en todos los sistemas modernos * nix. Para el usuario que sabe que los archivos están allí y quiere consultarlos más de un par de veces al año, instalar algo como dwww suena como una gran solución. Yo mismo, en un apuro, puede que no recuerde dwww, pero recordaré comandos básicos como 'menos'. O, como dijo Takkat, Nautilus / fileroller / etc.
belacqua
13

Tal vez sea demasiado tarde para responder, pero he encontrado la mejor solución (tanto facilidad de uso como integridad)

Un sistema Linux típico tiene documentación en muchos formatos (páginas de manual, archivos de información, README, etc.). dwww permite acceder a todos estos a través de la misma interfaz, un navegador WWW. Esto facilita el uso de la documentación.

dwww es una interfaz web para toda la documentación en línea en un sistema Debian. Crea algunas páginas web que enumeran todos los documentos instalados y convierte todos los documentos a HTML. La conversión se realiza cuando el usuario solicita el documento.

  • Habilite el módulo CGI, que ya no está habilitado de manera predeterminada en Ubuntu / Apache reciente:

    sudo a2enmod cgi
    sudo service apache2 restart
    
  • Abra su navegador y apunte a: http: // localhost / dwww /

  • ¡Hecho!

¡Todas sus infopáginas, manpáginas, /usr/share/docarchivos y descripción del paquete en un solo lugar! ¡Su sitio web de documentación personal!

MestreLion
fuente
Usa este método. Es menos dolor lleno. Y puede buscar cosas muy rápido ya que tendrá un cuadro de búsqueda similar a google.
Aprendiz curioso
1
Para futuros visitantes, tenga en cuenta que esto requiere habilitar CGI y reiniciar el servicio Apache: askubuntu.com/questions/581118/…
Sergiy Kolodyazhnyy
7

gunzip file.gzintentos para descomprimir file.gza file, la eliminación file.gz. Es por eso que obtiene un error de "Permiso denegado", no puede escribir /usr/share/doc. Para obtener el contenido de un archivo, use gunzip -c file.gzo zcat file.gz.

Se puede leer archivos de texto comprimidos con gzip zless. Como su nombre lo sugiere, es justo less, pero para archivos comprimidos con gzip.

Ejemplo de uso:

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

El .gzsufijo también se puede omitir:

zless /usr/share/doc/bash/NEWS
Lekensteyn
fuente
En sistemas recientes, no he tenido que especificar zless, ya que lesslo manejará automáticamente.
belacqua
1
@belacqua Cierto, yo hago lo mismo hoy en día. Creo que tiene algo que ver con las LESSOPENy LESSCLOSEvariables de entorno.
Lekensteyn
5

Primero instala apache2

sudo apt-get install apache2 apache2-doc  

apache2-docEs el caso especial aquí. Le permite navegar por su documentación a /usr/share/doc/través de su navegador web. fro http://localhost/doc/.

Sin embargo, esto no funciona bien. Debe cambiar la configuración de Apache para que se descomprima y muestre los archivos * .gz como texto sin formato.

Publiqué en Stack Overflow para obtener una forma de usar Apache para mostrar el contenido de los documentos * .gz en el /usr/share/doc/directorio. Esto es lo que se publicó como posible solución.

Aquí están esas instrucciones breves. Le dice a Apache cómo manejar archivos .gz para procesarlos como texto sin formato y enviarlos al navegador como texto sin formato.

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

Vaya al final del archivo y busque la sección con Alias /doc/ "/usr/share/doc/" y cámbiela para que se vea así.

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>   

Luego reinicie Apache:

sudo apache2ctl restart   
nelaaro
fuente
1
No estoy muy seguro de si esta es una solución diferente. Acabo de agregar AddEncoding x-gzip gz tgz AddType text/plain .gza mi <Directory "/usr/share/doc/">entrada y creo que la descompresión en realidad se maneja en el lado del cliente.
Eliminar
@Alain, no, no es una solución diferente, esto es esencialmente lo que estoy haciendo.
nelaaro
Si bien creo que esta es la mejor solución (nada puede superar el uso de un navegador para navegar por los documentos), es una gran exageración instalar un servidor web completo solo por eso. Realmente desearía que Linux ( yelp¿tal vez?) Tuviera alguna forma inmediata de leer los documentos.
MestreLion
Actualización: la solución funcionó a la perfección !!! mod "deflate" ya estaba habilitado de fábrica, y cambié la última línea sudo service apache2 restartpor el bien de la estandarización. Por último, pero no por ello menos importante, tenga en cuenta el "/" final: debe ser localhost / doc / , localhost / doc no funcionará.
MestreLion
-3

¡No deberías leer archivos .tex! Está en un formato legible, pero está diseñado para ser procesado antes de responder. Puede usar la herramienta tex2pdf para convertirlo a .pdf.

przemo_li
fuente
1
1) Quiero leer la fuente de LaTeX. 2) El comando es pdflatex. 3) Esto es tangencial a la cuestión de la necesidad de comprimir el archivo antes de leerlo.
ændrük