Як очікується, що типові користувачі читають документацію в / usr / share / doc?


43

Нещодавно я дізнався, що в Росії є величезна купа документації /usr/share/doc.

Здається, що велика частина його gzipped, так що вона не доступна безпосередньо без адміністративних привілеїв:

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

Хоча одне рішення для цього було б для кожного користувача дублювати кожен елемент у своєму домашньому каталозі лише для того, щоб прочитати його, ця домовленість навряд чи сприятлива для регулярного перегляду.

Як нормальні люди читають цю документацію?

Я не схильний вважати, що типовий користувач повинен встановити та підтримувати веб-сервер лише для читання локальної текстової документації.


Щоб зрозуміти, чи зацікавлені ви в роботі з будь-якими документами в каталогах / usr / share / doc або просто з TeX / LaTeX?
belacqua

Гаразд, ще одне питання - чи потрібно обробляти .tex файли у dvi чи що завгодно, або просто подивитися вихідний код?
белаква

1
Я запитую про документацію /usr/share/docзагалом і з особливою увагою зауважую, що значна частина її зберігається у стисненому форматі. Якщо трапляється будь-яка документація, що зберігається як невстановлений LaTeX, мені ще не вдається зіткнутися з цим. Конкретний приклад, на який я посилався вище, - це шаблон LaTeX з пакету texlive-latex-extra-doc.
ændrük


1
askubuntu.com/questions/24072/… . Я думаю, що це найкраще рішення для всіх налаштувань, і воно працює там після.
nelaaro

Відповіді:


6

Більшість було сказано і дуже добре пояснено jgbelacqua для використання в терміналі. Просто додайте це для людей, які перебувають у настільному менеджері:

На графічному робочому столі (тут GNOME) найпростіший спосіб читати документи з /usr/share/doc- це (подвійне) натискання відкрити файли-блискавки за допомогою стандартного менеджера архівів (тут File Roller), звідки ви можете (подвійний) натиснути відкрити і прочитати їх у ваш стандартний редактор (тут Gedit). Не потрібно дозволу на запис, доки ви не розпакуйте файли.


Чудове рішення. Ось чому люди використовують такі речі, як Ubuntu, Gnome тощо. Таке завдання полегшується.
belacqua

20

Тут принаймні два питання:

  1. читання файлів .gz безболісно
  2. дозволи на каталоги
  3. (необов’язково для текстових файлів)

Для №1 існує ряд програм, які без проблем справляться з gzipped файлами. Пара, яку ви могли використовувати, є lessі vim.

 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 все ще доступний, а його використання для передачі вмісту стисненого вмісту кудись може бути корисним у деяких випадках. (Для ситуацій із .bz2 файлами bzcatдоступно.)

Для №2 усі файли, які я бачив під / usr / share / doc, знаходяться в каталогах з іншими правами + rx, тобто всі користувачі можуть шукати в каталогах (наприклад, вміст списку) та читати файли всередині. Те, що ви не можете зробити (оскільки лише root має дозвіл на запис на запис), це створити файли. Оскільки ви намагаєтесь скасувати розпакування в цей каталог, я думаю, що він дає вам дозвіл відмовлено, оскільки ви читали, але не дозволяли писати дозволи за замовчуванням.

Я вважаю, що ви користуєтесь .tex файлами більше, ніж я. Але ось один із способів поводження з ними без копіювання додому чи тимчасового файлу. Для цього ви збираєтеся створити названу трубу, але ви можете використовувати її повторно для своїх інших текстових трубопроводів та потреб обробки. Це має вийти так:

  • zcat або gzcat тексту
  • ... і передайте це своєму процесору TeX
  • ... і надішліть це на вашу названу трубу (тут я зателефоную йому pipey)
  • ... а потім на окремому екрані візьміть свій висновок з трубопроводу
  • ... і надішліть його до процесу відображення дви.

Ви, очевидно, можете змінити ці кроки, якщо використовуєте інші або кращі утиліти, ніж ті, що тут.

Мій приклад буде використовувати 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

І це працює (ну, так чи інакше). Процес можна вдосконалити для кращого виходу, але якщо ви шукаєте швидкого та відносно безладного, це один із способів.


1
Ознайомтесь з моїм рішенням, я думаю, ви будете вражені. askubuntu.com/questions/24072/…
nelaaro

