ただのメモ
http://supportwiki.cisco.com/ViewWiki/index.php/What_is_WPA_mixed_mode_operation,_and_how_do_I_configure_it_in_my_AP%3F
2009年7月26日日曜日
Remove pppoeconf
ひと月ぶりの更新。いつものとおり、一番の読者ターゲットは自分自身。
----------------
Ubuntuでフレッツ光のPPPoE接続をするためには、pppoeconfというコマンドを使うと自動でネットワークの設定ファイルを書き換えてくれます。
しかし、先日無線LANのブロードバンドルータを購入し、この設定が不要になりました。
さて、ここで面倒なことが。
pppoeconfは設定ファイルへの書き込みは行ってくれても、設定を差し戻すのはやってくれないみたい。
ネットワーク接続をUbuntuデフォルトのNetworkManagerに返えしてやるには、一部のファイルを直接弄ってやる必要があります。(他に手段があったらごめんなさい)
/etc/network/interfaces
pppoeconfを使った後は、次みたいな感じになってると思います。
これで、あとは再起動。
通知パネルのNetworkManagerのアイコンを見て、元の状態に戻っているか確認しましょう。
とりあえずここまででもいいのですが、まだPPPoEの認証情報が設定ファイルに残っています。そこらへんも消してしまいたい、ということもあるでしょう。
私が気づいた限りでは、
/etc/ppp/pap-secrets
/etc/ppp/chap-secrets
に書かれていました。(他にもあるかも)
環境:Ubuntu9.04 Desktop
<追記>
「networking 書き換えただけじゃあ、init.dとかの初期処理でppp走っちゃってんじゃね?」と思ったけど、上の記事のを行う前に、ppp 関連のパッケージをごっそりpurgeしちゃったので検証しませんでした。
----------------
Ubuntuでフレッツ光のPPPoE接続をするためには、pppoeconfというコマンドを使うと自動でネットワークの設定ファイルを書き換えてくれます。
しかし、先日無線LANのブロードバンドルータを購入し、この設定が不要になりました。
さて、ここで面倒なことが。
pppoeconfは設定ファイルへの書き込みは行ってくれても、設定を差し戻すのはやってくれないみたい。
ネットワーク接続をUbuntuデフォルトのNetworkManagerに返えしてやるには、一部のファイルを直接弄ってやる必要があります。(他に手段があったらごめんなさい)
/etc/network/interfaces
pppoeconfを使った後は、次みたいな感じになってると思います。
auto lo iface lo inet loopback auto dsl-provider iface dsl-provider inet ppp pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf provider dsl-provider auto eth0 iface eth0 inet manualデフォルトの状態は最初の2行だけです。それ以降の行はざっくり削除します。
これで、あとは再起動。
通知パネルのNetworkManagerのアイコンを見て、元の状態に戻っているか確認しましょう。
とりあえずここまででもいいのですが、まだPPPoEの認証情報が設定ファイルに残っています。そこらへんも消してしまいたい、ということもあるでしょう。
私が気づいた限りでは、
/etc/ppp/pap-secrets
/etc/ppp/chap-secrets
に書かれていました。(他にもあるかも)
環境:Ubuntu9.04 Desktop
<追記>
「networking 書き換えただけじゃあ、init.dとかの初期処理でppp走っちゃってんじゃね?」と思ったけど、上の記事のを行う前に、ppp 関連のパッケージをごっそりpurgeしちゃったので検証しませんでした。
2009年6月26日金曜日
Run Emesene and Skype quietly.
私は、メッセンジャーとしてEmesene、加えてSkypeも使っていて、ログイン時に自動起動するようにしています。
自動起動させるには、パネルメニューの
システム > 設定 > 自動起動するアプリ
で、好きなアプリの起動コマンドを追加してやれば良い。
しばらくはそれで満足していたのだけれども、この設定のままだとログインの度にEmeseneとSkypeのウィンドウが現れる。。。
別にウィンドウはいらないのよ。パネルにアイコン出しておいてくれればいいだけなのよ。
というわけで、EmeseneとSkypeでウィンドウを表示させずに起動する方法
Skypeの場合はわざわざ記事にするほどでもない気がするほど単純。
Skypeの設定ウィンドウを見れば、もうそこには「システムトレイ内で最小化したSkypeを開始」のチェックボックスが待っています。
Emeseneでは、起動オプションに「-m」または「--minimized」を付けてやると、最小化した状態で起動してくれます。
(ver 1.0だと、GNOMEパネルの通知スペースにしまわれた状態・ver 1.5だと、ウィンドウが最小化した状態)

ちなみに、私 Pidgin使ってません。。。
自動起動させるには、パネルメニューの
システム > 設定 > 自動起動するアプリ
で、好きなアプリの起動コマンドを追加してやれば良い。
しばらくはそれで満足していたのだけれども、この設定のままだとログインの度にEmeseneとSkypeのウィンドウが現れる。。。
別にウィンドウはいらないのよ。パネルにアイコン出しておいてくれればいいだけなのよ。
というわけで、EmeseneとSkypeでウィンドウを表示させずに起動する方法
Skypeの場合はわざわざ記事にするほどでもない気がするほど単純。
Skypeの設定ウィンドウを見れば、もうそこには「システムトレイ内で最小化したSkypeを開始」のチェックボックスが待っています。

Emeseneでは、起動オプションに「-m」または「--minimized」を付けてやると、最小化した状態で起動してくれます。
(ver 1.0だと、GNOMEパネルの通知スペースにしまわれた状態・ver 1.5だと、ウィンドウが最小化した状態)

