Como os usuários comuns devem ler a documentação em / usr / share / doc?

43

Eu aprendi recentemente que há uma enorme pilha de documentação no /usr/share/doc.

Parece que grande parte dele foi compactada com gzip para que não seja acessada diretamente sem privilégios administrativos:

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

Embora uma solução para isso seja a cada usuário duplicar cada item em seu diretório inicial apenas para lê-lo, esse arranjo dificilmente parece propício à navegação regular.

Como as pessoas normais leem esta documentação?

Não estou inclinado a acreditar que se espera que o usuário típico instale e mantenha um servidor da Web apenas para ler a documentação de texto local.

ændrük
fonte
Só para esclarecer, você está interessado em lidar com documentos nos diretórios / usr / share / doc, ou apenas nos diretórios TeX / LaTeX?
Belacqua
OK, mais uma pergunta - você precisa processar arquivos .tex em dvi ou o que for, ou apenas olhar o código-fonte?
23411 belacqua
1
Estou perguntando sobre a documentação em /usr/share/docgeral e com especial atenção à observação de que grande parte dela é armazenada em um formato compactado. Se houver alguma documentação armazenada como LaTeX não datilografada, ainda não a encontrei. O exemplo particular que referenciei acima é um modelo LaTeX do pacote texlive-latex-extra-doc.
ændrük
1
askubuntu.com/questions/24072/… . Eu acho que essa é a melhor solução para todas as configurações e funciona depois.
nelaaro

Respostas:

6

A maioria foi dita e bem explicada pelo jgbelacqua para uso no terminal. Basta adicionar isso para pessoas que estão em um gerenciador de desktop:

Em uma área de trabalho gráfica (aqui GNOME), a maneira mais fácil de ler documentos /usr/share/docé (clique duas vezes) abrir os arquivos compactados com seu gerenciador de arquivos padrão (aqui File Roller), de onde você pode (clicar duas vezes) abrir e lê-los em seu editor padrão (aqui Gedit). Não são necessárias permissões de gravação, desde que você não descompacte os arquivos.

Takkat
fonte
Solução maravilhosa. É por isso que as pessoas usam coisas como Ubuntu, Gnome, etc. Esse tipo de tarefa é facilitado.
Belacqua
20

Há pelo menos dois problemas aqui:

  1. lendo os arquivos .gz sem dor
  2. permissões nos diretórios
  3. (opcional para arquivos tex)

Para o número 1 , existem vários aplicativos que lidam perfeitamente com os arquivos compactados em gzip. Um casal que você poderia usar é lesse vim.

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

viewé um apelido para vim -R, que apenas diz para abrir o arquivo somente leitura.

Antigamente, antes de instalar menos no meu sistema, eu usava gzcate canalizava a saída para outro utilitário. Aparentemente, ele só é chamado zcatagora no Ubuntu, mas você o usaria assim, por exemplo:

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

O zcat ainda está disponível, e usá-lo para canalizar o conteúdo compactado em algum lugar pode ser útil em alguns casos. (Para situações com arquivos .bz2, bzcatestá disponível.)

Na segunda posição , todos os arquivos que eu vi em / usr / share / doc estão em diretórios com outras permissões + rx, o que significa que todos os usuários podem pesquisar os diretórios (por exemplo, listar o conteúdo) e ler os arquivos. O que você não pode fazer (já que apenas o root possui permissão de gravação por padrão) é criar arquivos. Como você está tentando descompactar esse diretório, imagino que ele esteja lhe dando permissão negada porque você leu, mas não tem permissão de gravação por padrão.

Para o número 3, acho que você usa arquivos .tex mais do que eu. Mas aqui está uma maneira de lidar com eles sem copiar para casa ou para um arquivo temporário. Para isso, você criará um pipe nomeado, mas poderá reutilizá-lo para outras necessidades de processamento e tubulação tex. Deve ser assim:

  • zcat ou gzcat o texto
  • ... e canalize isso para o seu processador TeX
  • ... e envie isso para o Named Pipe (aqui, eu vou chamá-lo pipey)
  • ... e, em uma tela separada, pegue sua saída do pipey
  • ... e envie para um processo de exibição em dvi.

Obviamente, você pode alterar essas etapas se usar utilitários diferentes ou melhores que os aqui.

Meu exemplo usará o mkfifoutilitário para criar o pipe nomeado pipey,. O arquivo de destino a ser processado é /usr/share/doc/gdb/refcard.tex.gz. Você precisará de duas linhas de comando do shell disponíveis (via terminal, Alt + F2 ou, no entanto).

Você digitará o terminal um:

mkfifo pipey

Agora você tem um pipe nomeado persistente. Você pode usar ls -lpara espiar.

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

Observe que esse comando não retornará até que você faça algo com a saída que foi para o pipe nomeado.

Agora, no terminal dois, você digitará: tex pipey | xdvi

E funciona (bem, aqui de qualquer maneira). O processo pode ser refinado para obter resultados mais bonitos, mas se você estiver procurando por produtos rápidos e relativamente sem bagunça, essa é uma maneira de fazê-lo.

