12 posts tagged “ubuntu”
ディスクの空きがちょっと減ってきたので、サイズが大きいパッケージを知りたくて作ってみた。
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してかぶせてしまって構わなそう.
昔(10年前ぐらい?)はYaTeXを使っていたが、なんとなくAUCTeXが使ってみたかったので、今回はAUCTeXを使うことにした.AUCTeXはパッケージで入れたが、tex-jp.elがバグっているらしいので修正版を持ってくる. reftexはemacs-snapshot-commonに入っているのをそのまま使う.
自分で環境を維持するのは面倒なのと、かぶってしまうファイルの容量がもったいないので、UTF-8を直接処理するのを諦め、標準のptexパッケージを使った.
今回はこの環境で課題を仕上げて提出した.
周りに聞くと、学校の環境(windows+秀丸)で頑張った人が多いようだ.
学校の秀丸はコンパイルとかプレビューはマクロで簡単に呼び出せるけど、
編集とか入力のサポートはなかった気がする(そういうマクロがあるのは知ってるけど、説明はなかった).
他にやったことは、PDFのしおりが化ける問題の対応ぐらい.
どのパッケージニ入っているのか分からなかったので、
- atbegshi.sty
- infwarerr.sty
tex atbegshi.dtx; tex infwarerr.dtx
したあと出来たstyをパスが通ったところに置いただけ.
あと、いろんなところで見かけるが、最近のdvipdfmxからEUC-UCS2がなくなっているので適当に調達する.
Win32用のdvipdfm-32.tar.gzからファイルを取り出した。
/etc/texmf/texmf.d/80DVIPDFMx.cnfをみるとCMAPINPUTS = .;/usr/share/fonts/cmap//
となっていたので、/usr/share/fonts/cmapの直下に置いた.
結構前になってしまったが、大学の課題で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を指定しても落ちなくなった。すばらしい。フォント指定が一行で済む。
ptexliveをビルドするのに、isoイメージの中身が必要らしいので適当に調べた。
すぐ思いつくのは、イメージファイルをloopでマウントする方法だが、容量に余裕があまりないcolinux側に持って行きたくない。
他に簡単にやる方法がないかと思ってみていると、coLinux 0.8からはcoscsiと言うものが出来て、ディスクイメージを普通のデバイスとしてみることが出来るらしい。参考
なので、これを使ってみた。
confにscsi0=cdrom,texlive2007-live-20070212.isoを書いて再起動すると、sr0として見えるようになる。scsi0 : Cooperative Linux SCSI Adapter
scsi 0:0:0:0: CD-ROM coLinux COCD 1.01 PQ: 0 ANSI: 2
sr0: scsi3-mmc drive: 32x/32x cd/rw xa/form2 cdda tray
Uniform CD-ROM driver Revision: 3.20
sr 0:0:0:0: Attached scsi CD-ROM sr0
マウントすると普通にアクセスできるように見えるのだが、
ファイルの中身が見られない現象が多発したのでこの方法はあきらめた。
イメージがぶっ壊れてるのかも知れないと思ったけど、壊れてなかった。何かわかったらレポートしよう…
ubuntu kernel: attempt to access beyond end of device
ubuntu kernel: sr0: rw=0, want=3344004, limit=2097151
他の方法を考えていたら、cofsでマウントしている所にイメージファイルを置いたら、
loopでマウント出来そうだなと思ってやったら出来た。
これが、再起動もいらないし、一番簡単じゃないか…
ビルド自体は、libpng12-devとzlib1g-devを入れたぐらい。
pxdviは作らない(xdvi-jaでいい)のでX関係の開発用パッケージは不要だった。
いくつかは別に必要で入れてあったので、実は使ってるかも知れないけど。