ちなみに、私 Pidgin使ってません。。。
Show update notification icon in GNOME Panel with Ubuntu 9.04
先日やっとUbuntu 9.04をクリーンインストール。
アップデートの通知方法が変わって、以前のようにパネルの通知領域にアイコンが出るのではなく、いきなりアップデートマネージャが開くようになりましたが、以前のように使いたい、という人は結構いるんではないかと
JauntyJackalope/ReleaseNotes/ja アップデートの通知方法が変更されました
https://wiki.ubuntu.com/JauntyJackalope/ReleaseNotes/ja#%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%81%AE%E9%80%9A%E7%9F%A5%E6%96%B9%E6%B3%95%E3%81%8C%E5%A4%89%E6%9B%B4%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F
上記のように説明されてはいますが、「コマンド一発叩けばいいよ」でUbuntuがターゲットにしている筈のユーザ全員が満足できるわけが無い!そんなのUbuntuの信条じゃないやい!と勝手に考えて、コマンドを使わない別の方法を紹介します。
1. パネルメニューで
アプリケーション > システムツール > 設定エディタ
を起動。(設定エディタが見当たらないなら、パネルメニュー上で右クリック「メニューの編集」で、設定エディタの「表示」にチェックを入れましょう)
2. 設定エディタで/apps/update-notifier/を見つけて、auto_launchのチェックを外す。
(これと同じことをコマンドでやるのが、リリースノートで紹介されている方法なのです。)
3. 次回ログインからパネル右上の通知領域に、8.10以前のバージョンの様に通知アイコンが表示されます。
・おまけ

通知アイコンを右クリックした時に現れる「通知の表示」チェックボックスですが、このチェックを外すと、/apps/update-notifier/に勝手にno_show_notificationsとdefault_actionという値が増えます。どちらも、8.10以前では標準で使ってた値なんでしょうが、9.04からはスキーマすら無くなってます。
auto_launch:false
no_show_notifications:true
の状態にしておくと、アップデート通知が分からなくなってしまいますのでご注意を。(default_actionの値にもよるかな?)
アップデートの通知方法が変わって、以前のようにパネルの通知領域にアイコンが出るのではなく、いきなりアップデートマネージャが開くようになりましたが、以前のように使いたい、という人は結構いるんではないかと
JauntyJackalope/ReleaseNotes/ja アップデートの通知方法が変更されました
https://wiki.ubuntu.com/JauntyJackalope/ReleaseNotes/ja#%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%81%AE%E9%80%9A%E7%9F%A5%E6%96%B9%E6%B3%95%E3%81%8C%E5%A4%89%E6%9B%B4%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F
上記のように説明されてはいますが、「コマンド一発叩けばいいよ」でUbuntuがターゲットにしている筈のユーザ全員が満足できるわけが無い!そんなのUbuntuの信条じゃないやい!と勝手に考えて、コマンドを使わない別の方法を紹介します。
1. パネルメニューで
アプリケーション > システムツール > 設定エディタ
を起動。(設定エディタが見当たらないなら、パネルメニュー上で右クリック「メニューの編集」で、設定エディタの「表示」にチェックを入れましょう)

2. 設定エディタで/apps/update-notifier/を見つけて、auto_launchのチェックを外す。
(これと同じことをコマンドでやるのが、リリースノートで紹介されている方法なのです。)3. 次回ログインからパネル右上の通知領域に、8.10以前のバージョンの様に通知アイコンが表示されます。

・おまけ

通知アイコンを右クリックした時に現れる「通知の表示」チェックボックスですが、このチェックを外すと、/apps/update-notifier/に勝手にno_show_notificationsとdefault_actionという値が増えます。どちらも、8.10以前では標準で使ってた値なんでしょうが、9.04からはスキーマすら無くなってます。
auto_launch:false
no_show_notifications:true
の状態にしておくと、アップデート通知が分からなくなってしまいますのでご注意を。(default_actionの値にもよるかな?)
2009年6月20日土曜日
Comix accepts directory as a command line argument
Ubuntuのリポジトリにも入ってる、Comixという漫画ビューアを使っています。
そして、つい先日やっと重い腰を上げてUbuntu9.04をクリーンインストールしたのです。
もちろん、Comixも再びインストールしたのですが、以前ならば端末で
$ comix ディレクトリ
とすれば、ディレクトリ内の画像を表示してくれたのに、何故か「ディレクトリは開けません」とエラーを吐かれてしまうようになっていました。
http://comix.sourceforge.net/changelog.html
Comixのchangelogを見ると、Ubuntu8.10で提供されていたver3系ではディレクトリを指定してやることが可能になっていたようです。
しかし、Ubuntu9.04で提供されているComixはver4.0.1です。changelogを見ると、ディレクトリ指定ができるのは、ver4系では4.0.3からだというのが分かります。
http://sourceforge.net/tracker/index.php?func=detail&aid=2604916&group_id=146377&atid=764987
このページを参考に、ディレクトリを弾いているコードを書き換えてやってもいいのですが、実はgetdebに最新版のdebファイルが上がってるのでそっちを使いましょう。
(それと、上記ページの書き換えるように指定しているソースコードはちょこっと間違ってます)
http://www.getdeb.net/
getdebは、アクセスしたユーザのUbuntuのバージョンを判別します。9.04なら9.04に対応しているとして登録されているパッケージしか出てきません。「comix」で検索しても、見つからない、と言われますが、その画面の下に検索対象のバージョンを変更する案内が出てますので、8.10(Ubuntu Intrepid)を選べば、comixが出てきてくれます。(8.10向けとして登録されていますが、9.04でも問題なく動きます。)
そして、つい先日やっと重い腰を上げてUbuntu9.04をクリーンインストールしたのです。
もちろん、Comixも再びインストールしたのですが、以前ならば端末で
$ comix ディレクトリ
とすれば、ディレクトリ内の画像を表示してくれたのに、何故か「ディレクトリは開けません」とエラーを吐かれてしまうようになっていました。
http://comix.sourceforge.net/changelog.html
Comixのchangelogを見ると、Ubuntu8.10で提供されていたver3系ではディレクトリを指定してやることが可能になっていたようです。
しかし、Ubuntu9.04で提供されているComixはver4.0.1です。changelogを見ると、ディレクトリ指定ができるのは、ver4系では4.0.3からだというのが分かります。
http://sourceforge.net/tracker/index.php?func=detail&aid=2604916&group_id=146377&atid=764987
このページを参考に、ディレクトリを弾いているコードを書き換えてやってもいいのですが、実はgetdebに最新版のdebファイルが上がってるのでそっちを使いましょう。
(それと、上記ページの書き換えるように指定しているソースコードはちょこっと間違ってます)
http://www.getdeb.net/
getdebは、アクセスしたユーザのUbuntuのバージョンを判別します。9.04なら9.04に対応しているとして登録されているパッケージしか出てきません。「comix」で検索しても、見つからない、と言われますが、その画面の下に検索対象のバージョンを変更する案内が出てますので、8.10(Ubuntu Intrepid)を選べば、comixが出てきてくれます。(8.10向けとして登録されていますが、9.04でも問題なく動きます。)
2009年6月15日月曜日
GNOME Panel config

