我知道这一页这几乎就是我想要的。不幸的是,它不是最新的。
我想做的是让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
对于这种方法,你需要html2ps
,ps2pdf
以及一个可以运行的 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。