もくじ

安定版lenny+backports最終調整(2010/5/10)

概要

安定版lenny+backportsにアップグレードのあと不足していたパッケージを加え、設定を変更した。いちばんてこずったのがFlashプラグイン。いままではnon-freeのパッケージで簡単にできたのだが。メニュー編集の仕組みも記録

Cコンパイラ

Cコンパイラはデフォルトで入るものと思い込んでいたが、最近は指定しないと入らないらしい。

$ vi Hello.c
$ cat Hello.c

#include <stdio.h>
 
int main(void)
{
  printf("Hello, World!\n");
  return 0;
}
$ gcc Hello.c -o Hello
$ ./Hello 
Hello, World!

Hexエディタ

これがあると文字コードの違いが直感的にわかる。昨年度必要になってからインストール済みのものを探したら od コマンドが入っていた。でも元々8進ダンプのツールなので、16進にする -tx1 が煩わしい。

$ od -tx1 strutf.txt 
0000000 41 42 43 e3 81 82 e3 81 84 e3 81 86 e3 81 88 64
0000020 65 20 31 32 e3 81 8b e3 81 8d e3 81 8f 0a 0a
0000037

bsdmainutilsというパッケージを入れると hexdump (or hd) コマンドが含まれることがわかった。

$ hd strutf.txt 
00000000  41 42 43 e3 81 82 e3 81  84 e3 81 86 e3 81 88 64  |ABC............d|
00000010  65 20 31 32 e3 81 8b e3  81 8d e3 81 8f 0a 0a     |e 12...........|
0000001f

上記は表示のみ。hexer はエディタなので編集が可能だ。

hexerの画面

ただし気分はvi。

ghexも入れた。ghexはメニューに出るguiのソフトウェア

ghexの画面

メニューはHexエディタとして、プログラミングに出る。

メニューのghex

IPAフォント

独立行政法人情報処理推進機構 (IPA) によって配布されている無償のフォントセット。squeezeにはパッケージがあるので選択するだけでインストールができるが、残念ながらlenny+backportsでは選択できない。

IPAフォントのダウンロードからダウンロードして展開。以下のようにして/usr/share/fonts/以下にコピーした。

解説にあるインストール方法はユーザーのみのもの。システムに組み込んでみんなが使えるようにするにはDebianでは、

# mkdir /usr/share/fonts/truetype/ipa
# ll /usr/share/fonts/truetype/ipa
合計 41448
-rw-r--r-- 1 root root 6009740 2010-05-10 17:34 ipaexg.ttf
-rw-r--r-- 1 root root 7755792 2010-05-10 17:34 ipaexm.ttf
-rw-r--r-- 1 root root 6234084 2010-05-10 17:34 ipag.ttf
-rw-r--r-- 1 root root 6234432 2010-05-10 17:34 ipagp.ttf
-rw-r--r-- 1 root root 8061296 2010-05-10 17:34 ipam.ttf
-rw-r--r-- 1 root root 8060612 2010-05-10 17:34 ipamp.ttf

昔のインストール記録に従ってfc-cacheを実行

# cd /usr/share/fonts/truetype/ipa
# fc-cache

テストケースでもう一台にも同様にインストールしたがfc-cacheをしなくても組み込まれたような気がする。

Flashプラグイン

本来は次のパッケージがそれであるはずだが、うまくいかない。adobeのサイトからも失敗。

flashplugin-nonfree (1:2.5~bpo50+1)
flashplugin-nonfree-extrasound (0.0.svn2431-3)

firefoxがどうしてもだめな時のために入れておいたウェブブラウザである galeon もプラグインが必要といわれたが、そこから Mozilla Plugin Support on Linux (x86) に誘導された

http://plugindoc.mozdev.org/linux.html#Flash
Flash Player
Versions: 9.0r31
SeaMonkey 1.1a: Supported
Firefox 2.0: Supported
FAQ: Flash Player FAQ

   1. Download Flash Player 9.0.
   2. Decompress it, then copy libflashplayer.so to your Mozilla plugins directory 
      and flashplayer.xpt to your Mozilla components directory.