パネルメニューまわりの設定の設定について調べてたら、なんだかちょこっと複雑っぽいので、まとめ。
デフォルトだと左上にある「アプリケーション」メニュー内の、各種ショートカットの実体は
/usr/share/applications/ 以下の.desktopファイルとしてシステムにインストールされている(/usr/local/share/applications/ にも入ってたりする)。
ただし、「アプリケーション」メニュー上で右クリックの「メニューの編集」から編集を行うと、
~/.local/share/applications/ にシステム側から.desktopファイルがコピーされて、それに編集内容が書き込まれる。さらに、メニューで削除をしても、.desktopファイル自体は残りつづけて、ファイル中のHidden値がtrueに設定するのでメニューに現れなくなるだけ。
(ちなみに、「メニューの編集」ウィンドウは実は alacarte というアプリケーション。参考:http://mstssk.blogspot.com/2008/11/gnome-panel-2alacarte.html)
パネル上のランチャショートカットやアプレットは、GNOME Panelの設定として~/.gconf/apps/panel/以下に保存される。これらの設定にアクセスするには設定エディタ(gconf-editor)を使う。
ただし、パネルの設定のデフォルト値は /etc/gconf/schemas/panel-default-setup.entries に記述されている。
パネル上のランチャショートカットの設定内容は、起動するアプリケーションの実行ファイルを直接指定している訳ではなく。前述の.desktopファイルを指定している。設定は/apps/panel/objects/以下にアイコンごとにある。
パネル上のランチャショートカットを右クリックから編集すると、編集内容を反映した.desktopファイルは ~/.local/share/applications/ ではなく
~/.gnome2/panel2.d/default/launchers/
以下に保存される。
システムや~/.local/share/applications/以下の.desktopファイルを指定している時は、フルパスが/apps/panel/objects/以下の各アイコンごとの設定項目に書き込まれるが、編集した後の~/.gnome2/panel2.d/default/launchers/以下のファイルを指定している時は、ファイル名のみが書き込まれている(ただ、firefox.desktopとだけ書かれていたりする)。

2009年6月6日土曜日
List directories in current directory.
「echo *」を実行するとどうなる?
http://itpro.nikkeibp.co.jp/article/COLUMN/20090602/331173/
を実行すると、あんなことが出来るらしい。
じゃあ、
とすると……
実はlsだとこれ出来ないんだよね。まさか、echoで代替出来るとは。
参考(その他の方法)
linuxでディレクトリだけを表示させる方法 - 教えて!goo
http://oshiete1.goo.ne.jp/qa2760104.html
<追記>
「ls -d */」で出来るそうです。。。嘘付いてごめんなさい。
コメントくれた方ありがとうございました。
http://itpro.nikkeibp.co.jp/article/COLUMN/20090602/331173/
echo *を実行すると、あんなことが出来るらしい。
じゃあ、
echo */とすると……
参考(その他の方法)
linuxでディレクトリだけを表示させる方法 - 教えて!goo
http://oshiete1.goo.ne.jp/qa2760104.html
<追記>
「ls -d */」で出来るそうです。。。嘘付いてごめんなさい。
コメントくれた方ありがとうございました。
2009年6月1日月曜日
Configure shortcut key with Windows Key(Super Key).
Windowsで私がけっこう使っているWin+Mのショートカット。開いているウィンドウをすべて一発で最小化して、デスクトップを表示してくれます。
Ubuntuでも同じ機能がちゃんと付いていて、デフォルトでは下側パネルの左端にアイコンがあり、これをクリックするか、Ctrl+Alt+Dで出来ます。
ただ、Win+Mに慣れちゃってるので、Ctrl+Alt+Dはなんか押しづらい。。。
というわけで、Win+Mに変えてしまえばいいじゃん、と思い立ったが吉日。
パネルメニューの システム > 設定 > キーボード・ショートカット から設定だぁッ、、、あれ? 出来ない。。。

(WinキーはUbuntuではSuperキーという表示になっている。)
左Winキーを押しながらMを押そうとするんだけど、この設定ツールだとWinキーはCtrlやAltのような組み合わせ用のキーとしては認識してくれず、ほかのアルファベットキーなどのように扱われてしまう。
どうしたもんかと思ったら、launchpadで対処法が投稿されてた。
https://bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/194979/comments/16
ホーム・フォルダを開くショートカットの設定方法を説明してます。
訳注:私の環境だと、設定項目は英語のままで"Super is mapped to Win-keys"と表示されていましたが、一応ここも訳しました。
私は極力少ない設定で済ませたいので、方法2を選択。
上記の解説だと、"command_1"にnautilusコマンドを割り当ててますが、デスクトップを表示させる動作は"show_desktop"として既に値が存在しているので、そいつを編集して<Super>Mとしてやります。

ちなみに、"ホーム・フォルダを開く”の設定エディタ上の項目は "/apps/gnome_settings_daemon/keybindings" にあります。けど、そこに"<Super>E"としてやってもショートカットは動作してくれず、しかも勝手に画面テーマが切り替わるという現象が。。。
※ Ubuntu 8.10環境で確認しました。バージョンが違うと設定の位置が違ってたりするのはご愛嬌。
Ubuntuでも同じ機能がちゃんと付いていて、デフォルトでは下側パネルの左端にアイコンがあり、これをクリックするか、Ctrl+Alt+Dで出来ます。
ただ、Win+Mに慣れちゃってるので、Ctrl+Alt+Dはなんか押しづらい。。。
というわけで、Win+Mに変えてしまえばいいじゃん、と思い立ったが吉日。
パネルメニューの システム > 設定 > キーボード・ショートカット から設定だぁッ、、、あれ? 出来ない。。。

(WinキーはUbuntuではSuperキーという表示になっている。)
左Winキーを押しながらMを押そうとするんだけど、この設定ツールだとWinキーはCtrlやAltのような組み合わせ用のキーとしては認識してくれず、ほかのアルファベットキーなどのように扱われてしまう。
どうしたもんかと思ったら、launchpadで対処法が投稿されてた。
https://bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/194979/comments/16
ホーム・フォルダを開くショートカットの設定方法を説明してます。
方法 1:
========
1)システム->設定->キーボード->レイアウト->Other options
Alt/Win キーの挙動: "Meta を両側の Windows キーに割り当て" を選ぶ。
2)システム->設定->キーボード・ショートカット
"ホーム・フォルダを開く" を選び、好きなキーの組み合わせを押す。
例えば、Win+Eなら"Mod4+E"と表示されるでしょう。
方法 2:
========
1)"設定エディタ(gconf-editor)"を起動する。
2)"/apps/metacity/global_keybindings" で
"run_command_1" の値を "<Super>E" に変更。
3)"/apps/metacity/keybinding_commands" で
"command_1" の値を "nautilus" に変更。
(これは、Alt/Winキーの挙動が"デフォルト"か"Meta を両側の Windows キーに割り当て"(訳注)に設定されている場合のみ有効です。方法1を見て、適宜対応してください。)
方法 3 (コマンドラインでの操作):
====================================
gconftool-2 --type string --set /apps/metacity/global_keybindings/run_command_1 'E'
gconftool-2 --type string --set /apps/metacity/keybinding_commands/command_1 'nautilus'
P.S: "/apps/panel/global/menu_key" に関するコマンドラインでの操作を検索しているうちに、gconfに関する別の面白い情報も見つけました。
http://docsun.cites.uiuc.edu/sun_docs/C/solaris_9/SUNWgndoc/GNOMEADMIN/p5.html
とても面白い。(^_^)
訳注:私の環境だと、設定項目は英語のままで"Super is mapped to Win-keys"と表示されていましたが、一応ここも訳しました。
私は極力少ない設定で済ませたいので、方法2を選択。
上記の解説だと、"command_1"にnautilusコマンドを割り当ててますが、デスクトップを表示させる動作は"show_desktop"として既に値が存在しているので、そいつを編集して<Super>Mとしてやります。

