29 posts tagged “linux”
ディスクの空きがちょっと減ってきたので、サイズが大きいパッケージを知りたくて作ってみた。
python-aptとprettytable使ってます。
#!/usr/bin/python
import apt
from prettytable import PrettyTable
pt = PrettyTable(["package", "version", "size"])
pt.set_field_align("package", "l")
pt.set_field_align("version", "r")
pt.set_field_align("size", "r")
pt.set_padding_width(1)
SizeToStr = apt.SizeToStr
for v in sorted([x.installed for x in apt.cache.Cache() if x.isInstalled], key=lambda v: v.installed_size):
pt.add_row((v.package.name, v.version, SizeToStr(v.installed_size)))
print pt
出力
+----------------------------------------------------------+------------------------------------------+-------+
| package | version | size |
+----------------------------------------------------------+------------------------------------------+-------+
| adobe-certs | 1.0.8210 | 0 |
| adobeair1.0 | 1.5.1.8210 | 0 |
| tweetdeckfast.f9107117265db7542c1a806c8db837742ce14c21.1 | 0.22 | 0 |
| gnuplot | 4.2.5-2 | 20.5k |
| uim | 1:1.5.3-1 | 20.5k |
(省略)
| texlive-latex-extra-doc | 2007.dfsg.17-2ubuntu1 | 110M |
| openoffice.org-core | 1:3.1.0-3ubuntu2 | 113M |
| llvm-dev | 2.5+svn20090504-0ubuntu1 | 117M |
| ghc6 | 6.10.3-2ubuntu1 | 148M |
+----------------------------------------------------------+------------------------------------------+-------+
まず結論。
dbusが使える環境で、kdewalletmanagerを起動した状態で、
すればいける(環境変数の値は別のでもいいかもしれないけど調べてない)
KDE_SESSION_VERSION=4 KDE_FULL_SESSION=true /opt/TweetDeck/bin/TweetDeck
以下経緯など
私のマシンでは、kubuntuのKDE4(4.2.1)はちょっと重いので
プログラムを書くのがメインな時はawesomeを使ってみることにした。
(まあ、それでも4.1.xの時と比べたらだいぶマシになった)
そこで困ったのが、AIRアプリであるTweetDeckが動かないこと。
WindowsでもLinuxでも動いて、しかもグループ分けが便利なので気に入って使ってる。
起動すると、次のようなメッセージが出て、画面は表示されるものの使えない状態になる。
Adobe AIRはいまのところKDEとGnomeしかサポートしていないらしい。
$ /opt/TweetDeck/bin/TweetDeck
Unknown desktop manager, only Gnome and KDE are supported
.
試しに
KDEWM=/usr/bin/awesomeにして、KDEで使うWindow ManagerをawesomeしたらTweetDeckも動くけど、なんかしっくりこない。
しかたがないので、awesome単体で使える方法を調べることにした。
KDEでTweetDeckを起動するとKwalletが動くので、手動でkwalletmanagerを起動してから
TweetDeckを起動してみたが、また同じメッセージが出てだめだった。
straceを使ってKDEから起動するときと、awesome環境から起動するときの違いをみてみたら、
どうもdbusでkwalletを探してるっぽいことが分かった。
でも、kwalletmanagerを起動しておけば、ちゃんと見つけられるし、
$ qdbus org.kde.kwalletd /modules/kwalletd org.kde.KWallet.localWallet
kdewallet
awesome環境で起動するときは、そもそもkwalletを探していないようなので不足があるようだ。
何か無いかとAIRのディレクトリを探ろうかと思ったら、いきなりlibCore.soを見つけたので、
おもむろにstrings libCore.so | grep -i kdeしてみたら、
KDE_SESSION_VERSION, KDE_FULL_SESSIONが出てきた。
こいつらにKDEで見た値を入れたら動いてしまった。
Ubuntu 9.04のカーネルに2.6.28系が来ているので使っていたが、
2.6.28-8.21でCONFIG_WIRELESS_OLD_REGULATORY=nになった影響か、
家で使っている802.11aのチャンネルが使えなくなった。802.11b/gは使えた。
wireless.kernel.orgのキュメントによるとそういった情報をカーネル外に出して、udev経由で設定するようになったらしい。
どこかで見たけど、分離するようにしたのは、カーネル内に入っている情報はUS, JP, EUだけしかなく、しかもカーネルモジュールのパラメータ(cfg80211だな)でしか設定できないからだったはず。
カーネルイメージの依存関係でwireless-crdaが入ってきたが、
変更方法をみると、iwはまだubuntuにパッケージが無いし、wpa_supplicantも0.66だった。
しかもwpa_supplicantを直接使ってないので、wicd(最近NetworkManagerから乗り換えた)が
COUNTRY設定に対応してくれないと多分面倒っぽい。設定ファイルに一行足すだけかも知れないけど。
結局、debianのiw(と関連パッケージ)を入れて解決した。
設定は変更方法の所に書いてあった通りやればok.
sudo iw reg set JP
これをやったあとに今まで通りscanするだけで、自宅のAPが発見できるようになった。
追記
よく分からんが、環境変数COUNTRY=JPを設定して、
/sbin/crdaを実行するだけで設定できた。
iw無しでも平気だったようだ…
前やったときは駄目だったんだけどな…
(ちなみにwireless-crda 1.6は壊れてる。レポートしようとしたらすでにレポートされてた)
wubiでセットアップした環境ではgnome上でgnome-terminalが問題なく使えるのに、
イメージを共有しているcoLinux側では、gnomeを動かしていないからか動かなくなった。
$ gnome-terminal
Failed to contact the GConf daemon; exiting.
検索してみると、gnome起動前にgconfにアクセスできないというのを見つけた。
GConf-2.22ならいけてGConf-2.24でこの状況になるらしい。
workaroundにしたがって次のようにする。
eval `dbus-launch --sh-syntax`
gconftool-2 --spawn
上記の二つのコマンドを実行しておけば、gnome-terminalが起動できる。
上記のコマンドを実行したセッションが生きている状態ならば、他のシェルからでも、
環境変数DBUS_SESSION_BUS_ADDRESSを設定するだけで大丈夫。
wubiでインストールすると、/hostにCドライブがマウントされる.
起動時にマウントするのでinitrdにlocale等のデータがないと変換できないので、日本語のファイル名などは無視されてしまう(化けることもない)
標準で入れたままなら問題ないんだろうけど、イメージの容量に余裕がないので要らなそうなものを
削りまくったらいつの間にか見えなくなっていた.
lupin-supportを入れた後に、
すればok.
update-initramfs -u -k "kernel version"
結果から書くと出来てない.実パーティションならcoLinux側で/dev/xxxとかを指定するので出来るみたいだけど.
coLinux側を100Mぐらいの最低限boot可能なイメージにして、ほとんどをwubi用のイメージを使うようにした.
警告なしにboot出来るようにするには
- /bin
- /etc
- /lib
- /sbin
- /var
/varは/var/run, /var/lockを上からマウントしてしまうとメッセージが出てしまうので、それ以外はbindしてかぶせてしまって構わなそう.
auto-complete.elは思った以上に便利だった.
0.1.0にしてpythom-modeでは、pysmellを使った補完を使うようにしてみた.
flyspell-modeとpredicative-modeを使ってみた.確かに英文を書くときにはいいかも.
~/.aspell.confにを書かないとaspellが動かなくてハマる.
lang en_US
フォント設定
VL Gothic-9でしばらく固定する. これだとASCII文字と日本語の文字の幅が1:2でうまく揃う.
M+1VM+IPAG circleはいつの間にかスペースとかタブの幅が日本語文字の幅になってしまうようになった。
それなりに使う方法はあったけど微妙に揃わないのでやめた.
結構前になってしまったが、大学の課題でTeXを使うものがあったので、環境を改善するためにインストールしてみたときのメモ.
もともとはcoLinuxで頑張っていたんだけど、コンパイルはともかくプレビューとかがちょっと重くてイライラしたので.
(まあPDFにしてWindowsのPDFviewerで見ればよかったんだが)
ということで、coLinuxとイメージが共有できそうだし、なんかおもしろそうだったので、wubiを使ってubuntuを入れてみた.
今回インストールしたのは8.10(intrepid)で、9.4(jaunty)にすぐ切り替えた。もともとcoLinuxで使ってたのがintrepidだったので。
wubiでのインストール自体はとっても簡単なのだが、唯一ハマったのはwubiでイメージをダウンロードすると、すごく時間がかかるのと、64bit対応環境だと64bit版のイメージを持ってきてしまうこと.
時間がかかるのはともかく、32bitのイメージをダウンロードさせる方法が分からなかったので、
自分で32bit版のイメージを持ってきてそれを使った(Wubi FAQのCan I use an existing ISO/CD instead of letting Wubi download a new one?)
今回はcoLinux側からもアクセスしたいので、32bitにしておきたかった(64bit環境自体はgentooがあるし).
入れたマシンはLJ700/HベースのLaVieGだがデバイスは一通り使えるようだ.取り合えず問題なく使っているのは、
- USB
- SDカード
- PCカード
- 無線LAN
- Bluetooth
- バッテリ(ちゃんと見える)
- HDD(SATAモード)
- GMA950(compizも大丈夫)
- 音源(snd_intel_hda, ALC262. そのままだと音が小さかったり変なので、ドライバをいじった)
- 有線LAN
- 外部ディスプレイ
- シリアルポート
- モデム
- TPM
カーネルを古くすれば動くみたいだけど、DRM/DRI関連とかでそれは避けたいので、取り合えずドライバ(vmb-1.10)をいじってる.
2.6.27ではもう少しな感じで, 2.6.28では今まで使えた関数がつかえなくなるので、さらに書き換えが必要になっている.
無線LANもちょっと問題があって、自宅では802.11aで特に問題なかったが、少し前の型のルーターを使っているところでは802.11aで繋がらなかった. 802.11b/gでは繋がりはするもののDHCPでアドレスが取得できない(これはよく調べなかった).
違いはJ52かW52ぐらいしか思いつかなかったので、ルーターのファームを更新してW52にしたら無事つながった.
後になって知ったが、J52でも使えたようだ.
キーボードはcapsをctrlにするのに、gnomeで設定(xkb_optionsにctrl:nocapsを指定)したのでは、emacsなどで困るのでxmodmapで対応する(参考).
ホームディレクトリに.Xmodmapというファイル名で作っておくと、gnomeの誰かが発見して毎回ロードするか聞いてくれた.
とりあえず、NetBeansとMathematicaがcoLinux上の環境よりとても快適になったので、やった価値はあったかな.
dvi/pdfのプレビューも快適になったし、emacsも軽くなった. あとは日本語入力をなんとかしたい.
bzrを入れるときにhardy向け以外のaptlineも書いてあるのを見て、8.10=intrepidであることを知った。
試しに既存のhardy用apt-lineをintrepid用にしてみた。
殆ど問題なく、dist-upgradeで済んだ。要らないもの(gcc4.2とか)が結構残ったので削る作業があったぐらい。
そして、うれしいことにemacs-snapshotが、set-default-fontでM+1VM+IPAG circleを指定しても落ちなくなった。すばらしい。フォント指定が一行で済む。
reStructuredTextのファイルを編集するときに、日本語フォントとASCIIフォントが2:1にならないと気持ち悪いので、フォント設定を見直してみた。
こんなかんじ。
(set-default-font "VL Gothic-12")
(set-fontset-font (frame-parameter nil 'font)
'japanese-jisx0208
'("M+1VM+IPAG circle" . "unicode-bmp"))
(set-fontset-font (frame-parameter nil 'font)
'katakana-jisx0201
'("M+1VM+IPAG circle" . "unicode-bmp"))
(set-fontset-font (frame-parameter nil 'font)
'ascii
'("M+1VM+IPAG circle" . "unicode-bmp"))
(set-fontset-font (frame-parameter nil 'font)
'unicode
'("M+1VM+IPAG circle" . "unicode-bmp"))
日本語もAAがかかった