Tipik kullanıcıların / usr / share / doc içindeki belgeleri okuması nasıl beklenir?


43

Geçenlerde, içinde çok büyük bir belge yığını olduğunu öğrendim /usr/share/doc.

Yönetimsel imtiyazlar olmadan doğrudan erişilememesi için birçoğu gziplenmiş gibi görünüyor:

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

Buna bir çözüm, her kullanıcının sadece ana dizindeki her bir öğeyi kopyalamak için kopyalaması olsa da, bu düzenleme düzenli olarak göz atmaya pek de elverişli görünmüyor.

Normal insanlar bu belgeleri nasıl okur?

Tipik bir kullanıcının sadece yerel metin belgelerini okumak için bir web sunucusu kurması ve sürdürmesi beklendiğine inanmaya meyilli değilim.


Sadece açık olmak gerekirse, / usr / share / doc dizinlerinde veya sadece TeX / LaTeX olanlarında herhangi bir belge ile ilgilenmek ister misiniz?
belacqua

Tamam, bir soru daha - .tex dosyalarını dvi ya da her neyse ya da sadece kaynak koduna mı ihtiyacınız var?
belacqua

1
/usr/share/docGenel olarak belgeler hakkında ve büyük bir kısmının sıkıştırılmış bir biçimde saklandığı gözlemine özellikle dikkat ederek soruyorum . Dizgi olmayan LaTeX olarak depolanan herhangi bir belge varsa, henüz bu konuyla karşılaşmamıştım. Yukarıda referans aldığım belirli örnek, paketten bir LaTeX şablonu texlive-latex-extra-doc.
ændrük


1
askubuntu.com/questions/24072/… . Bunun tüm kurulumlar için en iyi çözüm olduğunu düşünüyorum ve daha sonra orada çalışıyor.
nelaaro

Yanıtlar:


6

Çoğu terminalde kullanılmak üzere söylendi ve çok güzel bir şekilde jgbelacqua tarafından açıklandı . Bunu yalnızca masaüstü yöneticisindeki kişiler için ekliyorum:

Grafik bir masaüstünden (burada GNOME) belgeleri okumak için en kolay yol /usr/share/doc, sıkıştırılmış dosyaları açmak için standart arşiv yöneticinizle (burada Dosya Silindiri) (buradan çift tıklatarak) açıp okumak için tıklamanızdır. senin standart editörün (burada Gedit). Dosyaları açmazsanız, yazma izniniz gerekmez.


Harika bir çözüm. Bu gerçekten insanların Ubuntu, Gnome vb. Gibi şeyleri kullanmasının sebebidir.
belacqua

20

Burada en az iki sorun var:

  1. .gz dosyalarını acısızca okumak
  2. dizinler üzerindeki izinler
  3. (tex dosyaları için isteğe bağlı)

İçin 1. , sorunsuz gzip dosyaları ile başa çıkacak uygulamalar vardır. Kullanabileceğin bir çift var lessve vim.

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

viewvim -Rsadece salt okunur dosyayı açmak için diyor bir takma addır .

Eski günlerde sistemime daha az yüklenmeden önce gzcatçıktıyı başka bir yardımcı programa bağlar ve kullanırdım . Görünüşe göre, zcatşimdi sadece Ubuntu'da çağrılıyor , ancak bunu bu şekilde kullanırsınız, örneğin:

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

zcat hala mevcuttur ve bir yerde sıkıştırılmış içeriği bir boruya yerleştirmek için kullanılması bazı durumlarda yararlı olabilir. (.Bz2 dosyalarına sahip durumlar bzcatiçin kullanılabilir.)

For 2. , G / usr / share / doc altında gördüğüm tüm dosyaları tüm kullanıcılar dizinleri (örneğin, liste içeriği) arama ve içindeki dosyaları okuyabilir, yani başka + rx izinlerine sahip dizinleri vardır. Yapamayacağınız (yalnızca kök, varsayılan olarak yazma iznine sahip olduğundan), dosyalar oluşturmaktır. Bu dizinde açmaya çalıştığınız için, varsayılan olarak okuma izinleri yazdığınız ancak yazmadığınız için izin verilmediğini düşünüyorum.