ちなみに、"ホーム・フォルダを開く”の設定エディタ上の項目は "/apps/gnome_settings_daemon/keybindings" にあります。けど、そこに"<Super>E"としてやってもショートカットは動作してくれず、しかも勝手に画面テーマが切り替わるという現象が。。。
※ Ubuntu 8.10環境で確認しました。バージョンが違うと設定の位置が違ってたりするのはご愛嬌。
2009年5月22日金曜日
I wana just add VBR-header to mp3 files...
ffmpegを使って
ffmpeg -i smile.flv -acodec copy output.mp3
ってな感じでflv動画から音を抜いてるんですが、これをやったあとに付きまとう問題点。。。
元の音声がVBRだろうと何だろうと、-acodec copyでとにかく抜き出せるのは良いものの、抜き出して出来たファイルにはVBRヘッダが無いので、プレーヤによっては再生時間がとんでもないことになっちゃったりします。
例えば、実際の再生時間は4分程度の筈なのに、32分として扱われちゃったり。
なので、VBRヘッダをファイルに付加する方法を探してたんですが、linux環境向けのツールを見つけられませんでした。。。
なので、とりあえずWindows向けのVBR Header Makerをwineで使用。
うわぁ、、こんな簡単に出来るのになぁ。。。
ffmpeg -i smile.flv -acodec copy output.mp3
ってな感じでflv動画から音を抜いてるんですが、これをやったあとに付きまとう問題点。。。
元の音声がVBRだろうと何だろうと、-acodec copyでとにかく抜き出せるのは良いものの、抜き出して出来たファイルにはVBRヘッダが無いので、プレーヤによっては再生時間がとんでもないことになっちゃったりします。
例えば、実際の再生時間は4分程度の筈なのに、32分として扱われちゃったり。
なので、VBRヘッダをファイルに付加する方法を探してたんですが、linux環境向けのツールを見つけられませんでした。。。
なので、とりあえずWindows向けのVBR Header Makerをwineで使用。
うわぁ、、こんな簡単に出来るのになぁ。。。
2009年5月16日土曜日
'conffiles' in deb packgage.
リポジトリに入ってなかったり、GetDebなんかにもdebファイルが無かったりするソフトは、tar.gzなソースを落としてきて自分で適当な箇所に置いてやる必要がある。
PHPの開発にAptanaを使おうかと思ってるんだけど、そうですdebファイルが無いんです。
後々の管理のことを考えると、debでインストールしてやったほうが楽だと思うんだけどなぁ。。。
そんな訳で、「じゃあ自分でdebファイル作っちまえばいいじゃねぇか」と思って調べてたら、ちょうど以前のエントリにコメントを頂いた。
Skype error[Ubuntu8.10][pulseaudio]
http://mstssk.blogspot.com/2009/01/skype-errorubuntu810pulseaudio.html
そういえばこの、removeでは設定ファイルが残って、purge指定してやると設定ファイルまで消えるってのはどうなってるんだろうと思い、そこらへんも調べてみた。
$ sudo apt-get -d install pulseaudio
-dオプションを付けてapt-getを実行し、インストールせずパッケージのダウンロードのみをさせる。debファイルは /var/cache/apt/archives に落ちてくる。このやり方だと依存関係が解決されて、他のパッケージもいろいろ落ちてくるけど、、、まぁいい。
debファイルの実態はただのアーカイブなので、file-rollerとかで開けちゃう。
中身は、
debian-binary … ただのテキスト。debファイルのフォーマットverが書かれている。
data.tar.gz … インストールされるファイルが収まっている。
control.tar.gz … インストール時に必要な依存関係etc.etc.の情報が収まっている。
の三つ。
control.tar.gzの中身を見てみると、
control … 依存関係やパッケージ概要などなど書かれている。
md5sums … data.tar.gzの中身のハッシュ値が書かれている。
postinst,postrm,preinst,prerm …… インストール/アンインストール時に実行されるスクリプトなど。
ここまでは知ってたんだけど、もう一つconffilesというファイルがあった。中を見てみると、件の記事で扱った/etc/X11/Xsession.d/70pulseaudioや、他にも設定ファイルっぽいパスが書かれている。
conffilesが何なのかと言うと、
http://www.debian.org/doc/manuals/maint-guide/ch-dother.ja.html#s-conffiles
conffilesにパスを書いておけば、設定ファイルとして扱われ、removeでは削除されず、purgeで初めて消えてくれるそうだ。
ところで、これらを調べていて思ったのは「purgeしなかったパッケージの設定ファイルは全部残っちゃってるんじゃね?」ということ。
removeして設定ファイルだけ残ってしまっているパッケージを簡単に調べる方法は無いもんかと思い、取り合えずSynapticを開いたら、、、あったあった。
Synapticの左ペインを「状態」別表示にして「未インストール(未設定)」を選択すればいい。。。うわ、結構ある。。。