Note: Upgrading to Flash Player 9.0 is strongly suggested, even if only for ALSA support.
Download Macromedia Flash Player for x86 Linux

ここからダウンロードしたら9.0でなくて10であったが、以下の流れでプラグインファイルを配置。

1. ダウンロードしたら10だった「install_flash_player_10_linux.tar.gz」ファイルを展開
2. 展開すると「libflashplayer.so」というファイルが出てくる
  (書庫はfile-rollerを入れるとGUIからでも展開できる)
3. ユーザーなら「~/.mozilla/plugins/」に配置
  全員なら/usr/lib/iceweasel/plugins/に配置

で入れてみると、

# ll /usr/lib/iceweasel/plugins/
合計 10068
-rwxr--r-- 1 root root 10291000 2010-05-09 20:42 libflashplayer.so
lrwxrwxrwx 1 root root       41 2010-04-27 10:44 libjavaplugin.so -> /etc/alternatives/iceweasel-javaplugin.so

chmodが多分必要だったはず。コピーすると入れるとFirefoxが気がついて再起動を求められた

これでflash動画とともにswfのアニメーションも動くようになった。gnashなどでもswfは動くが▶の絵が出てクリックすると動くというようになってしまう。

他のブラウザでもflash

他のブラウザでもpluginsというディレクトリに入れると動くかもしれない

find /usr -name plugins で出てくるディレクトリの中から、ブラウザ関係のものを拾い出して

/usr/lib/xulrunner/plugins
/usr/lib/mozilla/plugins
/usr/lib/xulrunner-addons/plugins
/usr/lib/xulrunner-1.9/plugins
/usr/lib/firefox/plugins
/usr/lib/iceweasel/plugins
/usr/lib/epiphany-gecko/2.22/plugins

ディレクトリ内部を調べて、プラグインの記述が一番多い /usr/lib/mozilla/plugins/ を他の関係ブラウザも使っている可能性があるので、libflashplayer.soをまずここに入れて、/usr/lib/iceweasel/plugins/ にはリンク(なくてもうごいたかも)を作るように変更した。/usr/lib/xulrunner-addons/plugins/にはリンクがなくてもうごいたので、mozilla/plugins/にいれただけでよかったのかもしれない。これで galeon からもflash動画が見えるようになった。

# ll /usr/lib/mozilla/plugins/
合計 10104
-rwxr--r-- 1 root root 10291000 2010-05-09 20:42 libflashplayer.so
lrwxrwxrwx 1 root root    39 2010-04-27 10:44 libjavaplugin.so -> /etc/alternatives/mozilla-javaplugin.so
-rw-r--r-- 1 root root  4008 2008-07-19 08:09 librhythmbox-itms-detection-plugin.so
lrwxrwxrwx 1 root root    44 2010-04-15 12:39 libtotem-basic-plugin.so -> ../../totem/default/libtotem-basic-plugin.so
lrwxrwxrwx 1 root root    45 2010-04-15 12:39 libtotem-basic-plugin.xpt -> ../../totem/default/libtotem-basic-plugin.xpt
lrwxrwxrwx 1 root root    46 2010-04-15 12:39 libtotem-complex-plugin.so -> ../../totem/default/libtotem-complex-plugin.so
lrwxrwxrwx 1 root root    47 2010-04-15 12:39 libtotem-complex-plugin.xpt -> ../../totem/default/libtotem-complex-plugin.xpt
lrwxrwxrwx 1 root root    42 2010-04-15 12:39 libtotem-gmp-plugin.so -> ../../totem/default/libtotem-gmp-plugin.so
lrwxrwxrwx 1 root root    43 2010-04-15 12:39 libtotem-gmp-plugin.xpt -> ../../totem/default/libtotem-gmp-plugin.xpt
lrwxrwxrwx 1 root root    44 2010-04-15 12:39 libtotem-mully-plugin.so -> ../../totem/default/libtotem-mully-plugin.so
lrwxrwxrwx 1 root root    45 2010-04-15 12:39 libtotem-mully-plugin.xpt -> ../../totem/default/libtotem-mully-plugin.xpt
lrwxrwxrwx 1 root root    50 2010-04-15 12:39 libtotem-narrowspace-plugin.so -> ../../totem/default/libtotem-narrowspace-plugin.so
lrwxrwxrwx 1 root root    51 2010-04-15 12:39 libtotem-narrowspace-plugin.xpt -> ../../totem/default/libtotem-narrowspace-plugin.xpt
-rw-r--r-- 1 root root 30548 2008-08-25 06:08 mozplugger.so

