Người dùng thông thường sẽ đọc tài liệu trong / usr / share / doc như thế nào?


43

Gần đây tôi đã biết rằng có một đống tài liệu khổng lồ /usr/share/doc.

Có vẻ như phần lớn được nén, do đó nó không thể truy cập trực tiếp mà không có đặc quyền quản trị:

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

Mặc dù một giải pháp cho vấn đề này là mọi người dùng sẽ sao chép từng mục trong thư mục chính của họ chỉ để đọc nó, nhưng sự sắp xếp này dường như không có lợi cho việc duyệt web thông thường.

Làm thế nào để người bình thường đọc tài liệu này?

Tôi không có xu hướng tin rằng người dùng thông thường dự kiến ​​sẽ cài đặt và duy trì một máy chủ web chỉ để đọc tài liệu văn bản địa phương.


Để rõ ràng, bạn có quan tâm đến việc xử lý bất kỳ tài liệu nào trong thư mục / usr / share / doc hoặc chỉ các thư mục TeX / LaTeX không?
belacqua

OK, một câu hỏi nữa - bạn có cần xử lý các tệp .tex thành dvi hoặc bất cứ điều gì không, hoặc chỉ cần nhìn vào mã nguồn?
belacqua

1
Tôi đang hỏi về tài liệu /usr/share/docnói chung và đặc biệt chú ý đến việc quan sát rằng phần lớn tài liệu được lưu trữ ở định dạng nén. Nếu có bất kỳ tài liệu nào được lưu dưới dạng LaTeX chưa được sắp xếp, tôi vẫn chưa gặp phải nó. Ví dụ cụ thể mà tôi đã tham chiếu ở trên là mẫu LaTeX từ gói texlive-latex-extra-doc.
ændrük


1
Askubfox.com/questions/24072/ trên . Tôi nghĩ rằng đây là giải pháp tốt nhất trong tất cả một thiết lập và nó hoạt động ở đó sau đó.
nelaaro

Câu trả lời:


6

Hầu hết đã được nói và giải thích rất độc đáo bởi jgbelacqua để sử dụng trong thiết bị đầu cuối. Chỉ cần thêm phần này cho những người ở trên trình quản lý máy tính để bàn:

Từ máy tính để bàn đồ họa (ở đây là Gnome) cách dễ nhất để đọc tài liệu /usr/share/doclà (nhấp chuột đôi) mở tệp được nén bằng trình quản lý lưu trữ tiêu chuẩn của bạn (ở đây Con lăn tệp) từ đó bạn có thể (nhấp hai lần) mở và đọc chúng trong trình soạn thảo tiêu chuẩn của bạn (ở đây là Gedit). Không có quyền ghi cần thiết miễn là bạn không giải nén các tệp.


Giải pháp tuyệt vời. Đây thực sự là lý do tại sao mọi người sử dụng những thứ như Ubuntu, Gnome, vv .. Loại nhiệm vụ này được thực hiện dễ dàng hơn.
belacqua

20

Có ít nhất hai vấn đề ở đây:

  1. đọc các tập tin .gz không đau
  2. quyền trên thư mục
  3. (tùy chọn cho các tập tin tex)

Đối với # 1 , có một số ứng dụng sẽ đối phó với các tệp được nén một cách liền mạch. Một cặp vợ chồng mà bạn có thể sử dụng là lessvim.

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

viewlà một bí danh cho vim -R, chỉ nói để mở tệp chỉ đọc.

Vào thời xưa, trước khi cài đặt ít hơn trên hệ thống của tôi, tôi sẽ sử dụng gzcatvà chuyển đầu ra sang một tiện ích khác. Rõ ràng, hiện tại nó chỉ được gọi zcattrên Ubuntu, nhưng bạn sẽ sử dụng nó như thế này, vd:

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

zcat vẫn có sẵn và sử dụng nó để dẫn nội dung nén ở đâu đó có thể hữu ích trong một số trường hợp. (Đối với các tình huống có tệp .bz2, bzcatkhả dụng.)

Đối với # 2 , tất cả các tệp mà tôi đã xem trong / usr / share / doc đều nằm trong các thư mục có quyền + rx khác, nghĩa là tất cả người dùng có thể tìm kiếm các thư mục (ví dụ: liệt kê nội dung) và đọc các tệp bên trong. Những gì bạn không thể làm (vì chỉ có quyền root mới có quyền ghi), là tạo tệp. Bởi vì bạn đang cố giải nén vào thư mục đó, tôi tưởng tượng nó đang cho phép bạn bị từ chối vì bạn đã đọc nhưng không viết quyền theo mặc định.

