Bagaimana biasanya pengguna diharapkan membaca dokumentasi di / usr / share / doc?

43

Baru-baru ini saya mengetahui bahwa ada setumpuk dokumentasi di /usr/share/doc.

Sepertinya banyak yang di-gzip sehingga tidak dapat diakses secara langsung tanpa hak administratif:

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

Sementara satu solusi untuk ini adalah untuk setiap pengguna untuk menduplikasi setiap item di direktori home mereka hanya untuk membacanya, pengaturan ini tampaknya tidak kondusif untuk browsing biasa.

Bagaimana orang normal membaca dokumentasi ini?

Saya tidak cenderung percaya bahwa pengguna biasa diharapkan menginstal dan memelihara server web hanya untuk membaca dokumentasi teks lokal.

ændrük
sumber
Untuk lebih jelasnya, apakah Anda tertarik untuk berurusan dengan dokumen apa pun di direktori / usr / share / doc, atau hanya yang TeX / LaTeX?
belacqua
OK, satu pertanyaan lagi - apakah Anda perlu memproses file .tex menjadi dvi atau apa pun, atau hanya melihat kode sumbernya?
belacqua
1
Saya bertanya tentang dokumentasi secara /usr/share/documum dan dengan perhatian khusus pada pengamatan bahwa sebagian besar disimpan dalam format terkompresi. Jika kebetulan ada dokumentasi yang disimpan sebagai un-typeset LaTeX, saya belum menemukannya. Contoh khusus yang saya rujuk di atas adalah template LaTeX dari paket texlive-latex-extra-doc.
ændrük
1
askubuntu.com/questions/24072/… . Saya pikir ini adalah solusi terbaik untuk semua pengaturan dan bekerja setelahnya.
nelaaro

Jawaban:

6

Sebagian besar telah dikatakan dan dijelaskan dengan sangat baik oleh jgbelacqua untuk digunakan di terminal. Hanya menambahkan ini untuk orang-orang yang ada di desktop manager:

Dari desktop grafis (di sini GNOME) cara termudah untuk membaca dokumen /usr/share/docadalah dengan (klik dua kali) membuka file zip dengan manajer arsip standar Anda (di sini File Roller) dari mana Anda dapat (double-) klik buka dan membacanya di editor standar Anda (di sini Gedit). Tidak diperlukan izin menulis selama Anda tidak mengekstrak file.

Takkat
sumber
Solusi luar biasa. Inilah mengapa orang menggunakan hal-hal seperti Ubuntu, Gnome, dll. Tugas semacam ini menjadi lebih mudah.
belacqua
20

Setidaknya ada dua masalah di sini:

  1. membaca file .gz tanpa rasa sakit
  2. izin pada direktori
  3. (opsional untuk file tex)

Untuk # 1 , ada sejumlah aplikasi yang akan mengatasi file yang di-gz dengan mulus. Pasangan yang bisa Anda gunakan adalah lessdan vim.

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

viewadalah alias untuk vim -R, yang hanya mengatakan untuk membuka file read-only.

Di masa lalu, sebelum lebih sedikit diinstal pada sistem saya, saya akan menggunakan gzcatdan menyalurkan output ke utilitas lain. Rupanya, itu hanya dipanggil zcatsekarang di Ubuntu, tetapi Anda akan menggunakannya seperti ini, misalnya:

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

zcat masih tersedia, dan menggunakannya untuk menyalurkan konten terkompresi di suatu tempat dapat berguna dalam beberapa kasus. (Untuk situasi dengan file .bz2, bzcattersedia.)

Untuk # 2 , semua file yang saya lihat di bawah / usr / share / doc ada di direktori dengan izin + rx lainnya, yang berarti bahwa semua pengguna dapat mencari direktori (misalnya, daftar isi) dan membaca file di dalamnya. Apa yang tidak dapat Anda lakukan (karena hanya root yang memiliki izin menulis secara default), adalah membuat file. Karena Anda mencoba membuka zip ke direktori itu, saya kira itu memberi Anda izin ditolak karena Anda telah membaca tetapi tidak menulis izin secara default.

