最近、/usr/share/doc
に膨大な量のドキュメントがあることを知りました。
管理者権限がなければ直接アクセスできないように、多くのファイルがgzip圧縮されているようです。
$ gunzip examples/letter.tex.gz
gzip: examples/letter.tex: Permission denied
これに対する1つの解決策は、すべてのユーザーがホームディレクトリ内の各アイテムを複製してそれを読み取ることですが、この配置は通常のブラウジングにはほとんど役立ちません。
通常の人はこのドキュメントをどのように読みますか?
一般的なユーザーは、ローカルのテキストドキュメントを読むためだけにWebサーバーをインストールして保守することを期待されているとは思わない。
ほとんどは、ターミナルで使用するために jgbelacqua で説明され、非常にうまく説明されています。デスクトップマネージャーを使用しているユーザー向けにこれを追加するだけです。
グラフィカルデスクトップ(ここではGNOME)から/usr/share/doc
からドキュメントを読む最も簡単な方法は、(ダブル)クリックして、(ダブル)クリックできる標準のアーカイブマネージャー(ここではファイルローラー)で圧縮ファイルを開くことです標準エディタ(ここではGedit)で開いて読みます。ファイルを解凍しない限り、書き込み権限は不要です。
ここには少なくとも2つの問題があります。
#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は引き続き使用できます。zcatを使用して圧縮コンテンツをどこかにパイプすることは、場合によっては便利です。 (.bz2ファイルの状況では、bzcat
が使用可能です。)
#2の場合、/ usr/share/docの下にあるすべてのファイルは、other + rx許可を持つディレクトリにあります。つまり、すべてのユーザーがディレクトリを検索できます(たとえば、コンテンツの一覧表示)内部のファイルを読み取ります。できないのは(デフォルトではrootのみが書き込み許可を持っているため)、ファイルを作成することです。あなたはそのディレクトリに解凍しようとしているので、デフォルトでは読み取り権限は持っているが書き込み権限は持っていないので拒否された権限を与えていると思います。
#3については、私よりも.texファイルを使用していると思います。しかし、ここでは、ホームまたは一時ファイルにコピーせずにそれらに対処する1つの方法を示します。このために、名前付きパイプを作成しますが、他のtexパイピングと処理のニーズにそれを再利用できます。次のようになります。
pipey
と呼びます)ここにあるものとは異なる、またはより良いユーティリティを使用する場合、これらの手順を明らかに変更できます。
私の例では、mkfifo
ユーティリティを使用して、名前付きパイプpipey
を作成します。処理するターゲットファイルは/usr/share/doc/gdb/refcard.tex.gz
です。 2つのシェルコマンドラインを利用できる必要があります(ただし、ターミナル、Alt + F2、または経由)。
ターミナル1を入力します。
mkfifo pipey
これで永続的な名前付きパイプができました。 ls -l
を使用してそれを覗くことができます。
zcat /usr/share/doc/gdb/refcard.tex.gz | tex > pipey
このコマンドは、名前付きパイプに送られた出力で何かをするまで戻りません。
次に、ターミナル2で次のように入力します:tex pipey | xdvi
そして、それは機能します(まあ、とにかくここで)。プロセスはよりきれいな出力に向けて改良できますが、迅速で比較的混乱のないものを探しているなら、それはそれを行う1つの方法です。
答えるには手遅れかもしれませんが、最良の解決策を見つけました(使いやすさと完全性の両方)
典型的なLinuxシステムには、多くの形式(マニュアルページ、Infoファイル、READMEなど)のドキュメントがあります。 dwwwを使用すると、同じインターフェイスであるWWWブラウザを介してこれらすべてにアクセスできます。これにより、ドキュメントが使いやすくなります。
dwwwは、DebianシステムのすべてのオンラインドキュメントへのWebインターフェイスです。インストールされているすべてのドキュメントを一覧表示するいくつかのWebページを構築し、すべてのドキュメントをHTMLに変換します。ユーザーがドキュメントを要求すると、変換が行われます。
CGIモジュールを有効にします。これは、最近のUbuntu/Apacheではデフォルトで無効になっています。
Sudo a2enmod cgi
Sudo service Apache2 restart
ブラウザーを開き、次をポイントします。 http:// localhost/dwww /
できた!
すべてのinfo
ページ、man
ページ、/usr/share/doc
ファイルandパッケージの説明を1か所で!あなたの個人的なドキュメントのウェブサイト!
gunzip file.gz
はfile.gz
をfile
に解凍しようとし、file.gz
を削除します。そのため、「Permission denied」エラーが表示され、/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
最初にApache2をインストールします
Sudo apt-get install Apache2 Apache2-doc
Apache2-doc
は、ここでは特別なケースです。 Webブラウザを介してドキュメント/usr/share/doc/
を閲覧できます。 http://localhost/doc/
から。
ただし、これは正しく機能しません。 Apacheの構成を変更して、*。gzファイルを圧縮解除してプレーンテキストとして表示するようにする必要があります。
Stack Overflowに投稿しました Apacheを使用して、/usr/share/doc/
ディレクトリ内の* .gzドキュメントのコンテンツを表示する方法を取得します。これは、可能な解決策として投稿されたものです。
これらの手順を簡単に説明します。 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