Đối với # 3, tôi đoán bạn sử dụng các tệp .tex nhiều hơn tôi. Nhưng đây là một cách để đối phó với chúng mà không cần sao chép vào nhà hoặc tệp tạm thời. Đối với điều này, bạn sẽ tạo ra một đường ống có tên, nhưng bạn có thể sử dụng lại cho các nhu cầu xử lý và đường ống tex khác của bạn. Nó nên đi như thế này:

  • zcat hoặc gzcat văn bản
  • ... Và chuyển nó đến bộ xử lý TeX của bạn
  • ... và gửi nó đến ống tên của bạn (ở đây, tôi sẽ gọi cho anh ấy pipey)
  • ... và sau đó trong một màn hình riêng biệt lấy đầu ra của bạn từ pipey
  • ... và gửi nó đến một quy trình hiển thị dvi.

Rõ ràng bạn có thể thay đổi các bước này nếu bạn sử dụng các tiện ích khác hoặc tốt hơn các tiện ích ở đây.

Ví dụ của tôi sẽ sử dụng mkfifotiện ích để tạo đường ống có tên , pipey. Các tập tin mục tiêu để xử lý là /usr/share/doc/gdb/refcard.tex.gz. Bạn sẽ cần hai dòng lệnh shell có sẵn (thông qua thiết bị đầu cuối, Alt + F2 hoặc tuy nhiên).

Bạn sẽ nhập vào thiết bị đầu cuối một:

mkfifo pipey

Bây giờ bạn có một ống tên là dai dẳng. Bạn có thể sử dụng ls -lđể nhìn trộm nó.

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

Lưu ý rằng lệnh này sẽ không quay trở lại cho đến khi bạn làm điều gì đó với đầu ra đi đến đường ống được đặt tên.

Bây giờ, trong thiết bị đầu cuối hai, bạn sẽ gõ: tex pipey | xdvi

Và nó hoạt động (tốt, dù sao ở đây). Quá trình có thể được tinh chỉnh cho đầu ra đẹp hơn, nhưng nếu bạn đang tìm kiếm nhanh chóng và tương đối không lộn xộn, đó là một cách để làm điều đó.


1
Kiểm tra giải pháp của tôi, tôi nghĩ bạn sẽ ấn tượng. Askubfox.com/questions/24072/ từ
nelaaro

1
+1 cho chi tiết. Đối với tôi, như được đề cập bởi @nelaar, tôi chỉ cần thêm một vài lệnh vào <Directory "/usr/share/doc/">khai báo thư mục Apache (thường là trong /etc/apache2/sites-enabled/000-default) và tôi tin rằng việc giải nén được xử lý bởi chính các trình duyệt. ( AddEncoding x-gzip gz tgzAddType text/plain .gz).
Xóa

Mặc dù đây là một bài học tuyệt vời và chi tiết về nhiều lệnh hữu ích, nhưng đây hầu như không phải là một giải pháp tốt cho cách người dùng thông thường sẽ đọc tài liệu hệ thống. Đối với Ubuntu, Gnome của yelp hoặc Debian dwwwsự nhất đau miễn phí, phương pháp dễ dàng. Câu trả lời của tôi mô tả câu hỏi sau: Askubfox.com/a/52419/11015
MestreLion

1
@MestreLion Một "người dùng thông thường" theo nghĩa thực tế nhất không biết rằng các tệp thậm chí còn ở đó. Tôi nghĩ giải pháp đơn giản nhất là giải pháp tôi đã đề cập đầu tiên - sử dụng less. Điều này có lợi thế bổ sung là được cài đặt theo mặc định trên mọi hệ thống * nix hiện đại. Đối với người dùng biết các tệp đang ở đó và muốn tham khảo chúng nhiều hơn một vài lần trong năm, cài đặt một cái gì đó như dwww nghe có vẻ là một giải pháp tuyệt vời. Bản thân tôi, trong một tình huống khó khăn, tôi có thể không nhớ dwww, nhưng tôi sẽ nhớ các lệnh cơ bản như 'ít hơn'. Hoặc, như Takkat đã nói, Nautilus / fileroller / vv ..
belacqua

13

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

Một hệ thống Linux điển hình có tài liệu ở nhiều định dạng (trang thủ công, tệp Thông tin, README, v.v.). dwww cho phép truy cập tất cả những thứ 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 các 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 tài liệu đã cài đặt và chuyển đổi tất cả các tài liệu thành HTML. Việc chuyển đổi được thực hiện khi người dùng yêu cầu tài liệu.

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

    sudo a2enmod cgi
    sudo service apache2 restart
    
  • Mở trình duyệt của bạn và trỏ đến: http: // localhost / dwww /

  • Làm xong!