Untuk # 3, saya kira Anda menggunakan file .tex lebih dari saya. Tapi di sini ada satu cara untuk menghadapinya tanpa menyalin ke rumah atau file temp. Untuk ini, Anda akan membuat pipa bernama, tetapi Anda dapat menggunakannya kembali untuk kebutuhan pemipaan dan pemrosesan tex lainnya. Seharusnya seperti ini:

  • zcat atau gzcat teks
  • ... dan pipa itu ke prosesor TeX Anda
  • ... dan kirimkan ke Named Pipe Anda (di sini, saya akan memanggilnya pipey)
  • ... dan kemudian di layar terpisah ambil output Anda dari pipey
  • ... dan kirimkan ke proses tampilan dvi.

Anda jelas dapat mengubah langkah-langkah ini jika Anda menggunakan utilitas yang berbeda atau lebih baik daripada yang ada di sini.

Contoh saya akan menggunakan mkfifoutilitas untuk membuat pipa bernama pipey,. File target untuk diproses adalah /usr/share/doc/gdb/refcard.tex.gz. Anda akan membutuhkan dua baris perintah shell yang tersedia (via terminal, Alt + F2, atau bagaimanapun).

Anda akan mengetikkan terminal satu:

mkfifo pipey

Anda sekarang memiliki pipa bernama persisten. Anda bisa menggunakannya ls -luntuk mengintipnya.

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

Perhatikan bahwa perintah ini tidak akan kembali sampai Anda melakukan sesuatu dengan output yang pergi ke pipa bernama.

Sekarang, di terminal dua, Anda akan mengetik: tex pipey | xdvi

Dan itu berhasil (baik, di sini pula). Prosesnya dapat disempurnakan untuk menghasilkan keluaran yang lebih cantik, tetapi jika Anda mencari yang cepat dan relatif tidak berantakan, itu salah satu cara untuk melakukannya.

belacqua
sumber
1
Lihat solusi saya, saya pikir Anda akan terkesan. askubuntu.com/questions/24072/…
nelaaro
1
+1 untuk detailnya. Bagi saya, seperti juga disebutkan oleh @nelaar, saya hanya menambahkan beberapa arahan ke <Directory "/usr/share/doc/">deklarasi direktori Apache (biasanya dalam /etc/apache2/sites-enabled/000-default) dan saya percaya dekompresi ditangani oleh browser sendiri. ( AddEncoding x-gzip gz tgzdan AddType text/plain .gz).
Hapus
Meskipun ini adalah pelajaran yang luar biasa dan terperinci tentang banyak perintah yang berguna, ini bukan solusi yang baik untuk bagaimana pengguna biasa diharapkan membaca dokumentasi sistem. Untuk Ubuntu, Gnome's yelp atau Debian dwww adalah metode yang paling mudah dan bebas rasa sakit. Jawaban saya menjelaskan yang terakhir: askubuntu.com/a/52419/11015
MestreLion
1
@EstreLion 'Pengguna biasa' dalam arti paling realistis tidak tahu bahwa file-file itu ada di sana. Saya pikir solusi termudah adalah yang saya sebutkan pertama - menggunakan less. Ini memiliki keuntungan tambahan karena diinstal secara default pada setiap sistem * nix modern. Untuk pengguna yang mengetahui file ada di sana dan ingin merujuk mereka lebih dari beberapa kali dalam setahun, menginstal sesuatu seperti dwww terdengar seperti solusi hebat. Saya sendiri, dalam keadaan darurat, saya mungkin tidak ingat dwww, tapi saya akan mengingat perintah dasar seperti 'kurang'. Atau, seperti yang dikatakan Takkat, Nautilus / fileroller / dll.
belacqua
13

Mungkin itu sudah terlambat untuk dijawab, tetapi saya telah menemukan solusi terbaik (baik kemudahan penggunaan maupun kelengkapan)

Sistem Linux tipikal memiliki dokumentasi dalam banyak format (halaman manual, file Info, READMEs, dan sebagainya). dwww memungkinkan untuk mengakses semua ini melalui antarmuka yang sama, browser WWW. Ini membuatnya lebih mudah untuk menggunakan dokumentasi.

dwww adalah antarmuka web untuk semua dokumentasi on-line pada sistem Debian. Itu membangun beberapa halaman web yang mencantumkan semua dokumen yang diinstal, dan mengubah semua dokumen menjadi HTML. Konversi dilakukan ketika pengguna meminta dokumen.

  • Aktifkan modul CGI, yang tidak lagi diaktifkan secara default di Ubuntu / Apache baru-baru ini:

    sudo a2enmod cgi
    sudo service apache2 restart
    
  • Buka browser Anda dan arahkan ke: http: // localhost / dwww /

  • Selesai!

