24/7 twenty-four seven

iOS/OS X application programing topics.

JPackageの仕組みを利用して、CentOSにJDKをインストールする。

Sun JDKのダウンロード

SunのサイトからJDKをダウンロード。
バージョン6.0以外のJDKについて、JPackageは少し古いリリースまでしか対応してないので、1.4.2と5.0のJDKはアーカイブからダウンロードする。

JPackageのJDKパッケージをダウンロード

ここから使用するJDKのバージョンに合ったパッケージをダウンロードする。

$ wget http://mirrors.dotsrc.org/jpackage/1.7/generic/non-free/RPMS/java-1.4.2-sun-compat-1.4.2.13-1jpp.i586.rpm
$ wget http://mirrors.dotsrc.org/jpackage/1.7/generic/non-free/RPMS/java-1.5.0-sun-compat-1.5.0.14-1jpp.i586.rpm
$ wget http://mirrors.dotsrc.org/jpackage/1.7/generic/non-free/RPMS/java-1.6.0-sun-compat-1.6.0.06-1jpp.i586.rpm
Sun JDKのインストール

5.0のJDKは6.0が先に入っているとインストールできないので、両方インストールする場合は5.0から先にインストールすること。1.4.2のJDKはどの順番でもOK。

$ sudo sh j2sdk-1_4_2_13-linux-i586-rpm.bin
$ sudo rpm -ivh j2sdk-1_4_2_13-linux-i586.rpm
$ sudo sh jdk-1_5_0_14-linux-i586-rpm.bin
$ sudo sh jdk-6u6-linux-i586-rpm.bin
JPackageのJDKパッケージのインストール

各パッケージはコンフリクトするので、2つ目以降は--forceオプションを付ける。

$ sudo rpm -ivh java-1.4.2-sun-compat-1.4.2.13-1jpp.i586.rpm
$ sudo rpm -ivh --force java-1.5.0-sun-compat-1.5.0.14-1jpp.i586.rpm
$ sudo rpm -ivh --force java-1.6.0-sun-compat-1.6.0.06-1jpp.i586.rpm
javaコマンドの切り替え
$ sudo /usr/sbin/alternatives --config java

「+」が付いているのが現在のデフォルトのjavaコマンドで、変更する場合は番号を入力してEnter。

4 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
   1           /usr/lib/jvm/jre-1.4.2-gcj/bin/java
   2           /usr/lib/jvm/jre-1.4.2-sun/bin/java
   3           /usr/lib/jvm/jre-1.5.0-sun/bin/java
*+ 4           /usr/lib/jvm/jre-1.6.0-sun/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2
javacコマンドの切り替え

同様にjavacコマンドも切り替えられる。連動しないので、javaとjavacのバージョンを別にすることも可能。

$ sudo /usr/sbin/alternatives --config javac

UbuntuでThinkPad T60の無線LANを使う(Network Managerの代わりにWicdを使う)

Ubuntu 8.04 LTS "Hardy Heron"でLenovo ThinkPad T60内臓の無線LANを使うときの設定

前回の設定ではWPA/WPA2のネットワークにすぐに繋がらないことが多かった。一回で繋がらない場合でも、ネットワークパスワードを入れ直したりすると繋がったりする。しかし、全く繋がらなくなったので別の方法を調べることにする。


Wicd」という接続マネージャが良さそうなので以下、それを試す。

Wicdのリポジトリを追加

「システム」→「システム管理」→「ソフトウェア・ソース」を選択。
「サードパーティのソフトウェア」→「追加」ボタンを押して、以下を追加。

deb http://apt.wicd.net hardy extras

Wicdのインストール

$ sudo apt-get install wicd

起動時に自動的に接続する設定

「システム」→「設定」→「セッション」を選択。
「追加」ボタンを押して、

名前:Wicd
コマンド:/opt/wicd/tray.py

を登録する。

繋がらない場合のトラブルシューティング

最初はオープンネットワークには繋がるが、WPA/WPA2のセキュリティ付きのネットワークには接続できなかった。
何回か接続しようとして、タイムアウトのようになる。
ダウンロードページのトラブルシューティングから、/etc/network/interfacesファイルを確認。

$ gksudo gedit /etc/network/interfaces

いつの間にか無線LANの設定が追加されていたので、以下のとおりに戻す。

auto lo
iface lo inet loopback

これで再起動すると、繋がるようになった。

VirtualBox 1.5.6にCentOS 4.6をインストールするときの注意事項

参考サイト

VirtualBox 1.5.6でCentOSをゲストにする場合、デフォルトのままでは起動しなかったり、Guset Additionsがビルドできなかったりする。

インストール時の注意事項
  • スタート画面でi586を入力してEnter
boot: i586
  • 「パッケージインストールのデフォルト」画面で、「インストールするソフトウェアパッケージをカスタマイズ」を選択。
    • 「開発」→「開発ツール」のインストールを選択する(Guest Additionsのインストールに必要)。
  • 再起動後、GRUB画面で「CentOS-4 i386-up (2.6.9.67.EL)」を選択する。
    • デフォルトの「CentOS-4 i386 (2.6.9.67.ELsmp)」では起動しない。
  • 「ディスプレイ」画面
    • 「Configure...」→「Generic LCD Display」→「LCD Panel 1024x768」を選択。
    • 解像度「1024x768」を選択。
