内容へ移動
nofuture.tv
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
linux:debian-tips
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== Debian Tips ====== [[http://www.debian.org|Debian]]に特化したTipsを書いています。 ====== パッケージ関連 ====== ===== aptitudeのタスクをコマンドラインからインストール ===== aptitudeにあるタスクをコマンドラインからインストールするには、tasksel-dataパッケージに入ってるdebian-tasks.desc(/usr/share/tasksel/debian-tasks.desc)に書いてあるタスク名を指定してインストールします。 以下のようにすると日本語関係のパッケージと日本語デスクトップ環境がコマンドラインからインストールできます。 # aptitude install japanese japanese-desktop ===== snapshot.debian.orgを使うとき期限切れ(expire)と出た場合の対処 ===== * ネタ元: [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=595801|#595801 - snapshot.debian.org: apt (by default) complains about expired Release files - Debian Bug report logs]] snapshot.debian.orgで昔のリポジトリを使おうとしたとき、こういうメッセージが出る場合があります。 E: Release ファイルが期限切れになっているので、http://snapshot.debian.org/archive/debian/20110203T210912Z/dists/sid/InRelease を無視します (12日 12時間 30分 51秒 以来無効) そんなときはオプションで $ sudo aptitude -o 'Acquire::Check-Valid-Until=false' のようにすると古いリポジトリを利用することができます。 ===== apt-getしたときGPGの公開鍵がなくパッケージの検証できないと言われたら ===== 野良リポジトリを追加してapt-get updateをすると以下のように警告されます。 W: GPG error: http://xxx.example.com example Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY 1234567890ABCDEF W: これらの問題を解決するためには apt-get update を実行する必要があるかもしれません その場合は公開鍵を追加します。 gpg --keyserver pgp.nic.ad.jp --recv-keys (無いと言われた鍵) gpg --armor --export (無いと言われた鍵) | apt-key add - ===== apt-cacherのインストール ===== Debian Liveを作ってて大量にパッケージを取得する必要があるけど、cacheを作ってくれるから、ま、いっかーと放置していました。 しかし、エラーの加減でたまにcacheがヘンになることがあるので、apt-cacherの設定をしてみた。 ==== インストール ==== # aptitude install apt-cacher ==== サーバー側の設定 ==== $ sudo vi /etc/apt-cacher/apt-cacher.conf とりあえず変更するのは、**allowed_hosts**ぐらいかな。 **clean_cache**と**expire_hours**はお好みに応じて変更。 $ sudo vi /etc/default/apt-cacher **AUTOSTART**を0から1に変更しておくこと。 ==== クライアントの設定 ==== apt-lineのアドレスにapt-cacherのあるアドレスを書けばいいらしいけど、そんなことタルくてできないので、**/etc/apt/apt.conf.d/01proxy** なんてファイルを作って Acquire::http::Proxy "http://(apt-cacherマシンのIP/ホスト名):3142"; と書いて普通に使っているとキャッシュがためられます。 ===== apt/aptitudeでrecommendsを勝手にインストールさせない ===== /etc/apt/apt.confに以下の設定を追記します。 APT::Install-Recommends "false"; ===== Debianでダミーパッケージやメタパッケージを作る ===== 参考: [[http://www.debian.org/doc/manuals/apt-howto/ch-helpers.ja.html|APT HOWTO - とても便利な補助プログラム]] debianでダミーパッケージやメタパッケージを作るにはequivsを使います。 * [[http://packages.debian.org/search?keywords=equivs&searchon=names&suite=all§ion=all|Debian -- Package Search Results -- equivs]] 使い方は equivs-control <パッケージ名> で、パッケージ名と同じファイルができるのでこれを編集して依存関係を書いていきます。 書き終われば equivs-build <パッケージ名> でパッケージを作成します。 equivs-build -f <パッケージ名> でパッケージ以外の一式、ファイルが生成されます。 ===== debuildでccacheを使う ===== debianパッケージ作りに試行錯誤しているとき、何度も同じソースをコンパイルするのでccacheでコンパイルが早くなればと思うことがしばしばあります。 そういうときはccacheのパスが通っている事を確認 export PATH="/usr/lib/ccache:$PATH" してから debuild -e PATH -us -uc とするとPATHが上書きされないのでccacheを利用することができます。 ===== autotools使っているソースをcdbsで超手抜きDebianパッケージを作る ===== この作り方は手抜きですが、きちんと作りこめばここからまともなDebianパッケージを作ることができます。 まともにしたい方は[[http://www.debian.org/doc/manuals/maint-guide/index.ja.html|Debian 新メンテナガイド]]や[[http://perso.duckcorp.org/duck/cdbs-doc/cdbs-doc.xhtml|CDBS Documentation]]を読んでください。 ==== 手順 ==== - ソースを展開して、展開したソースディレクトリを//(パッケージ名)-(バージョン)//のようにリネーム。 - 展開したソースのディレクトリに降りて//dh_make -b -r//を実行。 - debianディレクトリができているので、その中にあるrulesファイルを例のように編集する。 - //debuild -us -uc//を実行するとひとつ上のディレクトリにパッケージができあがる。 ==== debian/rulesの編集例 ==== DEB_CONFIGURE_EXTRA_FLAGS以外は自動的に作られます。 #!/usr/bin/make -f include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/autotools.mk # Add here any variable or target overrides you need. DEB_CONFIGURE_EXTRA_FLAGS := (configureのオプションが必要なら、この行を追加して書く。) ====== ネットワーク・サーバー関連 ====== ===== exim4でgmailのsmtpにリレーする ===== exim4のスマートホストを使ってgmailにリレーするように設定してみた。 * 資料: GmailAndExim4 - Debian Wiki: http://wiki.debian.org/GmailAndExim4 ==== debconfを使ってexim4の設定する。 ==== # dpkg-reconfigure exim4-config debconfの設定は以下のとおり。 ^ メール設定の一般的なタイプ: | スマートホストでメール送信SMTP または fetchmail で受信する | ^ システムメール名: | (自分のマシン名) | ^ 入力側SMTP接続をリスンするIPアドレス: | 127.0.0.1 | ^ メールを受け取るその他の宛先: | (空にする) | ^ メールをリレーするマシン: | (空にする) | ^ 送出スマートホストのIPアドレスまたはホスト名: | smtp.gmail.com::587 | ^ 送出するメールでローカルメール名を隠しますか: | いいえ | ^ DNSクエリの数を最小限に止めますか(ダイヤルオンデマンド): | いいえ | ^ ローカルメールの配送方式: | お好みで。わからなければ「mbox形式」 | ^ 設定を小さなファイルに分割しますか: | お好みで。わからなければ「いいえ」 | ==== passwd.clientにgmailのアカウントとパスワードを設定 ==== Debian Wikiそのまんま。''/etc/exim4/passwd.client''の末尾にアカウント(例では''yourAccountName@gmail.com'')、パスワード(例では''y0uRpaSsw0RD'')を設定。 # editor /etc/exim4/passwd.client <file passwd.client> gmail-smtp.l.google.com:yourAccountName@gmail.com:y0uRpaSsw0RD *.google.com:yourAccountName@gmail.com:y0uRpaSsw0RD smtp.gmail.com:yourAccountName@gmail.com:y0uRpaSsw0RD </file> passwd.client のユーザーとグループが root:Debian-exim になっているのを確認して、''update-exim4.conf'' を実行しておしまい。 これでローカルホストに投げるだけでgmailにメールを送ることができた。 ===== ユーザーディレクトリでPHPを動かす ===== セキュリティ上の理由から、デフォルトの状態ではユーザーディレクトリでPHPスクリプトを動かせない設定になっています。 それを変更するには ///etc/apache2/mods-available/php5.conf// の以下の部分をコメントアウトします。 <code> # To re-enable php in user directories comment the following lines # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it # prevents .htaccess files from disabling it. <IfModule mod_userdir.c> <Directory /home/*/public_html> php_admin_value engine Off </Directory> </IfModule> </code> ===== Apache2でsuexecをそれぞれのユーザー権限で使う ===== 各ユーザーの権限でsuexecを使うにはapache2-suexec-customパッケージを使います。 apache2-suexecパッケージはsuexec docrootが/vaw/wwwのwww-dataユーザー決め打ちなので使いません。 # aptitude purge apache2-suexec # aptitude install apache2-suexec-custom a2enmodコマンドを使ってsuexecモジュールを有効にします。 # a2enmod Your choices are: actions alias asis auth_basic auth_digest authn_alias authn_anon authn_dbd authn_dbm authn_default authn_file authnz_ldap authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cern_meta cgi cgid charset_lite dav dav_fs dav_lock dbd deflate dir disk_cache dump_io env expires ext_filter file_cache filter headers ident imagemap include info ldap log_forensic mem_cache mime mime_magic negotiation php5 proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http proxy_scgi reqtimeout rewrite setenvif speling ssl status substitute suexec unique_id userdir usertrack version vhost_alias Which module(s) do you want to enable (wildcards ok)? suexec ←suexecと入力 /etc/apache2/suexec/www-dataというファイルをユーザーの環境に合わせて編集します。 コメントに書いてあるとおり、1行目はsuexecを動かすDocument Rootディレクトリ(suexec-docroot)です。 2行目はCGIを動かすユーザーのディレクトリです。 (コメントは無視しないので、1行目、2行目の位置は絶対です。) 初期設定では/var/wwwディレクトリ以下にある、public_html/cgi-binディレクトリにあるCGIをsuexecで動かす設定になっています。 これを/homeディレクトリにある、public_htmlディレクトリ以下にあるCGIをsuexecで動かすには以下のように変更します。 <file> /home ←/var/wwwを/homeに public_html/ ←public_html/cgi-binをpublic_html/に # The first two lines contain the suexec document root and the suexec userdir # suffix. Both features can be disabled separately by prepending a # character. # This config file is only used by the apache2-suexec-custom package. </file> apache2を再起動します。 # invoke-rc.d apache2 reload ===== DebianのMySQL文字コードの設定 ===== /etc/my.cnfの設定を忘れるのでメモ。 <note important> WordPressなどで絵文字がぶった切られるということで、4バイトUTF-8をサポートしている//utf8mb4//に設定すると良いようです。 <file> character-set-server = utf8mb4 </file> </note> DebuabのMySQLパッケージをインストールしたばかりの状態のデフォルト文字コードは、latin1になってます。 <file> $ mysql -u root -p mysql> status -------------- mysql Ver 14.14 Distrib 5.5.28, for debian-linux-gnu (i686) using readline 6.2 Server characterset: latin1 ← latin1になってる Db characterset: latin1 ← latin1になってる Client characterset: utf8 Conn. characterset: utf8 -------------- </file> ということで変更します。 DebianのMySQL設定のポイントは **/etc/mysql/my.cnf を直接いじらない。** 設定は /etc/mysql/my.cnf から /etc/mysql/conf.d/ 以下がインクルードされて上書きされるようになっているので、/etc/mysql/conf.d/以下に lang.cnf などの名前のファイルを作成しその中に書きます。 <file lang.cnf> [mysqld] character-set-server = utf8 </file> /etc/mysql/conf.d/lang.cnfに設定を書いたら、MySQLを再起動( service mysql restart )して、mysqlコマンドで変わっているか確認します。 <file> mysql> status -------------- mysql Ver 14.14 Distrib 5.5.28, for debian-linux-gnu (i686) using readline 6.2 Server characterset: utf8 ← utf8になった Db characterset: utf8 ← utf8になった Client characterset: utf8 Conn. characterset: utf8 -------------- </file> ====== デスクトップ関連 ====== ===== nouveau(3D対応のオープンソースのNVIDIAドライバ)で3Dを使う ===== Debianで[[http://nouveau.freedesktop.org/wiki/CodeNames|nouveauの対応ビデオカードリスト]]に載っているにもかかわらず3Dが使えない場合は、[[http://packages.debian.org/search?keywords=libgl1-mesa-dri-experimental&searchon=names&suite=all§ion=all|libgl1-mesa-dri-experimental]]パッケージを入れると使えます。 ===== debianのccacheの設定 ===== /usr/share/doc/ccache/README.Debianの転載。 何度も同じソースをコンパイルするときに威力を発揮するccachですが、debianではパスを設定すると有効になります。 .bashrcなどに以下の設定を書いておきます。 export PATH="/usr/lib/ccache:$PATH" ===== reportbugのメール送信にgmailを使う ===== * 参考: http://wiki.debian.org/reportbug debianにはバグ報告ツールとしてreportbugというものがありますが、バグ報告メールを直接メールサーバーを利用して送信します。 その送信するメールサーバーにgmailのSMTPサーバーを設定して、送信する設定。 ==== 方法 ==== - **reportbug --configure**で起動するとセットアップの質問されるので、MTAについて尋ねられたところで「No」と答えて一旦終了。 - ホームディレクトリに //~.reportbugrc// というファイルができているので下のように書き加える。 <file> # name and email setting (if non-default) (名前とメールは設定されていなければ) realname "(名前:英語で)" email "(あなたのGmailアカウント名)@gmail.com" # Send all outgoing mail via the following host smtphost "smtp.gmail.com:587" smtpuser "(あなたのGmailアカウント名)@gmail.com" smtptls </file> あとは普通に $ reportbug (バグを見つけたパッケージ名) で起動してバグ報告を書けばバグレポートを送ることができます。 ====== Debian固有な事 ====== ===== マルチアーキテクチャを使う ===== * Multiarch/HOWTO - Debian Wiki: http://wiki.debian.org/Multiarch/HOWTO アーキテクチャを追加する。 # dpkg --add-architecture <arch> amd64を使っててi386を追加する場合は # dpkg --add-architecture i386 として、apt-get updateをする。削除するときはこう。 # dpkg --remove-architecture <arch> {{tag>debian}}
linux/debian-tips.txt
· 最終更新: 2014/09/27 20:01 by
nogajun
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