下载整个 Lubuntu/Ubuntu 手册页?

下载整个 Lubuntu/Ubuntu 手册页?

我知道这一页这几乎就是我想要的。不幸的是,它不是最新的。

我想做的是让Ubuntu 手册页以美观、易读的 PDF 格式呈现。我也可以接受其他格式,但为了简单和便携,我更喜欢索引 PDF 文件。

我也知道HT轨道它可以拉下 HTML 格式的页面。有几个原因我希望避免这样做 - 主要原因是这对他们的带宽和服务器来说并不是一件好事。

我搜索过 Ubuntu 网站,使用过外部搜索引擎,也搜索过这个网站。我确实找到了一个答案这让我回到了 HTTrack,这是一个潜在的解决方案,但不是理想的解决方案,并且如上所述,对他们的服务器或带宽不是很好。

更特别的是,能够专门获得鲁本图因为软件上存在一些差异,而且我是一个狂热的 Lubuntu 用户,但是,如果需要的话,我可以只使用 Ubuntu 手册页。

我想要这个的原因是因为,嗯,我想读完整个版本。它更像是一本书,而不是一个在需要时调用的文件。我希望能够在我只能使用手机、平板电脑或其他计算设备时阅读它,并且采用比手册页通常使用的更易于阅读的格式。


编辑:

特别针对 Ubuntu(或 Lubuntu)版本 15.10,如标签和标题中所述。此外,是的 - 所有手册页(即使是冗余和简短的)。我知道这有很多信息,这也是我试图避免使用 HTTrack 的原因之一。

答案1

更特别的是能够专门为 Lubuntu 获得它,因为软件上有一些差异,而且我是 Lubuntu 的狂热用户,但是,如果需要的话,我可以只使用 Ubuntu 手册页。

Lubuntu 和 Ubuntu 的手册页没有区别。成为公认的版本的原因之一是使用与 Ubuntu 相同的存储库,因此软件是相同的,只是起点不同。

还,http://manpages.ubuntu.com存在一个错误,即无法区分来自不同软件包的同名手册页 - 将显示最后读取的软件包的手册页。

不要攻击手册页站点,而要攻击存储库。

获取手册页列表,例如,binary-amd64体系结构(应该与其他的相同):

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

当然,这将消耗大量的带宽——存储库服务器已经习惯了,问题是:你的网络能胜任这项任务吗?

答案2

对于这种方法,你需要html2psps2pdf以及一个可以运行的 LaTeX 安装。你应该能够使用以下方式安装所有必需的软件:

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

安装所需的软件包后,运行以下命令将手册页获取为 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

你现在应该在运行命令的目录中有一个(巨大的)pdf 文件集合。顺便说一下,确保在新的空目录中运行该命令

现在,要将它们合并为一个索引 PDF 文件,您需要 LaTeX,并且需要重命名它们,因为 LaTeX 不喜欢.文件名:

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

结果是所有手册页的索引 PDF 文件(我只使用了 10 个进行测试):

在此处输入图片描述

答案3

根据聊天讨论更新

你想得到全部PDF(或 HTML)格式的手册页。据我所知,没有哪个系统,甚至任何发行版,提供完整的所有手册页供您查看。那将是百万页面,我猜想需要大量的存储空间,而这些空间实际上存储起来毫无用处。这也会给手册页服务器带来沉重的负担,因为手册页已经以网络可查看的格式存在。如果你真的想要实现这一点,您需要自己转换手册页并下载包含手册页的存储库中的所有软件包。(这也同样邪恶)

不必阅读所有的手册页,我也不知道你为什么要那么多页。(想象一下七十万卷的百科全书,这实际上就是你想要的)


此部分是在聊天之前澄清对所问问题的误解

我认为并不是每件事都有一个“PDF”,但你可以为你想要使用的手册页制作 PDF。

有一个网站包含 Ubuntu 存储库中不同软件包的不同 Ubuntu 版本的手册页。 假设有问题的手册页来自存储库包,您可以在那里打开手册页,然后将其打印到文件中(通过打印页面或其他方式),然后将其保存为 PDF,然后可以在其他地方使用。

缺点:每次只能得到一个手册页 - 您必须花时间才能获得所需的手册页。

(注:PDF全部手册页将是一个艰巨的项目,所以我怀疑您是否会找到您想要的每个手册页的 PDF......这通常由上游完成,而不是 Ubuntu。

相关内容