sudoコマンドを実行可能にする

visudoコマンドで/etc/sudoersファイルを編集する。

$ su
Password:
# /usr/sbin/visudo
# User privilege specification
root    ALL=(ALL) ALL
katsumi ALL=(ALL) ALL ←この行を追加 
Guest Additionsのインストール

VirtualBoxのメニュー「デバイス」→「Guest Additionsのインストール...」を選択。ゲストOSのデスクトップにGuest AdditionsのCD-ROMがマウントされる。

$ cd /mdia/cdrom
$ sudo sh VBoxLinuxAdditions.run x11

再起動すると、マウス統合機能(Mouse pointer integration)などが使えるようになる。

デフォルトで起動するカーネルを変更

デフォルトのカーネルが「CentOS-4 i386 (2.6.9.67.ELsmp)」になっているので、このまま再起動すると、起動しない。「/boot/grub/grub.conf」を編集して、「CentOS-4 i386 (2.6.9.67.ELsmp)」をデフォルトに変更する。

$ sudo gedit /boot/grub/grub.conf

「default=0」(リストの一番上ので起動する)になっているので「default=1」に変更する。

default=1

CentOS 4.6でup2dateの更新が終了しない(時間がかかる、固まる)場合の対処

参考サイト

以下の2つを実行することでダウンロードが速くなり、更新できるようになります。

  • コマンドから実行する。
  • 日本国内のミラーサーバを参照する。
コマンドからup2dateのアップデート
$ sudo yum -y update up2date
ミラーサーバに理研を指定する
$ sudo gedit /etc/sysconfig/rhn/sources

以下のように変更する。

yum centos4-Base http://ftp.riken.jp/Linux/centos/4/os/$ARCH/
yum centos4-Updates http://ftp.riken.jp/Linux/centos/4/updates/$ARCH/
yum centos4-extras http://ftp.riken.jp/Linux/centos/4/extras/$ARCH/
yum centos4-contrib http://ftp.riken.jp/Linux/centos/4/contrib/$ARCH/
yum centos4-addons http://ftp.riken.jp/Linux/centos/4/addons/$ARCH/
すべての更新をアップデート
$ sudo up2date -u

Ubuntuで無線LANを使うとき、キーリングのパスワード入力を省略するには

Network Managerの代わりにWicdを使用する。

Network Managerを使用する場合は以下のように設定する。

Ubuntu 8.04 LTS "Hardy Heron"で無線LANを使うとき、キーリング(keyring)のパスワード入力を省略する方法

参考サイト

参考サイトの方法を色々と試したが、Ubuntu 8.04では次の方法が有効なようだ。

「pam_keyring」の最新のソースコードをダウンロードする。

$ cd /usr/src/
$ sudo wget http://www.hekanetworks.com/opensource/pam_keyring/pam_keyring-0.0.9.tar.gz

ソースコードを解凍する。

$ sudo tar zxfv pam_keyring-0.0.9.tar.gz

ビルドに必要なライブラリをインストールする。

$ sudo apt-get install build-essential libglib1.2-dev libglib2.0-dev
$ sudo apt-get install libtool libgnome-keyring-dev libpam0g-dev

ビルドしてインストールする(ここでは必要なバイナリのみをインストールするのでmake installはしない)。

$ cd /usr/src/pam_keyring-0.0.9
$ sudo ./configure --prefix=/usr
$ sudo make
$ sudo cp src/pam-keyring-tool /usr/bin/

バイナリを検証する。使用方法(usage)が表示されればOK。

$ /usr/bin/pam-keyring-tool --help

ログインスクリプト(unlock-keyring.sh)を作成する。

$ mkdir ~/scripts
$ sudo chmod 750 ~/scripts
$ touch ~/scripts/unlock-keyring.sh
$ sudo chmod 750 ~/scripts/unlock-keyring.sh
$ sudo gedit ~/scripts/unlock-keyring.sh

unlock-keyring.shを編集する(「PASSWORD_HERE」は自分のパスワード)。

#!/bin/bash
echo "PASSWORD_HERE" | /usr/bin/pam-keyring-tool -u -s

「システム」→「設定」→「セッション」から「自動起動するプログラム」に登録する。
「追加」ボタンを押して、以下のように入力。

名前:1-unlock-keyring
コマンド:~/scripts/unlock-keyring.sh

「/etc/pam.d/gdm-autologin」がデフォルトの状態になっていることを確認する。
以下の状態になっていればOK。

#%PAM-1.0
auth    requisite       pam_nologin.so
auth    required        pam_env.so readenv=1
auth    required        pam_env.so readenv=1 envfile=/etc/default/locale
auth    required        pam_permit.so
@include common-account
session required        pam_limits.so
@include common-session
@include common-password

このあと再起動すれば、キーリングのパスワードは自動的に入力される。