時刻の自動補正

Debianはネットワークの接続時に/etc/network/if-up.d/内のスクリプトが実行される。 /etc/network/if-up.d/ntpdate が実行されるときに/etc/default/ntpdateを参照するので,ここを編集する。基本的にntpでなくntpdateでログイン時に時刻あわせをすれば充分と考えられる。

/etc/default/ntpdate

# The settings in this file are used by the program ntpdate-debian, but not
# by the upstream program ntpdate.

# Set to "yes" to take the server list from /etc/ntp.conf, from package ntp,
# so you only have to keep it in one place.
# adachi
#NTPDATE_USE_NTP_CONF=yes
NTPDATE_USE_NTP_CONF=no

# List of NTP servers to use  (Separate multiple servers with spaces.)
# Not used if NTPDATE_USE_NTP_CONF is yes.
# adachi
#NTPSERVERS="0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org"
NTPSERVERS="jonah.st.seiai.ed.jp"

# Additional options to pass to ntpdate
# adachi
#NTPOPTIONS=""
NTPOPTIONS="-s -b -u"

メニューのアイコンをFirefoxに

DebianではFirefoxをIceweaselとよび、ThunderbirdをIcedoveとよぶ。理由については深入りしないが、本校ではWindowsでもInternetExploreの代わりにFirefoxを使ってもらいたいので名前やアイコンを同じものにしたいということで変更してきた経緯がある。

firefoxのiconFirefox, IceweaselのiconIceweasel

テスト版lennyの2007年では頻繁にバージョンアップを繰り返すFirefoxに対してIceweaselが追いつかないので、Mozillaからlinux用をダウンロードして独自に入れていた。今回Debianのものに戻したのでこの変更が必要になった。

iceweasel.desktop

/usr/share/applications/ に xxxx.desktop というファイルがたくさんある。Windowsで言えば実行ファイルへのショートカットだが、.desktop ファイルはテキストファイルである。こういうものがテキストファイルであるところはUnixの伝統。とても扱いやすい。

/usr/share/applications/iceweasel.desktop の内容はこんな感じ(一部省略)。

ロケールがjaならばName[ja]を使い該当ロケールの記述がなければNameを使うといった決まりらしい。

[Desktop Entry]
Encoding=UTF-8
Name=Iceweasel
Name[bg]=Iceweasel
Name[ca]=Iceweasel
...
Name[ja]=Iceweasel (Firefox)
...
Comment=Browse the World Wide Web
Comment[bg]=Сърфиране в Мрежата
Comment[ca]=Navegueu per el web
...
Comment[ja]=ウェブを閲覧します
...
GenericName=Web Browser
GenericName[bg]=Интернет браузър
GenericName[ca]=Navegador web
...
GenericName[ja]=ウェブ・ブラウザ
...
X-GNOME-FullName=Iceweasel Web Browser
X-GNOME-FullName[bg]=Интернет браузър (Iceweasel)
X-GNOME-FullName[ca]=Navegador web Iceweasel
...
X-GNOME-FullName[ja]=Iceweasel ウェブ・ブラウザ
...
Exec=iceweasel %u
Terminal=false
X-MultipleArgs=false
Type=Application
#Icon=iceweasel
Icon=/opt/firefox/icons/mozicon50.xpm
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;
StartupWMClass=Firefox-bin
StartupNotify=true

各項目の意味