# 3 için, .tex dosyalarını benden daha fazla kullandığınızı tahmin ediyorum. Ama işte bunlarla evinize veya geçici bir dosyaya kopyalamadan onlarla başa çıkmanın bir yolu. Bunun için adlandırılmış bir boru oluşturacaksınız, ancak bunu diğer boru ve işleme ihtiyaçlarınız için yeniden kullanabilirsiniz. Bu şekilde gitmeli:

  • zcat veya gzcat metni
  • ... ve onu TeX işlemcinize aktarın
  • ... ve bunu İsimli Piponuna gönder (işte onu arayacağım pipey)
  • ... ve sonra ayrı bir ekranda çıktılarınızı pipeyden alın
  • ... ve bunu bir dvi görüntüleme işlemine gönderin.

Buradakilerden farklı veya daha iyi araçlar kullanıyorsanız, bu adımları açık bir şekilde değiştirebilirsiniz.

mkfifoÖrneğim, adlandırılmış yöneltme oluşturmak için yardımcı programı kullanacaktır pipey. İşlenecek hedef dosya /usr/share/doc/gdb/refcard.tex.gz. Kullanılabilen iki kabuk komut satırına ihtiyacınız olacak (terminal aracılığıyla, Alt + F2 veya bununla birlikte).

Birinci terminali yazacaksınız:

mkfifo pipey

Artık boru adında ısrarcı bir ismin var. ls -lBakmak için kullanabilirsiniz .

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

Bu komutun, adlandırılmış yönelticiye giden çıktıyla bir şey yapana kadar geri dönmeyeceğine dikkat edin.

Şimdi, ikinci terminalde şunu yazacaksınız: tex pipey | xdvi

Ve işe yarıyor (neyse, yine de burada). İşlem daha güzel çıktılar için rafine edilebilir, ancak hızlı ve nispeten karışıklık arayanlar için bunu yapmanın bir yolu var.


1
Çözümüme göz atın, etkileneceğinizi düşünüyorum. askubuntu.com/questions/24072/…
nelaaro

1
Detay için +1. Bana göre, @nelaar'ın da belirttiği gibi, Apache <Directory "/usr/share/doc/">dizini bildirgesine ( sadece içeride) birkaç direktif ekliyorum /etc/apache2/sites-enabled/000-defaultve dekompresyonun tarayıcıların kendileri tarafından yapıldığına inanıyorum. ( AddEncoding x-gzip gz tgzve AddType text/plain .gz).
silin

Her ne kadar bu birçok yararlı komut için şaşırtıcı ve ayrıntılı bir ders olsa da, tipik bir kullanıcının sistem belgelerini nasıl okuması beklendiği için bu pek iyi bir çözüm değildir . Ubuntu için, Gnome'un havlama veya Debian'ın dwww olan en ağrısız, kolay yöntemi. Cevabım ikincisini açıklıyor : askubuntu.com/a/52419/11015
MestreLion

1
@MestreLion En gerçekçi anlamda 'tipik bir kullanıcı' dosyaların orada olduğunu bile bilmiyor. Sanırım en kolay çözüm ilk kullandığımdan bahsetti less. Bu, her modern * nix sistemine varsayılan olarak kurulma avantajına sahiptir. Dosyaların orada olduğunu bilen ve yılda birkaç kereden fazla bunlara başvurmak isteyen kullanıcılar için, dwww gibi bir şey yüklemek harika bir çözüm gibi geliyor. Bir tutamda kendimi dwww'u hatırlamayabilirim, ama 'daha az' gibi temel komutları hatırlayacağım. Veya, Takkat'ın dediği gibi, Nautilus / fileroller / etc ..
belacqua

13

Belki cevaplamak için çok geç, ama en iyi çözümü buldum (kullanım kolaylığı ve eksiksizlik)

Tipik bir Linux sistemi birçok formatta dokümantasyona sahiptir (manuel sayfalar, Bilgi dosyaları, README vb.). dwww, hepsine aynı arabirim, bir WWW tarayıcısı üzerinden erişmeyi mümkün kılar. Bu, belgelerin kullanımını kolaylaştırır.

dwww, bir Debian sistemindeki tüm çevrimiçi belgelere bir web arayüzüdür. Yüklü tüm belgeleri listeleyen bazı web sayfaları oluşturur ve tüm belgeleri HTML'ye dönüştürür. Dönüşüm, kullanıcı belgeyi istediğinde yapılır.

  • Son Ubuntu / Apache'de varsayılan olarak artık etkin olmayan CGI modülünü etkinleştirin:

    sudo a2enmod cgi
    sudo service apache2 restart
    
  • Tarayıcınızı açın ve şunları işaret edin: http: // localhost / dwww /

  • Bitti!