<雑記>
「未インストール(未設定)」って誤訳だよねぇ。「未設定」だと「設定されていない」という意味になっちゃう。LANG=Cな状態での表示は「Not installed(residual config)」。residualの意味は「残っている(もの)」「余り」とかいう意味だから、やっぱり「未設定」ではない。「未インストール」もニュアンスが違うよなぁ。。
でも良い訳が思い浮かばないんだよなぁ。。。
PHPの開発にAptanaを使おうかと思ってるんだけど、そうですdebファイルが無いんです。
後々の管理のことを考えると、debでインストールしてやったほうが楽だと思うんだけどなぁ。。。
そんな訳で、「じゃあ自分でdebファイル作っちまえばいいじゃねぇか」と思って調べてたら、ちょうど以前のエントリにコメントを頂いた。
Skype error[Ubuntu8.10][pulseaudio]
http://mstssk.blogspot.com/2009/01/skype-errorubuntu810pulseaudio.html
akira さんのコメント...
purgeなら設定も消去されました。
そういえばこの、removeでは設定ファイルが残って、purge指定してやると設定ファイルまで消えるってのはどうなってるんだろうと思い、そこらへんも調べてみた。
$ sudo apt-get -d install pulseaudio
-dオプションを付けてapt-getを実行し、インストールせずパッケージのダウンロードのみをさせる。debファイルは /var/cache/apt/archives に落ちてくる。このやり方だと依存関係が解決されて、他のパッケージもいろいろ落ちてくるけど、、、まぁいい。
debファイルの実態はただのアーカイブなので、file-rollerとかで開けちゃう。
中身は、
debian-binary … ただのテキスト。debファイルのフォーマットverが書かれている。
data.tar.gz … インストールされるファイルが収まっている。
control.tar.gz … インストール時に必要な依存関係etc.etc.の情報が収まっている。
の三つ。
control.tar.gzの中身を見てみると、
control … 依存関係やパッケージ概要などなど書かれている。
md5sums … data.tar.gzの中身のハッシュ値が書かれている。
postinst,postrm,preinst,prerm …… インストール/アンインストール時に実行されるスクリプトなど。
ここまでは知ってたんだけど、もう一つconffilesというファイルがあった。中を見てみると、件の記事で扱った/etc/X11/Xsession.d/70pulseaudioや、他にも設定ファイルっぽいパスが書かれている。
conffilesが何なのかと言うと、
http://www.debian.org/doc/manuals/maint-guide/ch-dother.ja.html#s-conffiles
conffilesにパスを書いておけば、設定ファイルとして扱われ、removeでは削除されず、purgeで初めて消えてくれるそうだ。
ところで、これらを調べていて思ったのは「purgeしなかったパッケージの設定ファイルは全部残っちゃってるんじゃね?」ということ。
removeして設定ファイルだけ残ってしまっているパッケージを簡単に調べる方法は無いもんかと思い、取り合えずSynapticを開いたら、、、あったあった。
Synapticの左ペインを「状態」別表示にして「未インストール(未設定)」を選択すればいい。。。うわ、結構ある。。。