belacqua
fonte
1
Confira minha solução, acho que você ficará impressionado. askubuntu.com/questions/24072/…
nessaaro
1
+1 para os detalhes. Quanto a mim, como também mencionado por @nelaar, apenas adiciono algumas diretivas à <Directory "/usr/share/doc/">declaração de diretório do Apache (geralmente em /etc/apache2/sites-enabled/000-default) e acredito que a descompressão é tratada pelos próprios navegadores. ( AddEncoding x-gzip gz tgze AddType text/plain .gz)
Exclua
Embora tenha sido uma lição incrível e detalhada sobre muitos comandos úteis, essa dificilmente é uma boa solução para a expectativa de um usuário típico para ler a documentação do sistema. Para o Ubuntu, o yelp do Gnome ou o dwww do Debian é o método mais fácil e sem dor. Minha resposta descreve o último: askubuntu.com/a/52419/11015
MestreLion
1
@MestreLion Um 'usuário típico' no sentido mais realista não sabe que os arquivos estão lá. Eu acho que a solução mais fácil é a que eu mencionei primeiro - usando less. Isso tem a vantagem adicional de ser instalado por padrão em todos os sistemas * nix modernos. Para o usuário que conhece os arquivos e deseja consultá-los mais de duas vezes por ano, a instalação de algo como dwww parece uma ótima solução. Eu mesmo, em uma pitada, posso não me lembrar de dwww, mas vou lembrar de comandos básicos como 'less'. Ou, como Takkat disse, Nautilus / File Roller / etc ..
Belacqua
13

Talvez seja tarde demais para responder, mas eu encontrei a melhor solução (facilidade de uso e integridade)

Um sistema Linux típico possui documentação em vários formatos (páginas de manual, arquivos de informações, READMEs etc.). O dwww torna possível acessar todos eles pela mesma interface, um navegador WWW. Isso facilita o uso da documentação.

dwww é uma interface web para toda a documentação on-line em um sistema Debian. Ele cria algumas páginas da web que listam todos os documentos instalados e converte todos os documentos em HTML. A conversão é feita quando o usuário solicita o documento.

  • Ative o módulo CGI, que não é mais ativado por padrão no Ubuntu / Apache recente:

    sudo a2enmod cgi
    sudo service apache2 restart
    
  • Abra seu navegador e aponte para: http: // localhost / dwww /

  • Feito!

Todas as suas infopáginas, manpáginas, /usr/share/docarquivos e descrição do pacote em um único local! Seu site de documentação pessoal!

MestreLion
fonte
Use este método. É menos dor cheia. E você pode pesquisar as coisas muito rapidamente, pois terá uma caixa de pesquisa do Google.
Aprendiz curioso
1
Para futuros visitantes, observe que isso requer ativar o CGI e reiniciar o serviço Apache: askubuntu.com/questions/581118/…
Sergiy Kolodyazhnyy
7

gunzip file.gztentativas para descomprimir file.gza file, remoção file.gz. É por isso que você recebe um erro "Permissão negada", não tem permissão para escrever /usr/share/doc. Para obter o conteúdo de um arquivo, use gunzip -c file.gzou zcat file.gz.

A leitura de arquivos de texto compactados com gzip pode ser feita com zless. Como os nomes podem sugerir, é apenas less, mas para arquivos compactados com gzip.

Exemplo de uso:

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

O .gzsufixo também pode ser omitido:

zless /usr/share/doc/bash/NEWS
Lekensteyn
fonte
Em sistemas recentes, não precisei especificar zless, pois lessele lidará com isso automaticamente.
Belacqua
1
@belacqua É verdade que faço o mesmo hoje em dia. Eu acho que tem algo a ver com as variáveis ​​de ambiente LESSOPENe LESSCLOSE.
Lekensteyn
5

Primeiro instale o apache2

sudo apt-get install apache2 apache2-doc  

apache2-docé o caso especial aqui. Ele permite que você navegue na sua documentação /usr/share/doc/através do seu navegador da web. para lá http://localhost/doc/.

Isso não funciona direito embora. Você precisa alterar a configuração do Apache para descomprimir e mostrar os arquivos * .gz como texto sem formatação.

Postei no Stack Overflow para obter uma maneira de usar o Apache para mostrar o conteúdo dos documentos * .gz no /usr/share/doc/diretório. Foi isso que foi publicado como possível solução.

Aqui estão essas instruções em breve. Ele informa ao Apache como lidar com arquivos .gz para processá-los como texto sem formatação e enviá-los para o navegador como texto sem formatação.

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

Vá para a parte inferior do arquivo, encontre a seção com Alias /doc/ "/usr/share/doc/" e altere para que fique assim.

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>   

Em seguida, reinicie o Apache:

sudo apache2ctl restart   
nelaaro
fonte
1
Não tenho muita certeza se esta é uma solução diferente. Acabei de adicionar AddEncoding x-gzip gz tgz AddType text/plain .gzà minha <Directory "/usr/share/doc/">entrada e acredito que a descompressão é realmente tratada no lado do cliente.
Exclua
@ Alain, não, não é uma solução diferente, isso é essencialmente o que estou fazendo.
Nelaaro
Embora eu ache que essa seja a melhor solução (nada pode ser melhor do que usar um navegador para navegar nos documentos), é um grande exagero instalar um servidor Web inteiro apenas para isso. Eu realmente gostaria que o Linux ( yelptalvez?) Tivesse alguma maneira pronta de ler os documentos.
MestreLion
Atualização: solução funcionou perfeitamente !!! O mod "deflate" já estava ativado, e mudei a última linha sudo service apache2 restartpara uma questão de padronização. Por último, mas não menos importante, as leituras devem estar atentas ao final "/": deve ser localhost / doc / , localhost / doc não funcionará.
MestreLion
-3

Você não deve ler arquivos .tex! Ele está no formato humano e legível, mas foi projetado para ser processado antes da gravação. Você pode usar a ferramenta tex2pdf para convertê-lo em .pdf.

przemo_li
fonte
1
1) Eu quero ler a fonte LaTeX. 2) O comando é pdflatex. 3) Isso é tangencial ao problema de precisar compactar o arquivo antes de lê-lo.
ændrük