Tüm infosayfalarınız, mansayfalarınız, /usr/share/docdosyalarınız ve paket açıklamanız tek bir yerde! Kişisel dökümantasyon web siteniz!


Bu yöntemi kullanın. Daha az acı dolu. Ve google benzeri bir arama kutusuna sahip olacağınız için çok hızlı bir şekilde arama yapabilirsiniz.
Meraklı Çırak

1
Gelecekteki ziyaretçiler için bunun CGI'yı
Sergiy Kolodyazhnyy

7

gunzip file.gzsıkıştırmak için girişimler file.gzTo file, çıkarma file.gz. Bu nedenle bir "İzin reddedildi" hatası alıyorsunuz, yazmanıza izin verilmiyor /usr/share/doc. Bir dosyanın içeriğini almak için gunzip -c file.gzveya tuşunu kullanın zcat file.gz.

Gzip ile sıkıştırılmış metin okumaları yapılabilir zless. Adlarından da anlaşılacağı gibi, sadece less, ama gzip sıkıştırılmış dosyalar içindir.

Örnek kullanım:

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

.gzEki yuva olarak ihmal edilebilir:

zless /usr/share/doc/bash/NEWS

Son sistemlerde, otomatik zlessolarak lessidare edeceği gibi belirtmek zorunda kalmadım.
belacqua

1
@ belacqua Doğru, bugünlerde aynı şeyi yapıyorum. Sanırım LESSOPENve LESSCLOSEçevre değişkenleriyle ilgisi var .
Lekensteyn

5

İlk önce apache2'yi kurun

sudo apt-get install apache2 apache2-doc  

apache2-docburadaki özel durum. /usr/share/doc/Web tarayıcınız üzerinden belgelerinize göz atmanızı sağlar . fro http://localhost/doc/.

Bu doğru olsa işe yaramaz. Apache'nin yapılandırmasını değiştirmeniz ve * .gz dosyalarını düz metin olarak göstermesi için değiştirmeniz gerekir.

/usr/share/doc/Dizindeki * .gz belgelerinin içeriğini göstermek için Apache'yi kullanmanın bir yolunu bulmak için Yığın Taşması'na yazdım . Bu mümkün bir çözüm olarak kaydedildi.

İşte kısaca bu talimatlar. Apache'ye .gz dosyalarıyla nasıl baş edeceğini düz metin olarak işlemesini ve tarayıcıya düz metin olarak göndermesini sağlar.

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

Dosyanın en altına gidin ve ile bölümü bulun Alias /doc/ "/usr/share/doc/" ve böyle görünecek şekilde değiştirin.

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>   

Ardından Apache'yi yeniden başlatın:

sudo apache2ctl restart   

1
Bunun farklı bir çözüm olup olmadığından emin değilim. Sadece ekledik AddEncoding x-gzip gz tgz AddType text/plain .gzbenim için <Directory "/usr/share/doc/">giriş ve ben dekompresyon aslında istemci tarafında işlenir inanıyoruz.
silin

@Alain, hayır farklı bir çözüm değil bu aslında ne yapıyorum.
nelaaro

Bunun en iyi çözüm olduğunu düşünüyorum (dokümanlar arasında gezinmek için bir tarayıcı kullanarak hiçbir şey yenemez), bunun için tam bir web sunucusu kurmak büyük bir engel. Linux'un ( yelpbelki de?) Dokümanları okumak için kullanabileceği herhangi bir yoldan olmasını isterdim .
MestreLion

Güncelleme: çözüm mükemmel çalıştı !!! mod "deflate" zaten kutudan etkinleştirildi ve sudo service apache2 restartstandartlaştırma uğruna son satırı değiştirdim . Son olarak, reades "/" sondaki dikkat edin: bu olmalı olmak localhost / doc / , localhost / doc olmaz çalışır.
MestreLion

-3

.Tex dosyalarını okumamalısınız! Humand tarafından okunabilir biçimdedir, ancak yeniden birleştirme işleminden önce işlenmesi için tasarlanmıştır. Tex2pdf aracını kullanarak .pdf dosyasına dönüştürebilirsiniz.


1
1) LaTeX kaynağını okumak istiyorum . 2) komuttur pdflatex. 3) Bu dosyayı okumadan önce gunzipleme gereği doğurur.
ændrük
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.