Как обычные пользователи могут читать документацию в / usr / share / doc?

Недавно я узнал, что в /usr/share/doc имеется огромная куча документации.

Похоже, что большая часть этого файла разархивирована, так что он не доступен напрямую без административных привилегий:

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

Хотя одним из решений этого было бы для каждого пользователя просто дублировать каждый элемент в своем домашнем каталоге чтобы прочесть его, эта схема вряд ли способствует регулярному просмотру.

Как обычные люди читают эту документацию?

Я не склонен полагать, что обычный пользователь должен устанавливать и обслуживать веб-сервер только для чтения локальной текстовой документации.

49
задан 10 July 2011 в 18:32

6 ответов

В jgbelacqua многое было сказано и очень хорошо объяснено для использования в терминале. Просто добавьте это для людей, использующих диспетчер рабочего стола:

С графического рабочего стола (здесь GNOME) самый простой способ читать документы из / usr / share / doc - это (дважды) щелкнуть по открытому заархивированные файлы с помощью стандартного диспетчера архивов (здесь File Roller), откуда вы можете (дважды) щелкнуть открыть и прочитать их в своем стандартном редакторе (здесь Gedit). Разрешения на запись не требуются, пока вы не распаковываете файлы.

8
ответ дан 10 July 2011 в 18:32

Có lẽ đã quá muộn để trả lời, nhưng tôi đã tìm ra giải pháp tốt nhất (vừa dễ sử dụng vừa đầy đủ)

Một hệ thống Linux điển hình có tài liệu ở nhiều định dạng (trang hướng dẫn sử dụng, Tệp thông tin, README, v.v.). dwww giúp bạn có thể truy cập tất cả trong số này thông qua cùng một giao diện, một trình duyệt WWW. Điều này làm cho nó dễ dàng hơn để sử dụng tài liệu.

dwww là giao diện web cho tất cả tài liệu trực tuyến trên Hệ thống Debian. Nó xây dựng một số trang web liệt kê tất cả các trang đã được cài đặt tài liệu và chuyển đổi tất cả tài liệu sang HTML. Sự chuyển đổi được thực hiện khi người dùng yêu cầu tài liệu.

  • Bật mô-đun CGI, mô-đun này không còn được bật theo mặc định trong Ubuntu / Apache gần đây:

     sudo a2enmod cgi
    khởi động lại dịch vụ sudo apache2
     
  • Mở trình duyệt của bạn và trỏ tới: http: // localhost / dwww /

  • Xong!

Tất cả các trang thông tin của bạn, man trang, / usr / share / doc tệp mô tả gói ở một nơi duy nhất! Trang web tài liệu cá nhân của bạn!

14
ответ дан 10 July 2011 в 18:32

gunzip file.gz пытается распаковать file.gz в file, удаляя file.gz. Поэтому вы получаете ошибку "Разрешение запрещено", вы не можете записать в /usr/share/doc. Для получения содержимого файла используйте gunzip -c file.gz или zcat file.gz.

Чтение текстовых файлов, сжатых в gzip-формате, можно выполнять с помощью zless. Как видно из имен, это просто меньше , но для файлов, сжатых gzip.

Пример использования:

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

Суффикс .gz также можно опустить:

zless /usr/share/doc/bash/NEWS
7
ответ дан 10 July 2011 в 18:32

Первая установка apache2

sudo apt-get install apache2 apache2-doc  

apache2-doc - особый случай. Она позволяет просматривать документацию /usr/share/doc/ через веб-браузер. fro http://localhost/doc/.

Но это не работает. Вам нужно изменить конфигурацию Apache, чтобы заставить его распаковать и показать файлы *.gz в виде простого текста.

Я написал на Stack Overflow, чтобы получить возможность использовать Apache для показа содержимого документов *.gz в каталоге /usr/share/doc/. Это то, что было размещено как возможное решение.

Вот эти инструкции вкратце. Она рассказывает 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   
7
ответ дан 10 July 2011 в 18:32

Здесь есть как минимум две проблемы:

  1. безболезненное чтение файлов .gz
  2. права доступа к каталогам
  3. (необязательно для файлов tex)

Для # 1 существует ряд приложений, которые без проблем справятся с файлами, сжатыми gzip. Пара, которую вы могли бы использовать, это less и vim .

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

view - это псевдоним для vim -R , который просто говорит открыть файл только для чтения.

Раньше, до того, как в мою систему устанавливали less, я использовал gzcat и перенаправлял вывод в другую утилиту. По-видимому, сейчас в Ubuntu он называется только zcat , но вы могли бы использовать его так, например, :

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

zcat все еще доступен, и его использование для передачи сжатого содержимого по конвейеру может быть полезно в некоторых случаях. (Для ситуаций с файлами .bz2 доступен bzcat .)

Для # 2 все файлы, которые я видел в / usr / share / doc, находятся в каталоги с другими разрешениями + rx, что означает, что все пользователи могут выполнять поиск в каталогах (например, содержимое списка) и читать файлы внутри. Чего вы не можете сделать (поскольку по умолчанию только root имеет разрешение на запись), так это создавать файлы. Поскольку вы пытаетесь разархивировать в этот каталог, я полагаю, что это дает вам отказ в разрешении, потому что вы по умолчанию имеете права на чтение, но не на запись.

Для № 3, я полагаю, вы используете файлы .tex чаще, чем я. Но вот один способ справиться с ними без копирования в домашний или временный файл. Для этого вы собираетесь создать именованный канал, но вы можете повторно использовать его для других ваших нужд передачи и обработки текс. Он должен выглядеть так:

  • zcat или gzcat текст
  • ... и передать его вашему процессору TeX
  • ... и отправить его в свой Named Pipe (здесь я назову его pipey )
  • ... а затем на отдельном экране возьмите ваш вывод из pipey
  • ... и отправьте его процессу отображения dvi.

Очевидно, что вы можете изменить эти шаги, если используете другие или лучшие утилиты, чем те, что здесь.

В моем примере будет использоваться утилита mkfifo для создания именованного канала, pipey . Целевой файл для обработки - /usr/share/doc/gdb/refcard.tex.gz . Вам потребуются две доступные командные строки оболочки (через терминал, Alt + F2 или как-то иначе).

Вам нужно ввести первый терминал:

mkfifo pipey

Теперь у вас есть постоянный именованный канал. Вы можете использовать ls -l , чтобы посмотреть на него.

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

Обратите внимание на то, что эта команда не вернется, пока вы не сделаете что-нибудь с выводом, отправленным в именованный канал.

Теперь во втором терминале введите: tex pipey | xdvi

И работает (ну все равно здесь). Процесс можно усовершенствовать для получения более красивого результата, но если вы ищете быстрый и относительно простой, это один из способов сделать это.

22
ответ дан 10 July 2011 в 18:32

Не читайте файлы .tex! Он представлен в удобочитаемом формате, но предназначен для обработки перед повторной отправкой. Вы можете использовать инструмент tex2pdf, чтобы преобразовать его в .pdf.

-3
ответ дан 10 July 2011 в 18:32

Другие вопросы по тегам:

Похожие вопросы: