普通用户应该如何阅读/ usr / share / doc中的文档?


43

我最近了解到中有大量的文档/usr/share/doc

似乎其中很多东西都被压缩了,因此没有管理权限就无法直接访问它:

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

一种解决方案是让每个用户都复制其主目录中的每个项目以读取它,但这种安排似乎不利于常规浏览。

普通人如何阅读本文档?

我不倾向于相信一般用户将安装和维护Web服务器只是为了阅读本地文本文档。


明确一点,您是否有兴趣处理/ usr / share / doc目录中的任何文档,或者仅处理TeX / LaTeX的文档?
belacqua

好,还有一个问题-您是否需要将.tex文件处理为dvi或其他格式,还是只看源代码?
belacqua

1
我询问的/usr/share/doc是一般性的文档,尤其要注意的是,其中的许多文档都是以压缩格式存储的。如果碰巧有任何文档存储为未排版的LaTeX,我还没有遇到过。我上面引用的特定示例是软件包中的LaTeX模板texlive-latex-extra-doc
ændrük


1
askubuntu.com/questions/24072/…。我认为这是所有设置中最好的解决方案,并且此后可以正常工作。
nelaaro 2011年

Answers:


6

jgbelacqua已经说了很多,并在终端中使用了很好的解释。只需为桌面管理器上的人员添加以下内容即可:

从图形桌面(此处为GNOME)中读取文档的最简单方法/usr/share/doc是使用标准存档管理器(此处为File Roller)(双击)打开压缩文件,您可以在其中(双击)打开并阅读它们您的标准编辑器(此处为Gedit)。只要您不解压缩文件,就不需要写权限。


很棒的解决方案。这就是人们使用Ubuntu,Gnome等之类的原因的原因。此类任务变得更容易。
belacqua

20

这里至少有两个问题:

  1. 轻松阅读.gz文件
  2. 目录权限
  3. (对于tex文件是可选的)

对于#1,有许多应用程序可以无缝处理gzip压缩文件。您可以使用的一对是lessvim

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

view是的别名vim -R,它只是说要以只读方式打开文件。

在过去,在我的系统上安装更少软件之前,我将使用gzcat输出并将其通过管道传输到另一个实用程序。显然,它现在仅zcat在Ubuntu上被调用,但是您可以像这样使用它,例如:

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

zcat仍然可用,在某些情况下使用zcat将压缩内容通过管道传输到某个位置可能会很有用。(对于带有.bz2文件的情况,bzcat可用。)

对于#2,我在/ usr / share / doc下看到的所有文件都在具有other + rx权限的目录中,这意味着所有用户都可以搜索目录(例如,列表内容)并读取其中的文件。您不能做的(因为默认情况下只有root拥有写权限)是创建文件。因为您正在尝试解压缩到该目录,所以我想它给了您拒绝的权限,因为默认情况下您具有读但没有写权限。

对于#3,我猜您比我更多地使用.tex文件。但是,这是一种无需复制到家庭或临时文件即可处理它们的方法。为此,您将创建一个命名管道,但可以将其重用于其他tex管道和处理需求。它应该像这样:

  • zcat或gzcat文本
  • ...并将其通过管道传输到您的TeX处理器
  • ...并将其发送到您的命名管道(在这里,我称他为pipey
  • ...然后在单独的屏幕上从pipey中获取输出
  • ...并将其发送到dvi显示过程。

如果您使用的工具与此处使用的工具不同或更好,则可以明显地更改这些步骤。

我的示例将使用该mkfifo实用程序来创建命名管道pipey。要处理的目标文件是/usr/share/doc/gdb/refcard.tex.gz。您将需要两个可用的Shell命令行(通过终端,Alt + F2,或其他方式)。

您将输入第一终端:

mkfifo pipey

您现在有了一个持久的命名管道。您可以ls -l用来窥视它。

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

请注意,只有对输出到命名管道的输出执行操作后,该命令才会返回。

现在,在第二终端中,您将输入: tex pipey | xdvi

它有效(无论如何,在这里)。可以优化该过程以实现更漂亮的输出,但是如果您正在寻找快速且相对没有混乱的方法,那是一种实现方法。


1
看看我的解决方案,我想您会印象深刻。askubuntu.com/questions/24072/...
nelaaro

1
+1为细节。对于我来说,正如@nelaar所提到的,我只是向Apache <Directory "/usr/share/doc/">目录声明中添加了一些指令(通常在中/etc/apache2/sites-enabled/000-default),并且我相信解压缩是由浏览器自己处理的。(AddEncoding x-gzip gz tgzAddType text/plain .gz)。
删除

尽管这是关于许多有用命令的精彩而详尽的课程,但这对于希望普通用户阅读系统文档的方式来说并不是一个好的解决方案。对于Ubuntu的,侏儒的喊叫或Debian的dwww最无痛苦,简单的方法。我的答案描述的是后者:askubuntu.com/a/52419/11015
MestreLion,2012年

1
@MestreLion在最现实的意义上,“典型用户”甚至不知道文件在那里。我认为最简单的解决方案是我首先提到的解决方案-使用less。这还有一个额外的优点,即在每个现代* nix系统上默认安装。对于那些知道文件在那里并且想要一年多次引用它们的用户来说,安装dwww之类的声音听起来是一个不错的解决方案。我自己,在紧要关头,我可能不记得dwww了,但是我会记得诸如“ less”之类的基本命令。或者,如Takkat所说,Nautilus / fileroller /等等
。– belacqua

13

也许现在回答还为时已晚,但我已经找到了最佳解决方案(易用性和完整性)

典型的Linux系统具有多种格式的文档(手册页,信息文件,自述文件等)。dwww使得可以通过相同的界面(WWW浏览器)访问所有这些文件。这样可以更轻松地使用文档。

dwww是Debian系统上所有在线文档的Web界面。它构建一些列出所有已安装文档的网页,并将所有文档转换为HTML。当用户请求文档时完成转换。

  • 启用CGI模块,在最近的Ubuntu / Apache中默认不再启用该模块:

    sudo a2enmod cgi
    sudo service apache2 restart
    
  • 打开浏览器并指向:http:// localhost / dwww /

  • 做完了!

您所有的info页面,man页面,/usr/share/doc文件包描述都在一个地方!您的个人文件网站!


使用此方法。疼痛减轻了。而且您可以非常快速地搜索事物,因为您将拥有类似Google的搜索框。
好奇的学徒

1
对于未来的游客,请注意这需要使CGI并重新启动Apache服务:askubuntu.com/questions/581118/...
谢尔盖Kolodyazhnyy

7

gunzip file.gz尝试解压缩file.gzfile删除file.gz。这就是为什么会出现“权限被拒绝”错误的原因,不允许您写入/usr/share/doc。要获取文件的内容,请使用gunzip -c file.gzzcat file.gz

可以使用阅读gzip压缩的文本文件zless。顾名思义,它只是lessgzip压缩文件的。

用法示例:

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

.gz后缀可以被省略,以及:

zless /usr/share/doc/bash/NEWS

在最新的系统上,我不必指定zless,因为less它将自动处理。
belacqua 2012年

1
@belacqua是的,如今我也这样做。我想这与LESSOPENLESSCLOSE环境变量有关。
Lekensteyn'5

5

首先安装apache2

sudo apt-get install apache2 apache2-doc  

apache2-doc这是特例。它允许您/usr/share/doc/通过Web浏览器浏览文档。来回http://localhost/doc/

但是,这并不正确。您需要更改Apache的配置,以使其解压缩并将* .gz文件显示为纯文本。

我在Stack Overflow发布了一种使用Apache来显示/usr/share/doc/目录中* .gz文档内容的方法。这是发布的可能解决方案。

以下是这些说明的简要说明。它告诉Apache如何处理.gz文件,以将其作为纯文本处理并将其作为纯文本发送到浏览器。

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

转到文件的底部,找到带有的部分,Alias /doc/ "/usr/share/doc/" 并将其更改为如下所示。

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>   

然后重新启动Apache:

sudo apache2ctl restart   

1
我不太确定这是否是另一种解决方案。我刚刚添加AddEncoding x-gzip gz tgz AddType text/plain .gz<Directory "/usr/share/doc/">条目,我相信减压实际上是在客户端进行的。
删除

@Alain,不,这不是一个不同的解决方案,这基本上就是我正在做的事情。
nelaaro 2011年

尽管我认为这是最好的解决方案(使用浏览器浏览文档无所不能),但为此安装整个Web服务器却是一个主要的过大杀伤力。我真的希望的Linux(yelp也许?)有任何的开箱即用的方式来阅读文档。
MestreLion 2011年

更新:解决方案运行完美!mod“ deflate”已经开箱即用,sudo service apache2 restart为了标准化,我将最后一行更改为。最后但并非最不重要的一点是,请注意尾部“ /”:它必须localhost / doc /,而 localhost / doc将不起作用。
MestreLion 2011年

-3

您不应该阅读.tex文件!它采用人类可读的格式,但设计为在改版之前进行处理。您可以使用tex2pdf工具将其转换为.pdf。


1
1)我阅读LaTeX源码。2)命令是pdflatex。3)这与在读取文件之前需要先将其压缩文件有关。
2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.