1
+1 для деталей. Що стосується мене, як також згадував @nelaar, я лише додаю кілька директив до <Directory "/usr/share/doc/">декларації каталогу Apache (як правило, в /etc/apache2/sites-enabled/000-default), і я вважаю, що декомпресією керують самі браузери. ( AddEncoding x-gzip gz tgzі AddType text/plain .gz).
Видалити

Хоча це було дивовижним та детальним уроком з багатьох корисних команд, це навряд чи вдале рішення для того, як типовий користувач повинен прочитати системну документацію. Для Ubuntu, Gnome в вереск або в Debian dwww є найбільш безболісним, простий метод. Моя відповідь описує останнє: askubuntu.com/a/52419/11015
MestreLion

1
@MestreLion "Типовий користувач" в найбільш реалістичному сенсі не знає, що файли навіть є. Я думаю, що найпростішим рішенням є те, що я згадав першим - використання less. Це має додаткову перевагу: встановлення за замовчуванням у кожній сучасній системі * nix. Для користувача, який знає, що файли є, і хоче посилатися на них більше, ніж пару разів на рік, установка чогось типу dwww звучить як чудове рішення. Сам, в крайньому випадку, я не пам'ятаю dwww, але я запам'ятаю основні команди на зразок "менше". Або, як сказав Таккат, Nautilus / fileroller / тощо ..
belacqua

13

Можливо, відповісти занадто пізно, але я знайшов найкраще рішення (як простота використання, так і повнота)

  • Встановіть dwww встановити dwww

Типова система Linux має документацію у багатьох форматах (сторінки з посібниками, файли інформації, README тощо). dwww дозволяє отримати доступ до всіх цих даних через один і той же інтерфейс, браузер WWW. Це полегшує використання документації.

dwww - це веб-інтерфейс до всієї он-лайн документації в системі Debian. Він створює деякі веб-сторінки, в яких перераховані всі встановлені документи, і перетворює всі документи в 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/…
Сергій Колодяжний

7

gunzip file.gzспроби розпаковувати file.gzTo file, видалення file.gz. Ось чому ви отримуєте помилку "Дозвіл відмовлено", вам не дозволяється писати /usr/share/doc. Щоб отримати вміст файлу, використовуйте gunzip -c file.gzабо zcat file.gz.

Читання текстових файлів, стиснених gzip, можна виконати за допомогою zless. Як випливає з назви, це просто less, але для файлів, що стискають gzip.

Приклад використання:

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

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

zless /usr/share/doc/bash/NEWS

У останніх системах мені не довелося вказувати zless, як це lessбуде оброблятися автоматично.
белакква

1
@belacqua Щоправда, я роблю те саме і сьогодні. Я здогадуюсь, це має щось спільне зі змінними LESSOPENта LESSCLOSEсередовищем.
Лекенштейн

5

Спочатку встановіть apache2

sudo apt-get install apache2 apache2-doc  

apache2-docтут особливий випадок. Це дозволяє переглядати вашу документацію /usr/share/doc/через веб-браузер. сюди http://localhost/doc/.

Однак це не виходить правильно. Вам потрібно змінити конфігурацію Apache, щоб змусити її розпаковувати та показувати * .gz файли як звичайний текст.

Я розмістив на стеку переповнення, щоб отримати спосіб використання 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   

1
Я не надто впевнений, чи це інше рішення. Я щойно додав AddEncoding x-gzip gz tgz AddType text/plain .gzдо свого <Directory "/usr/share/doc/">вступу, і я вважаю, що декомпресія справді обробляється на стороні клієнта.
Видалити

@Alain, ні це не інше рішення, це по суті те, що я роблю.
nelaaro

Хоча я вважаю, що це IS найкраще рішення (нічого не можна перемогти за допомогою браузера, щоб переглядати документи), це головне зайве завдання встановити цілий веб-сервер саме для цього. Я дуже хотів би, щоб у Linux ( yelpможливо?) Був який - небудь нестандартний спосіб прочитати документи.
MestreLion

Оновлення: рішення працювало чудово !!! мод "дефляція" вже ввімкнено поза коробкою, і я змінив останній рядок на sudo service apache2 restartстандартизацію. І останнє, але не менш важливе, читачі повинні бути в курсі "/": це має бути localhost / doc / , localhost / doc не працюватиме.
MestreLion

-3

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


1
1) Я хочу прочитати джерело LaTeX. 2) Команда є pdflatex. 3) Це дотичне до питання про необхідність згорнути файл перед читанням.
ændrük
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.