Tất cả các infotrang, mantrang, /usr/share/doctệp mô tả gói của bạn ở một nơi duy nhất! Trang web tài liệu cá nhân của bạn!


Sử dụng phương pháp này. Đó là ít đau đầy đủ. Và bạn có thể tìm kiếm mọi thứ rất nhanh vì bạn sẽ có một hộp tìm kiếm như google.
Người học việc tò mò

1
Đối với khách truy cập trong tương lai, lưu ý rằng điều này yêu cầu kích hoạt CGI và khởi động lại dịch vụ Apache: askubfox.com/questions/581118/ mẹo
Sergiy Kolodyazhnyy

7

gunzip file.gznỗ lực để giải nén file.gzđể file, loại bỏ file.gz. Đó là lý do tại sao bạn gặp lỗi "Quyền bị từ chối", bạn không được phép viết vào /usr/share/doc. Để có được nội dung của một tập tin, sử dụng gunzip -c file.gzhoặc zcat file.gz.

Đọc các tệp văn bản được nén bằng gzip có thể được thực hiện với zless. Như tên của nó có thể gợi ý, nó chỉ là less, nhưng đối với các tệp được nén bằng gzip.

Ví dụ sử dụng:

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

Các .gzhậu tố có thể được bỏ qua cũng như:

zless /usr/share/doc/bash/NEWS

Trên các hệ thống gần đây, tôi không phải chỉ định zless, vì lesssẽ tự động xử lý nó.
belacqua

1
@belacqua Đúng vậy, ngày nay tôi cũng làm như vậy. Tôi đoán nó có liên quan đến các biến LESSOPENLESSCLOSEmôi trường.
Lekensteyn

5

Đầu tiên cài đặt apache2

sudo apt-get install apache2 apache2-doc  

apache2-doclà trường hợp đặc biệt ở đây. Nó cho phép bạn duyệt tài liệu /usr/share/doc/của bạn thông qua trình duyệt web của bạn. fro http://localhost/doc/.

Điều này không làm việc đúng mặc dù. Bạn cần thay đổi cấu hình của Apache để giải nén nó và hiển thị các tệp * .gz dưới dạng văn bản thuần túy.

Tôi đã đăng lên Stack Overflow để có cách sử dụng Apache để hiển thị nội dung của các tài liệu * .gz trong /usr/share/doc/thư mục. Đây là những gì đã được đăng là giải pháp có thể.

Dưới đây là những hướng dẫn ngắn gọn. Nó cho Apache biết cách xử lý các tệp .gz để xử lý chúng dưới dạng văn bản thuần túy và gửi chúng đến trình duyệt dưới dạng văn bản thuần túy.

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

Đi đến dưới cùng của tập tin và tìm phần với Alias /doc/ "/usr/share/doc/" và thay đổi nó để trông như thế này.

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>   

Sau đó khởi động lại Apache:

sudo apache2ctl restart   

1
Tôi không chắc chắn nếu đây là một giải pháp khác. Tôi vừa mới thêm vào mục nhập AddEncoding x-gzip gz tgz AddType text/plain .gzcủa mình <Directory "/usr/share/doc/">và tôi tin rằng việc giải nén thực sự được xử lý ở phía khách hàng.
Xóa

@ Alain, không, nó không phải là một giải pháp khác, đây thực chất là những gì tôi đang làm.
nelaaro

Mặc dù tôi nghĩ rằng đây là giải pháp tốt nhất (không có gì có thể đánh bại bằng cách sử dụng trình duyệt để duyệt các tài liệu), nhưng nó là một sự quá mức cần thiết để cài đặt toàn bộ máy chủ web chỉ vì điều đó. Tôi thực sự mong muốn Linux ( yelpcó thể?) Có bất kỳ cách nào khác để đọc tài liệu.
MestreLion

Cập nhật: giải pháp hoạt động hoàn hảo !!! mod "deflate" đã được kích hoạt ngoài hộp và tôi đã thay đổi dòng cuối cùng để sudo service apache2 restartphục vụ cho mục đích độc lập. Cuối cùng nhưng không kém phần quan trọng, người đọc phải lưu ý đến dấu "/": nó phảilocalhost / doc / , localhost / doc sẽ không hoạt động.
MestreLion

-3

Bạn không nên đọc các tập tin .tex! Nó ở định dạng có thể đọc được, nhưng nó được thiết kế để được xử lý trước khi tăng dần. Bạn có thể sử dụng công cụ tex2pdf để chuyển đổi nó thành .pdf.


1
1) Tôi muốn đọc nguồn LaTeX. 2) Lệnh là pdflatex. 3) Điều này là tiếp tuyến đối với vấn đề cần phải nén tệp trước khi đọc.
ændrük
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.