Semua infohalaman Anda , manhalaman, /usr/share/docfile dan deskripsi paket di satu tempat! Situs web dokumentasi pribadi Anda!

MestreLion
sumber
Gunakan metode ini. Itu kurang sakit penuh. Dan Anda dapat mencari hal-hal dengan sangat cepat karena Anda akan memiliki kotak pencarian seperti google.
Curious Apprentice
1
Untuk pengunjung masa depan, perhatikan bahwa ini memerlukan pengaktifan CGI dan restart layanan Apache: askubuntu.com/questions/581118/…
Sergiy Kolodyazhnyy
7

gunzip file.gzupaya untuk uncompress file.gzuntuk file, menghapus file.gz. Itulah sebabnya Anda mendapatkan kesalahan "Izin ditolak", Anda tidak diizinkan menulis /usr/share/doc. Untuk mendapatkan konten file, gunakan gunzip -c file.gzatau zcat file.gz.

Membaca file teks yang dikompresi gzip dapat dilakukan dengan zless. Seperti namanya, itu hanya less, tetapi untuk file yang dikompresi gzip.

Contoh penggunaan:

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

The .gzakhiran dapat dihilangkan juga:

zless /usr/share/doc/bash/NEWS
Lekensteyn
sumber
Pada sistem terbaru, saya tidak perlu menentukan zless, karena lessakan menanganinya secara otomatis.
belacqua
1
@ belacqua Benar, saya melakukan hal yang sama saat ini. Saya kira itu ada hubungannya dengan variabel LESSOPENdan LESSCLOSElingkungan.
Lekensteyn
5

Pertama instal apache2

sudo apt-get install apache2 apache2-doc  

apache2-docadalah kasus khusus di sini. Ini memungkinkan Anda untuk menelusuri dokumentasi /usr/share/doc/Anda melalui browser web Anda. mondar-mandir http://localhost/doc/.

Namun ini tidak berhasil. Anda perlu mengubah konfigurasi Apache agar dapat melakukan dekompresi dan memperlihatkan file * .gz sebagai teks biasa.

Saya memposting di Stack Overflow untuk mendapatkan cara menggunakan Apache untuk menunjukkan konten * .gz dokumen dalam /usr/share/doc/direktori. Inilah yang diposting sebagai solusi yang mungkin.

Berikut ini instruksi singkatnya. Ini memberitahu Apache bagaimana menangani file .gz untuk memprosesnya sebagai teks biasa dan mengirimkannya ke browser sebagai teks biasa.

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

Pergi ke bagian bawah file dan temukan bagian dengan Alias /doc/ "/usr/share/doc/" dan mengubahnya agar terlihat seperti ini.

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>   

Kemudian restart Apache:

sudo apache2ctl restart   
nelaaro
sumber
1
Saya tidak terlalu yakin apakah ini solusi yang berbeda. Saya baru saja menambahkan entri AddEncoding x-gzip gz tgz AddType text/plain .gzsaya <Directory "/usr/share/doc/">dan saya percaya dekompresi sebenarnya ditangani di sisi klien.
Hapus
@ Alain, tidak itu bukan solusi yang berbeda ini pada dasarnya apa yang saya lakukan.
nelaaro
Sementara saya pikir ini ADALAH solusi terbaik (tidak ada yang bisa mengalahkan menggunakan browser untuk menelusuri dokumen), itu adalah kerja keras utama untuk menginstal seluruh server web hanya untuk itu. Saya benar-benar berharap Linux ( yelpmungkin?) Memiliki setiap keluar-kotak cara untuk membaca dokumentasi.
MestreLion
Pembaruan: solusi bekerja dengan sempurna !!! mod "deflate" sudah diaktifkan di luar kotak, dan saya mengubah baris terakhir sudo service apache2 restartdemi standartisasi. Last but not least, reades menyadari membuntuti "/": itu harus menjadi localhost / doc / , localhost / doc tidak akan bekerja.
MestreLion
-3

Anda seharusnya tidak membaca file .tex! Ini dalam format yang dapat dibaca manusia, tetapi dirancang untuk diproses sebelum permintaan ulang. Anda dapat menggunakan alat tex2pdf untuk mengubahnya menjadi .pdf.

przemo_li
sumber
1
1) Saya ingin membaca sumber LaTeX. 2) Perintahnya adalah pdflatex. 3) Ini bersinggungan dengan masalah perlunya merapikan file sebelum membacanya.
ændrük