<雑記>
「未インストール(未設定)」って誤訳だよねぇ。「未設定」だと「設定されていない」という意味になっちゃう。LANG=Cな状態での表示は「Not installed(residual config)」。residualの意味は「残っている(もの)」「余り」とかいう意味だから、やっぱり「未設定」ではない。「未インストール」もニュアンスが違うよなぁ。。
でも良い訳が思い浮かばないんだよなぁ。。。
2009年5月11日月曜日
How to create deb package simply.
http://www.aptana.com/dev/index.php/Creating_a_Debian_Aptana_IDE_package
Aptanaのサイトにあったdebファイル作成の解説がシンプルでいい感じだったのでメモ。
上記ページ中では説明が省かれてるけど、run-aptana scriptってのは、Aptanaのための環境変数を設定しながらaptanaを起動させるスクリプトのこと。詳細はAptanaのインストール解説ページとかに任せる。
追記……するかなぁ……
Aptanaのサイトにあったdebファイル作成の解説がシンプルでいい感じだったのでメモ。
上記ページ中では説明が省かれてるけど、run-aptana scriptってのは、Aptanaのための環境変数を設定しながらaptanaを起動させるスクリプトのこと。詳細はAptanaのインストール解説ページとかに任せる。
追記……するかなぁ……
2009年5月9日土曜日
Seagate HDD strikes me!
| Seagate 3.5インチ内蔵HDD 1.5TB 7200rpm S-ATA/300 32MB ST31500341AS Seagate 売り上げランキング : 2547 Amazonで詳しく見る by G-Tools |
発症は稀とのフレコミでしたが、大当たりでした。
http://gigazine.net/index.php?/news/comments/20090118_seagate/
http://wikiwiki.jp/buyhdd/?7200.11%C9%D4%B6%F1%B9%E7
http://seagate.custkb.com/seagate/crm/selfservice/search.jsp?DocId=207931&NewLang=ja
http://pc11.2ch.net/test/read.cgi/jisaku/1240139074/l50
ファームウェアを更新すれば良いらしいですが、それは内臓SATA接続が前提なので、ノートPCしかない私にはどうすることも出来ない orz
大学行ってる友人に話したら、研究室のお遣いで4つ買ったら、全部当たりということがあったらしいです。
流れ
・1.5TBのHDDを買って大喜びで帰宅
・一緒に買った外付け用HDDケースにHDDを入れる
・Gparted起動
・パーティションテーブル作成。(この最初の1回だけ認識できた)
・おっとntfsでフォーマットするにはntfsprogsを入れる必要があるのか
・ntfsprogsをインストール
・さぁてGpartedを起動して今度こそフォーマット……
・HDD認識されねぇEEEEEEE ←いまここ
・買ったパーツショップに連絡予定「フォーマットもしてないのにロックされました orz」
to be continued...
<追記>
原因が判明。
HDDケース付属のUSBケーブルの接触不良でした。斜め上な肩透かし orz
2009年5月8日金曜日
Aptana PHP memo
Aptana Studio
http://www.aptana.com/
Aptana PHP
http://www.aptana.com/php
Aptana PHPの現行バージョンは1.0だが、Alpha版の1.1はSmartyテンプレートの作成などにも対応している。
Aptana PHP 1.1のインストール方法
http://www.aptana.com/docs/index.php/Aptana_PHP_Plug-In_1.1
php.iniのinclude_pathの内容を、Aptana PHPの設定のPHP Libraliesに指定してやる。これをしないと、デバッグ時にSmartyをrequireしようとするところでNot Foundエラーが出る。
http://aptana.com/docs/index.php/Installing_Aptana_on_Linux
http://andrewbleakley.com/blog/2008/11/01/installing-and-running-aptana-on-ubuntu-810/
http://www.aptana.com/
Aptana PHP
http://www.aptana.com/php
Aptana PHPの現行バージョンは1.0だが、Alpha版の1.1はSmartyテンプレートの作成などにも対応している。
Aptana PHP 1.1のインストール方法
http://www.aptana.com/docs/index.php/Aptana_PHP_Plug-In_1.1
php.iniのinclude_pathの内容を、Aptana PHPの設定のPHP Libraliesに指定してやる。これをしないと、デバッグ時にSmartyをrequireしようとするところでNot Foundエラーが出る。
http://aptana.com/docs/index.php/Installing_Aptana_on_Linux
http://andrewbleakley.com/blog/2008/11/01/installing-and-running-aptana-on-ubuntu-810/
2009年5月7日木曜日
PHP Smarty tips
最近PHPをちょこっとずつ勉強中。
Smartyのテンプレでよく使うであろうパターンの覚書。
また、予約変数の$smartyを使うと、テンプレート内からPHPの定義済み変数にアクセスできる。
よくあるwebの入力フォームでは、入力エラーの場合に入力内容をそのまま表示仕返してやったりする。それを、Smartyを使えば次のようにテンプレートに記述することで済む。
<input type="text" name="hoge" value="{$smarty.post.hoge|escape}">
例えば、入力内容をそのスクリプト自身にsubmitさせてやるようなフォームなら、basename関数を修飾子として使い、actionの指定もテンプレート内で動的に書き出せる。
<form action="./{$smarty.server.SCRIPT_NAME|basename}" >
Smartyのテンプレでよく使うであろうパターンの覚書。
escape修飾子と予約変数$smartyの組み合わせ
Smartyのテンプレでは、変数に修飾子というものを付加して表示結果を弄れる。escape修飾子は文字列中の記号などをエスケープしてくれる。また、予約変数の$smartyを使うと、テンプレート内からPHPの定義済み変数にアクセスできる。
よくあるwebの入力フォームでは、入力エラーの場合に入力内容をそのまま表示仕返してやったりする。それを、Smartyを使えば次のようにテンプレートに記述することで済む。
<input type="text" name="hoge" value="{$smarty.post.hoge|escape}">
関数も修飾子として使える
escapeなどSmartyで用意されているものだけでなく、PHP側の普通の関数もテンプレート内から修飾子として呼び出せる。例えば、入力内容をそのスクリプト自身にsubmitさせてやるようなフォームなら、basename関数を修飾子として使い、actionの指定もテンプレート内で動的に書き出せる。
<form action="./{$smarty.server.SCRIPT_NAME|basename}" >
2009年4月16日木曜日
What's "LANG=C" ?
コマンドを、日本語環境でなく英語環境で実行したいとき、LANG=Cと付けて実行してやったりする。
しかし、このCってのがよくわからん。英語環境を表すのにはenというのも用意されていて、実際に
じゃあ、Cって何なのよ。と思い調べてみた。
それで見つけたのが、次のページのこの記述
http://mailman.linuxchix.org/pipermail/techtalk/2002-November/013691.html
「'LANG=C'はgnumericのロケールをCに設定してくれる。この'C'ロケールというのは、アプリケーションにとっての"デフォルト"のロケールと定義されている。つまり、(翻訳をせずに)ソースコードに書かれているそのままの文字列を表示してくれるという訳だ」
注釈1)引用元ページでは、たまたまgnumericで実行した場合を例にあげているだけであって、上でやってるようにdateコマンドとか、もちろんその他のコマンドでもLANGの役割は同じ。
注釈2)Unix系OSでのアプリケーションの多言語対応は、素のままの表示メッセージの翻訳を各ロケールごとに作成し、アプリケーションの実行中に逐一対応するメッセージを翻訳ファイルから探してきて表示する。LANG=Cではそれをしない、ということ。
つまり、"英語で表示"というわけではなく、"翻訳しない"というだけの意味だそうだ。
もし、元々スワヒリ語のメッセージ表示を行うように作られたソフトがあったなら、LANG=Cを付けて実行した場合の表示はもちろん英語でなくスワヒリ語表示になるだろう。
結局、何故'C'という文字が当てられているのかはわかりませんでした。。。
<追記 20090430>
C言語のCみたいです。(コメントありがとうございました)
http://www.gnu.org/software/libc/manual/html_node/Standard-Locales.html
$ dateと$ LANG=C dateのそれぞれの実行結果を見比べると一目瞭然。しかし、このCってのがよくわからん。英語環境を表すのにはenというのも用意されていて、実際に
$ LANG=en dateとやると、やはり英語で表示してくれる。じゃあ、Cって何なのよ。と思い調べてみた。
それで見つけたのが、次のページのこの記述
http://mailman.linuxchix.org/pipermail/techtalk/2002-November/013691.html
'LANG=C' sets the locale for gnumeric to the C locale. The 'C' locale isそれっぽい和訳
defined as the "default" locale for applications, meaning that their
strings are displayed as written in the initial code (without passing
through a translation lookup).
「'LANG=C'はgnumericのロケールをCに設定してくれる。この'C'ロケールというのは、アプリケーションにとっての"デフォルト"のロケールと定義されている。つまり、(翻訳をせずに)ソースコードに書かれているそのままの文字列を表示してくれるという訳だ」
注釈1)引用元ページでは、たまたまgnumericで実行した場合を例にあげているだけであって、上でやってるようにdateコマンドとか、もちろんその他のコマンドでもLANGの役割は同じ。
注釈2)Unix系OSでのアプリケーションの多言語対応は、素のままの表示メッセージの翻訳を各ロケールごとに作成し、アプリケーションの実行中に逐一対応するメッセージを翻訳ファイルから探してきて表示する。LANG=Cではそれをしない、ということ。
つまり、"英語で表示"というわけではなく、"翻訳しない"というだけの意味だそうだ。
もし、元々スワヒリ語のメッセージ表示を行うように作られたソフトがあったなら、LANG=Cを付けて実行した場合の表示はもちろん英語でなくスワヒリ語表示になるだろう。
結局、何故'C'という文字が当てられているのかはわかりませんでした。。。
<追記 20090430>
C言語のCみたいです。(コメントありがとうございました)
http://www.gnu.org/software/libc/manual/html_node/Standard-Locales.html
This is the standard C locale. The attributes and behavior it provides are specified in the ISO C standard.
2009年4月15日水曜日
eval command in bash shell script
シェルにevalコマンドっていうのがある、受け取った文字列を展開してそれを実行する、っていうイマイチよくわからない説明がよくされる。
それが、今回やっと理解出来たのでメモ
たとえば次の様な実行例
evalは「echo $hoge」という文字列を受け取る。そして、文字列中の展開出来る箇所を展開する。
この場合は、シェル変数hogeにfooという文字列が入っているから、$hogeの部分はfooと展開される。
展開後にはその文字列が実行される。
$hogeはfooに展開されているから、実際に実行されるのは「echo foo」となる。
なので、表示結果は「foo」となったわけだ。
ところで、シェルスクリプトでは1次元配列しか扱えないのだけれど、
このevalを使うことで、2次元配列(多次元配列)を擬似的にだけれど、扱うことが出来る。
例として、3行3列の配列にランダムな値を入れていく。
結果
「eval echo array_${i}_${j}=\$array_${i}_${j}」の行がわかりづらいので注釈。
echo array_${i}_${j}=\$array_${i}_${j}
↓展開(i,jともに0の時点だとして)
echo array_0_0=$array_0_0
表示結果は
array_0_0={要素[0][0]の数値}
それと、array_${i}_${j}のように、大括弧を入れて書くこと。
array_$i_$jでは、iの次のアンダーラインまで変数名の一部として展開しようとしてしまう。
それが、今回やっと理解出来たのでメモ
たとえば次の様な実行例
$ hoge="foo"; eval "echo $hoge"
foo
具体的にはどういう流れでこうなるのかというと、evalは「echo $hoge」という文字列を受け取る。そして、文字列中の展開出来る箇所を展開する。
この場合は、シェル変数hogeにfooという文字列が入っているから、$hogeの部分はfooと展開される。
展開後にはその文字列が実行される。
$hogeはfooに展開されているから、実際に実行されるのは「echo foo」となる。
なので、表示結果は「foo」となったわけだ。
ところで、シェルスクリプトでは1次元配列しか扱えないのだけれど、
このevalを使うことで、2次元配列(多次元配列)を擬似的にだけれど、扱うことが出来る。
例として、3行3列の配列にランダムな値を入れていく。
#!/bin/sh
#declareコマンドでシェル変数iとjを整数値として生成。
#ただi=0とやると、0という文字を代入していることになってしまう。
declare -i i=0
declare -i j=0
#2重ループで、array_${i}_${j}の各要素にランダムな値を入れていく。
while [ $i -lt 3 ]
do
while [ $j -lt 3 ]
do
eval array_${i}_${j}=\$RANDOM
j=$j+1
done
j=0
i=$i+1
done
#各要素の内容を表示
i=0
j=0
while [ $i -lt 3 ]
do
while [ $j -lt 3 ]
do
eval echo array_${i}_${j}=\$array_${i}_${j}
j=$j+1
done
j=0
i=$i+1
done
結果
array_0_0=17314
array_0_1=30499
array_0_2=5518
array_1_0=19522
array_1_1=7919
array_1_2=2510
array_2_0=8634
array_2_1=31473
array_2_2=5638
「eval echo array_${i}_${j}=\$array_${i}_${j}」の行がわかりづらいので注釈。
echo array_${i}_${j}=\$array_${i}_${j}
↓展開(i,jともに0の時点だとして)
echo array_0_0=$array_0_0
表示結果は
array_0_0={要素[0][0]の数値}
それと、array_${i}_${j}のように、大括弧を入れて書くこと。
array_$i_$jでは、iの次のアンダーラインまで変数名の一部として展開しようとしてしまう。
2009年4月11日土曜日
IPA Font lisence changes!
IPAフォントが2009年4月中旬にもオープンソース・ライセンスへ,改変と再配布が自由に
http://itpro.nikkeibp.co.jp/article/NEWS/20090403/327784/
私なんかは、Ubuntu8.10で$ sudo apt-get install ipamonafontってやって使ってるクチなんですが、このライセンス変更のおかげで9.04からはまた標準でIPAモナーフォントが入ってくれないかしら? ……時期的に無理か。ぃゃ、でも9.10には入るんだろうなぁ。
モナーフォントは初期のIPAフォントのバグを抱えたまんまらしいって聞いたんですが、それでもMSゴシックと同じ文字幅ってのは"使える"と思うんですけどね。
Linux+OOoな法人/自治体もありますし、外部とやりとりするような文書作成なんかでは良いんじゃないかしら? 素人考え?
http://itpro.nikkeibp.co.jp/article/NEWS/20090403/327784/
私なんかは、Ubuntu8.10で$ sudo apt-get install ipamonafontってやって使ってるクチなんですが、このライセンス変更のおかげで9.04からはまた標準でIPAモナーフォントが入ってくれないかしら? ……時期的に無理か。ぃゃ、でも9.10には入るんだろうなぁ。
モナーフォントは初期のIPAフォントのバグを抱えたまんまらしいって聞いたんですが、それでもMSゴシックと同じ文字幅ってのは"使える"と思うんですけどね。
Linux+OOoな法人/自治体もありますし、外部とやりとりするような文書作成なんかでは良いんじゃないかしら? 素人考え?
2009年4月3日金曜日
dot is separator
NTTドコモ、メールアドレスのルールを変更 〜 ピリオド連続などが使用不可に
http://www.rbbtoday.com/news/20090403/59059.html
メールアドレスを決める時、本来は次はアウト
・ドットから始まる
・ドットで終わる
・ドットの連続
だけど、docomoとauは今まで上記のルールから逸脱したアドレスでも登録出来るようになってた。世の中には、ルールから外れたメールアドレスが無効なものだとして、そういうメールを受け付けないメールサーバもあるので、docomo/からのメールを受信できない、またはdocomo/auへ送信できないっていう場合があったりする。
まぁそれは知ってたんだけど、でも何で?とふと思った。
で、ちょっと調べたら、当たり前な事実が出てきて、そんなことにも気づけなかった自分にorz
ドットって、メールに限らずアドレスでは基本的に区切りの文字として使うんですよね。
なので、区切り文字が先頭や最後尾にあったり、区切り文字が連続していたりするのはアウト、っていうわけ。
例えば、mixi.jpとか。mixi.jpというドメインの中で、ccTLD(国別コードトップレベルドメイン)のjpの部分を切り分けてる。
http://www.rbbtoday.com/news/20090403/59059.html
メールアドレスを決める時、本来は次はアウト
・ドットから始まる
・ドットで終わる
・ドットの連続
だけど、docomoとauは今まで上記のルールから逸脱したアドレスでも登録出来るようになってた。世の中には、ルールから外れたメールアドレスが無効なものだとして、そういうメールを受け付けないメールサーバもあるので、docomo/からのメールを受信できない、またはdocomo/auへ送信できないっていう場合があったりする。
まぁそれは知ってたんだけど、でも何で?とふと思った。
で、ちょっと調べたら、当たり前な事実が出てきて、そんなことにも気づけなかった自分にorz
ドットって、メールに限らずアドレスでは基本的に区切りの文字として使うんですよね。
なので、区切り文字が先頭や最後尾にあったり、区切り文字が連続していたりするのはアウト、っていうわけ。
例えば、mixi.jpとか。mixi.jpというドメインの中で、ccTLD(国別コードトップレベルドメイン)のjpの部分を切り分けてる。
2009年3月18日水曜日
Install Chromium in Ubuntu 8.10
https://launchpad.net/~chromium-daily/+archive/ppa
LaunchpadにChromiumのリポジトリが追加されてたので試してみました。
とりあえず言いたいのは、
タブ表示が出来ないんですけど。。。 orz
まぁ、どうせテストバージョンだし
LaunchpadにChromiumのリポジトリが追加されてたので試してみました。
とりあえず言いたいのは、
タブ表示が出来ないんですけど。。。 orz
まぁ、どうせテストバージョンだし
2009年3月15日日曜日
Shortcut key for Subscript and Superscript in OOo
論文の作成で、解説に記号類を多用するのは理系の性なのだけど、OpenOffice.orgでの上付き文字と下付き文字のショートカットに今更気がついたのでメモ
上付き(Superscript)
Ctrl+Shift+P
下付き(Subscript)
Ctrl+Shift+B
これで作業が楽になってくれます。
上付き(Superscript)
Ctrl+Shift+P
下付き(Subscript)
Ctrl+Shift+B
これで作業が楽になってくれます。
登録:
投稿 (Atom)