Icon
とりあえず以前に独自に入れたFirefoxのフォルダにあったアイコンを絶対指定するとうまくいった。ただし、アイコンはユーザーが変更することもできるので、既に変更したことになっているユーザーの場合、指定の効果がでないことがある。
アイコンを指定する。変更前のiceweaselがどこから探すのかは定かではないが、テーマによってアイコンを変えることも見越しての指定方法と思われる。たぶんロケールによる指定もできるのだろう。赤十字のマークがイスラム圏では三日月の形という話も聞いたことがある。
Name, GenericName, X-GNOME-FullName
の使い分けはよくわからないがlennyのメニューではName[ja]が、squeezeのメニューではX-GNOME-FullName[ja]が使われているようだ。
名前はIceweaselのままにしてFirefoxとの注釈をつけることにした。
Comment
メニューにマウスを合わせたときにでる説明、いわゆるツールチップなどに使う様だ。
Exec=iceweasel %u
実行するプログラム。pathが通って入れば絶対指定でなくてもよい。
%u がないと、ファイルのダブルクリックでFirefoxが起動してもそのファイルは開かれず、ホームページになる。どのファイルを開くかの引数である。
Categories=Network;WebBrowser;
この記述によって、メニューのどのグループに位置させるかを指定する。非常に巧妙なしくみだ。
MimeType=text/html;...
ファイルを右クリックしたときにこの記述により「プログラムの候補」を出しているものと思われる。
NoDisplay
NoDisplay=true と書いておくと、メニューに表示されないのがデフォルトになる。インストールしたソフトウェア(/usr/share/applications/ に xxxx.desktop というファイルを作るソフト)は、各ユーザーが[システム]-[設定]-[メイン・メニュー]でユーザーごとに表示するかどうかを決定できるが、この記述があるものは表示されないという状態からスタートする。

Icedove.desktop

Thunderbird, Icedoveについても同様にする。

thunderbirdのiconThunderbird, IcedoveのiconIcedove

[Desktop Entry]
Encoding=UTF-8
Name=Icedove (thunderbird) Mail/News
Comment=Read/Write Mail/News with Icedove
GenericName=Mail Client
Exec=icedove %u
Terminal=false
X-MultipleArgs=false
Type=Application
#Icon=icedove
Icon=/opt/thunderbird/icons/mozicon50.xpm
Categories=Application;Network;
StartupWMClass=Icedove-bin
StartupNotify=true
Name[cs]=Poštovní klient Icedove
Name[ca]=Client de correu Icedove
Name[fi]=Icedove-sähköposti
Name[fr]=Messagerie Icedove
Name[pl]=Klient poczty Icedove
Name[pt_BR]=Cliente de E-mail Icedove
Name[sv]=E-postklienten Icedove
Comment[ca]=Llegiu i escriviu correu
Comment[cs]=Čtení a psaní pošty
Comment[de]=Emails lesen und verfassen
Comment[fi]=Lue ja kirjoita sähköposteja
Comment[fr]=Lire et écrire des courriels
Comment[it]=Leggere e scrivere email
Comment[ja]=メールの読み書き
Comment[pl]=Czytanie i wysyłanie e-maili
Comment[pt_BR]=Ler e escrever suas mensagens
Comment[sv]=Läs och skriv e-post

Firefoxのランチャー

firefoxのランチャー

Gnomeではパネル上にアイコンを置き、クリックすることでソフトを起動するものをランチャーと呼ぶ。ユーザーがこれを設定するのは簡単だが管理者がデフォルトを設定する方法がまだわからずにいる。

前回のテスト版lennyでは一人のユーザーの設定をしてそのデータを各ユーザーの設定としてコピーしている。/opt/firefox/firefox を起動する様にしてあるから、これを/usr/bin/iceweaselへのリンクにすればよいと考えたのだが、ほとんどの生徒のランチャーが消えてしまった。

ユーザーごとにIceweaselのメニューの上で右クリックし、「このランチャをパネルに追加」とすればよい。

ランチャーをパネルに追加


Linuxクライアント/サーバ運用
聖愛中学高等学校
安達 順一
http://www.seiai.ed.jp/
2010-05-21