Fazendo o download da totalidade das páginas de manual do Lubuntu / Ubuntu?

3

Eu sei sobre esta página , que é quase exatamente o que eu quero. Infelizmente, não é atual.

O que eu gostaria de fazer é ter a totalidade das páginas de manual do Ubuntu um formato PDF agradável e de fácil leitura. Aceito outros formatos, mas prefiro um arquivo PDF indexado para simplicidade e portabilidade.

Também estou ciente do HTTrack , que pode abrir as páginas no formato HTML. Existem algumas razões que eu gostaria de evitar isso - a principal razão é que não é realmente uma coisa boa para fazer a sua largura de banda e servidores.

Eu pesquisei no site do Ubuntu, usei um mecanismo de pesquisa externo e procurei neste site. Eu encontrei uma resposta que me levou de volta ao HTTrack, que é uma solução potencial, mas não a solução ideal e, como mencionado, não é muito legal para seus servidores ou largura de banda.

Ainda mais especial seria conseguir isso especificamente para Lubuntu porque existem algumas diferenças no software e sou um ávido usuário do Lubuntu, mas, se necessário, posso fazê-lo apenas com as páginas de manual do Ubuntu.

A razão que eu quero isso é porque, bem, eu gostaria de lê-lo - na sua totalidade. Mais como um livro do que como um arquivo que é chamado quando necessário. Eu quero ser capaz de lê-lo enquanto eu só tiver acesso ao meu telefone, tablet ou outro dispositivo de computação e em um formato de leitura mais fácil do que as páginas de manual normalmente usam.

EDITAR:

Especificamente para o Ubuntu (ou Lubuntu) versão 15.10, conforme indicado nas tags e no título. Além disso, sim - todas as páginas do manual (mesmo redundantes e curtas). Estou ciente de que esta é uma grande quantidade de informações, que é uma das razões pelas quais estou tentando evitar o uso do HTTrack.

    
por KGIII 18.11.2015 / 15:26

3 respostas

3

  Ainda mais especial seria conseguir isso especificamente para o Lubuntu porque existem algumas diferenças no software e eu sou um ávido usuário do Lubuntu, mas, se necessário, posso fazer isso apenas com as páginas de manual do Ubuntu.

Não há diferenças em manpages entre o Lubuntu e o Ubuntu. Um dos pontos de se tornar um sabor reconhecido é usar os mesmos repositórios do Ubuntu, então o software é idêntico, são apenas os pontos de partida que diferem.

Além disso, o link sofre de um bug em que manpages de nomes diferentes de diferentes pacotes não são distinguidos - as páginas de manual do último pacote lido mostram para cima.

Em vez de martelar o site manpages, martele os repositórios.

Obtenha uma lista de páginas de trabalho, por exemplo, a arquitetura binary-amd64 (deve ser idêntica às outras):

mkdir temp
cd temp
curl http://archive.ubuntu.com/ubuntu/dists/wily/Contents-amd64.gz | 
  gunzip | 
  grep 'share/man' |
  sed 's/.* //;s/,/\n/g' | 
  awk -F/ '{print $NF}' | 
  sort -u > packages.txt
while IFS= read -r package
do
    apt-get download "$package"
    dpkg-deb --fsys-tarfile "$package"*.deb | tar x ./usr/share/man
    mkdir "$package"-manpages
    find ./usr/share/man/man* -type f -exec mv -t "$package"-manpages {} +
    rm "$package"*.deb
    for page in "$package"-manpages/*
    do
        man -t "$page" | ps2pdf - > "$page".pdf
    done
done < packages.txt

Se for claro, isso consumirá uma quantidade insana de largura de banda - os servidores de repositório estão acostumados com isso, a pergunta é: a sua sua rede atende a tarefa?

    
por muru 18.11.2015 / 16:16
2

Para essa abordagem, você precisará de html2ps , ps2pdf e uma instalação em funcionamento do LaTeX. Você deve conseguir instalar todos os requisitos com

sudo apt-get install html2ps ghostscript texlive-latex-base

Uma vez que você tenha instalado os pacotes requeridos, execute isto para obter as man pages como arquivos pdf:

curl http://manpages.ubuntu.com/manpages/wily/en/man1/ | 
    grep -oP 'href="\K.*?\.1\.html' | 
        while read man; do 
            wget http://manpages.ubuntu.com/manpages/wily/en/man1/"$man" && 
                html2ps "$man"  | ps2pdf - "${man/.html/.pdf}"
        done

Agora você deve ter uma (enorme) coleção de arquivos pdf no diretório em que você executou o comando. A propósito, certifique-se de executar o comando em um novo diretório vazio .

Agora, para combiná-los em um único arquivo PDF indexado, você precisará do LaTeX e precisará renomeá-los, pois o LaTeX não gosta de . nos nomes dos arquivos:

rename 's/\./-/g;s/-pdf/\.pdf/' *pdf
cat <<EoF > man1.tex   
\documentclass{article}
\usepackage[colorlinks=true,linkcolor=blue]{hyperref}
\usepackage{pdfpages}
\begin{document}
\tableofcontents
\newpage
EoF
for f in *.pdf; do
    file="${f/.pdf/}"
    printf '\section{%s}\n\includepdf[pages=-]{%s}\n\n' "$file" "$f" >> man1.tex
done
echo "\end{document}" >> man1.tex
pdflatex man1.tex && pdflatex man1.tex

O resultado é um arquivo PDF indexado de todas as páginas man (eu usei apenas 10 para testes):

    
por terdon 18.11.2015 / 17:45
0
  

Atualizado com base na discussão do Chat

Você deseja obter todas as páginas de manual em formato PDF (ou HTML). Nenhum sistema que conheço, nem qualquer Distro, fornece um conjunto completo de todas as páginas para sua visualização. Isso seria milhões de páginas, e meu palpite seria muito e muito espaço de armazenamento sendo necessário, do qual seria inútil armazenar na verdade. Isso também estaria martelando o servidor de manpages onde as páginas de manual já existem no formato visualizável na web. Se você realmente quiser alcançar isso, você mesmo converterá as páginas de manual e baixará todos os pacotes nos repositórios que contêm páginas de manual. (Isso também é igualmente mal)

Você não precisa ler todas as páginas de manual , nem sei por que você deseja tantas páginas. (Imagine uma enciclopédia de setecentos mil volumes, que é efetivamente o que você está pedindo)

  

Esta seção foi antes do bate-papo esclarecer equívocos sobre o que estava sendo perguntado

Eu não acho que exista um 'PDF' para cada coisa, mas você pode criar PDFs para manpages que deseja usar.

Há um site que contém manpages para diferentes versões do Ubuntu para diferentes pacotes nos repositórios do Ubuntu. Repositório pacote, você pode abrir a página do manual lá e, em seguida, imprimi-los em um arquivo (através de imprimir a página ou de outra forma) e salvá-los como um PDF, que você pode usar em outro lugar.

A desvantagem: é uma página por vez - você terá que gastar tempo para conseguir as que deseja.

  

(Nota: para PDF todos os manpages seriam um projeto infernal, então duvido que você encontre PDFs para cada manpage que você quer ... que normalmente seria feito pelo upstream, não pelo Ubuntu).

    
por Thomas Ward 18.11.2015 / 15:31