Ubuntu 9.10 で Eclipse + PDT を使う

Ubuntu 9.04 と同じように All-In-One で大丈夫と思っていましたが、既存プロジェクトのインポート・新規プロジェクトでフリーズしてしまいました。

Synaptic でインストールした Eclipse はちゃんと動作したので、こちらをつかう亊にしました。

しかし、言語パックとPDTのインストールの調査に、かなり時間がかかったのでメモしておきます。

Eclipse の Available Software Sites に追加

Babel Update Sites,http://download.eclipse.org/technology/babel/update-site/galileo
Web Tools,http://download.eclipse.org/webtools/updates
DLTK 2.0,http://download.eclipse.org/technology/dltk/updates-dev/2.0/
PDT 2.2,http://download.eclipse.org/tools/pdt/updates/2.2/interim/

無効化

DLTK Update Site (1.0 のため)

Eclipse にインストール

Babel Update Sites,Babel Language Packs in Japanese
PDT 2.2,PHP Development Tools (PDT) Runtime Feature

とにかく、今では PDT が無いと仕事になりませんので。

あきらの Ubuntu 9.04 初期設定のまとめ

あきらの Ubuntu 9.04 初期設定のまとめです。
あきら自身のメモと、みなさんの参考のために。

仮想マシンの作成

今回は SDHC 16GB をRAWディスクとして環境を作成します。

なぜ SDHC にインストールするのか?これは以下の理由です。

・16GBあれば Web システムの開発に支障が無い
・Eclipse(Java)の実行速度が格段に速い
・SDHC を挿しかえれば他のパソコンの仮想マシンとして開発を継続できる
・SDHC を丸ごとコピーすればバックアップができる
・16GB の microSDHC はパソコン工房で約 4,000円で購入可能

仮想マシンの起動時に UAC の確認画面が表示されるのが少々面倒ですが、性能が良いので良しとしました。

以下、VMware Workstation での作成手順です。

画像(180x132)


画像(180x132)


画像(180x132)


画像(180x132)

「Linux」「Ubuntu」を選択

画像(180x132)

仮想マシンの名前を入力します。

画像(180x132)

CPUは 1個でも良いのですが、ホストが Vista/7 の場合は複数割り当てたほうがレスポンスが良いように感じます。

画像(180x132)

メモリはケチらずに割り当てましょう。
あきらは1GBを割り当てました。
ちなみにホストの全メモリ容量は3GBです。

画像(180x132)

お好きなネットワーク接続を選択してください。

画像(180x132)


画像(180x132)

ここで「物理ディスクの使用」をクリックします。
UACの確認が表示されるので、「続行」をクリックします。

画像(180x132)

物理ディスクとして SDHC を選択します。
あきらの環境では「PhysicalDrive 2」となります。

※ 絶対に「PhysicalDrive 0」は選択しないでください!システム(ホスト)が破壊されます!

画像(180x132)


画像(180x132)

「完了」をクリックして VMware Workstation を終了します。

VMXファイルの修正

作成した仮想マシンの VMXファイルに以下を追加します。

svga.vramSize = "67108864"
mainMem.useNamedFile = "FALSE"

Ubuntu 9.04 のインストール

インストールディスクを CD/DVDドライブにセットして、VMware Player で仮想マシンを起動します。
UAC の確認が表示されるので「続行」をクリックします。

画像(180x148)

BIOSの起動画面が表示されたら、すかさず画面をクリックして F2 を押します。
失敗したら仮想マシンをリセットして再チャレンジします。

画像(180x148)

「Boot」を選択して「CD-ROM Drive」を一番上にします。

画像(180x148)

「Exit」を選択して「Exit Saving Changes」で Enter を押します。
確認が表示されるので「Yes」で Enter を押します。

画像(180x148)

仮想マシンが再起動されます。

画像(180x148)

カーソルキーで「Ubuntuをインストール」を選択します。
まだ Enter は押さないでください。

画像(180x148)

起動時のオプションを追加します。

F6 を押してオプション選択が表示されたら Esc を押します。

画像(180x148)

_(アンダーバー)を入力したいので、F3 を押してキーマップ「USA」を選択して Enter を押します。

画像(180x148)

「clocksource=acpi_pm」を追加します。
キーマップが USA だと以下のように入力します。
「=」->「^」
「_」->「Shift」+「-」

画像(180x148)

念のためキーマップを「Japan」に戻しておきます。
あとは通常のインストールを行ってください。

ソフトウェア・ソースの追加

インストールが無事完了してUbuntuが起動したら、ソフトウェア・ソースに Ubuntu-X Team の X-Updates を追加します。

アップデート・マネージャが起動している場合は終了しておきます。
コンソールを起動して以下のコマンドを実行します。

$ sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com AF1CDFA9

ソフトウェア・ソースに以下の2つを追加します。

deb http://ppa.launchpad.net/ubuntu-x-swat/x-updates/ubuntu jaunty main
deb-src http://ppa.launchpad.net/ubuntu-x-swat/x-updates/ubuntu jaunty main

アップデート・マネージャでアップデートを行います。
「再起動が必要」と表示された場合は再起動をします。

デスクトップの設定

操作しづらいのでデスクトップを設定します。

■「システム」>「設定」

・「ディスプレイ」> 1152×864
・「スクリーンセーバー」> 「アイドル状態になったらスクリーンセーバーを起動する」のチェックをはずす
・「電源の管理」> 画面をスリープしない
・「自動起動するアプリ」> チェックをはずす「Bluetooth Manager」「Evolution Alerm Notifire」

■ ワークスペースを4つに

■ 時計

・24時間表示
・日付を表示しない
・秒を表示
・場所を設定

■ 「システム」>「システム管理」

・インターネット上のサーバと同期させる
・ntp.jst.mfeed.ad.jp

パッケージのインストール

Synaptic で以下のパッケージをインストールします。

vim
xserver-xorg-input-vmmouse
postgresql
apache2
php5
php5-ffmpeg
php5-imagick
php5-mcrypt
php5-mysql
php5-pgsql
php5-sqlite
php-pear
phppgadmin
gftp
ssh
sun-java6-jre
winbind

「システム」>「システム管理」>「日本語環境セットアップ・ヘルパ」をインストールされている場合は、必要なパッケージを選択してインストールします。
あきらは FlashPlayer などをインストールしました。

PostgreSQL の設定

UTF-8 以外も利用可能にします。

$ sudo -i
# service postgresql-8.3 stop
# cd /var/lib/postgresql/8.3/
# cp -rfa main/ main.back
# rm -rf main/*
# su postgres
$ /usr/lib/postgresql/8.3/bin/initdb --no-locale --encoding=UTF8 -D /var/lib/postgresql/8.3/main
$ exit
# cd main/
# ln -s /etc/postgresql-common/root.crt root.crt
# ln -s /etc/ssl/certs/ssl-cert-snakeoil.pem server.crt
# ln -s /etc/ssl/private/ssl-cert-snakeoil.key server.key
# cp -a ../main.back/postmaster.opts .
# rm postgresql.conf
# rm pg_hba.conf
# rm pg_ident.conf
# service postgresql-8.3 start
# exit

ローカルでパスワード無しで接続可能にします。
/etc/postgresql/8.3/main/ph_hba.conf の該当箇所を修正します。

local   all     postgres                        trust
local   all     all                             trust
host    all     all             127.0.0.1/32    trust
host    all     all             ::1/128         trust

Apache2 の設定

作業用のユーザーアカウントで実行するようにします。
/etc/apache2/envvars の該当部分を編集します。

export APACHE_RUN_USER=ubuntu
export APACHE_RUN_GROUP=ubuntu

ドキュメント・ルート以下のオーナーを、作業用のユーザーにします。

$ sudo chown ubuntu:ubuntu -R /var/www/

必要な機能を有効にします。

$ sudo a2enmod include
$ sudo a2enmod rewrite
$ sudo a2enmod ssl
$ sudo a2ensite default-ssl

ディレクトリを設定します。
/etc/apache2/sites-availavle/default と /etc/apache2/sites-availavle/default-ssl の該当部分を編集します。

<Directory /var/www>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order Allow,Deny
allow from all
</Directory>

PHP の設定

アップロードサイズを調整します。
/etc/php5/apache2/php.ini の該当部分を編集します。

post_max_size = 48M
upload_max_filesize = 40M

phpPgAdmin の設定

管理者・パスワード無しのログイン可能にします。
/etc/phppgadmin/config.inc.php の該当部分を編集します。

$conf['extra_login_security'] = false;
$conf['min_password_length'] = 0;

LANでアクセス可能にします。
/etc/phppgadmin/apache.conf の該当部分を編集します。

allow from 127.0.0.0/255.0.0.0 ::1/128 192.168.11.0/255.255.255.0

Windows ファイル共有の設定

バックアップやコピーが容易なように、ファイル共有を設定します。
事前に /var/www のオーナーは作業用ユーザー(ubuntu)にしてあるものとします。

画像(180x142)

共有するディレクトリ(/var/www)で右クリックをして「共有のオプション」をクリックします。

画像(180x142)

「このフォルダーを共有する」をクリックすると、SAMBAがインストールされていない場合、「共有サービスがインストールされていません」と表示されるので、「Install service」をクリックします。

画像(180x142)

パスワードの入力をします。

画像(180x142)

インストールが実行されます。

画像(180x142)

インストールが完了したら、「閉じる」をクリックします。

画像(180x142)

「Restart session」をクリックします。

画像(180x142)

「他人がこのフォルダーへ書き込むのを許可する」
「ゲストによるアクセス(ユーザーアカウントを持たない人々向け)」
にチェックをして「Create Share」をクリックします。

画像(180x142)

自動的にディレクトリのパーミッションを設定するか聞いてくるので、「自動的にパーミッションを付加する」をクリックします。

以上でディレクトリの共有設定は完了です。

続いてSAMBAを設定します。
/etc/samba/smb.conf の該当箇所( @ )を修正、行( + )を追加します。
workgroup は LAN の Windows ワークグループに合わせます。
guest account は作業用ユーザー(ubuntu)にします。

@    workgroup = PENGUIN
+    guest account = ubuntu
+    force create mode = 0755
+    force directory mode = 0755

Windows ネットワーク名前解決の設定

パッケージ winbind はインストール済みとします。
/etc/nsswitch.conf の該当箇所を修正します。
「wins」を追加します。

hosts:          files mdns4_minimal [NOTFOUND=return] wins dns mdns4

VMware Tools のインストール

VMware Tools をインストールすると、カーネルがアップデートされるたびに vmware-config-tools.pl を実行しなければならないのが面倒です。
今回は特に不便は無いので、VMware Tools はインストールしませんでした。

・xserver-xorg-input-vmmouse はインストールされています。
・xserver-xorg-video-vmware はインストールされています。
・VMware の共有フォルダは使用せずに SAMBA でファイル共有を行っています。
・SDHC にインストールしたため十分な性能です。

VirtualBoxで漢字キーが使えない問題の対策

ホストWindows、ゲストUbuntu 9.04 の場合、漢字キーを押すとオートリピート状態となって使い物にならない。
今日、偶然 2ch の os 板に VirtualBox のスレがあるのを見つけた。
なんと上記の対策が書かれていた。

74だが、Windowsホストにおける、ゲストOS上での半角/全角連打を防ぐ方法をやっと見つけた。
何で今まで気づかなかったんだろうか・・・。
xset -r 49
あとは適当な方法でログイン時に読み込むようにしとく。
Linuxでは半角/全角のキーコードが標準で49になっていると思われ。違っててもキーコード調べて特定キー(半角/全角)を連打しないようにすれば直った。

しかし、Compizを有効にしたらマウスカーソルがずれまくるので、今はVMwareを使っています。

Ubuntu 9.04 で PostgreSQL + phpPgAdmin

CentOS で開発したシステムを保守用に Ubuntu へ移行中です。
すんなりとは行きませんねぇ。

PostgreSQL のインストール

Synaptic で PostgreSQL と php5-pgsql をインストール。

PostgreSQL の設定

開発環境なのでパスワード無しでログイン可能にしておく。
パスワードはなんだったっけなー、と思い出したり調べたりせずに済むので、作業効率がかなり上がります。

...
# Database administrative login by UNIX sockets
#local   all         postgres                          ident sameuser
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
# "local" is for Unix domain socket connections only
#local   all         all                               ident sameuser
# IPv4 local connections:
#host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
#host    all         all         ::1/128               md5
local   all         postgres                          trust
local   all         all                               trust
host    all         all         127.0.0.1/32          trust
host    all         all         ::1/128               trust

PostgreSQL に設定を反映します。

$ sudo /etc/init.d/postgresql-8.3 reload

PostgreSQL で UTF-8 以外のエンコードを使用可能にする

RedHat系の時もあったのですが、パッケージインストール時の initdb で –no-locale が指定されていないため、UTF-8 以外のデータベースが作成できません。
このため、initdb をやりなおします。

$ pg_dumpall -U postgres > dumpall.sql
$ sudo su
# /etc/init.d/postgresql-8.3 stop
# cd /var/lib/postgresql/8.3/
# cp -ra main main.back
# rm -rf main/*
# su postgres
$ /usr/lib/postgresql/8.3/bin/initdb --no-locale --encoding=UTF8 -D /var/lib/postgresql/8.3/main
$ exit
# cd main/
# ln -s /etc/postgresql-common/root.crt root.crt
# ln -s /etc/ssl/certs/ssl-cert-snakeoil.pem server.crt
# ln -s /etc/ssl/private/ssl-cert-snakeoil.key server.key
# cp -a ../main.back/postmaster.opts .
# rm postgresql.conf
# rm pg_hba.conf
# rm pg_ident.conf
# /etc/init.d/postgresql-8.3 start
# exit
$ psql -U postgres -f dumpall.sql

データベースが元通りであることを確認して、バックアップを削除します。
万が一の場合でも pg_dumpall で作成した SQL があるので安心です。

$ sudo rm -rf /var/lib/postgresql/8.3/main.back/

phpPgAdmin のパッケージをインストール

Synaptic で phpPgAdmin を検索してインストール。
パッケージ名は全て小文字の phppgadmin。

phpPgAdmin の設定

/etc/phppgadmin/apache.conf でアクセスを制限。
あきらは以下の部分のみ修正してLANのネットワークアドレスを追加した。

allow from 127.0.0.0/255.0.0.0 ::1/128 192.168.11.0/255.255.255.0

/etc/phppgadmin/config.inc.php で phpPgAdmin を設定。
あきらは以下の部分のみ修正して、ユーザー postgres でのログインと パスワード無しのログインを可能にした。

...
//$conf['extra_login_security'] = false;
$conf['extra_login_security'] = false;
...
//$conf['min_password_length'] = 1;
$conf['min_password_length'] = 0;
...

※ パスワード無しのログインを可能にするには /etc/postgresql/8.3/main/pg_hba.conf を修正しておく必要があります。

おまけ – phpPgAdmin の SQL アップロードでハマりました

SQLをアップロードした所、以下のエラーが表示されました。

サーバーが指定されていません!

いままで見たことのないエラーなので、よく分かりません。
面倒ですがソースを追いかける事にしました。

(1) 表示しているスクリプトの特定

Firefox で右クリックして「このフレーム」>「フレームの情報を表示」で、sql.php と判明

(2) ソースを調べる

とりあえずソースを見たが、メッセージを表示している場所を特定できなかった。
しかし、$lang にメッセージが格納されているようなので、言語別メッセージファイルからアプローチする事にした。

/usr/share/phppgadmin/lang/japanese.php と見当をつけ、該当メッセージを検索した。
該当メッセージは $lang[‘strnoserversupplied’] と判明。

再び sql.php を調べたが、$lang[‘strnoserversupplied’] は検索できなかった。
grep ‘strnoserversupplied’ -R * で一括検索を行った所、libraries/lib.inc.php と判明。

さらに該当箇所を特定。

...
// Create data accessor object, if necessary
if (!isset($_no_db_connection)) {
if (!isset($_REQUEST['server'])) {
echo $lang['strnoserversupplied'];
exit;
}
...

(3) 状況の調査

該当箇所で print_r( $_REQUEST ) ; とした所、$_REQUEST[‘server’]が渡されていないことが判明した。
さらに SQL をアップロードしない場合はちゃんと渡されていることが判明。

(4) 原因の推理

a. 今まで見たことが無いエラーである -> 今回の環境特有
b. SQL をアップロードした場合のみ発生 -> ファイルのアップロード時

以上から、PHP のアップロード設定ではないかと推測できた。

(5) 対策

/etc/php5/apache2/php.ini の以下を修正

...
post_max_size = 20M
...
upload_max_filesize = 18M
...

Apache2を再起動

$ sudo /etc/init.d/apache2 restart

(6) 確認

エラーとなっていた SQL のアップロードが正常に実行されることを確認。

おつかれ?

新しい環境になると結構 php.ini の設定は忘れがちなんだよね?(俺だけかも)

Ubuntu 9.04 の Apache2 の設定 (2)

Ubuntu 9.04 の Apache2 の設定」の補足です。

その後、ネットで色々調べた所、Ubuntu(Debian?)では apache2 の設定は以下のコマンドを使うとの事だった。

a2enmod [module]
a2dismod [module]

a2ensite [site]
a2dissite [site]

過去に CentOS で開発したシステムを Ubuntu に移行する際に、SSL と SSI が必要だったので、以下の様にコマンドを実行した。

$ sudo a2enmod include
$ sudo a2enmod ssl
$ sudo a2ensite default-ssl

でも、どんなモジュールがあってどんな名前で管理しているのか調べ上げないと使えないと思うんですが…

やっぱり不便ですねぇ。

Ubuntu 9.04 の Apache2 の設定

保守用に Perl CGI を動くようにしたが、RedHat系とかなり異なっていたため、てこずってしまった。

なにが分からないかって、設定ファイルが include だらけで、設定ファイルをずっと追っていく必要があった。
さらに ?available ディレクトリの中に設定ファイルを置いといて、有効にする場合は ?enabled ディレクトリにリンクを作成し、apache2.conf で ?enabled ディレクトリからインクルードするという、多分この説明で理解できる人は少ないだろうなー、と思うような構造になっている。

はっきり言って、一度設定してしまえばそうそういじることは少ないので、どうでもいいと言えばいいのだが、設定があまりに沢山のファイルに分散しすぎているため、目的の設定がどのファイルか特定するのに時間がかかってしまう。

設定ファイルはもっと見通しがよくて、該当場所がエディタですぐ検索出来る方がありがたいと思う。

SSIを有効にする

以下のコマンドでリンクを作成。

$ cd /etc/apache2/mods-enebled
$ sudo ln -s ../mods-available/include.load .

/etc/apache2/mods-available/mime.conf に .html を追加。

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml .html

SSIとCGIを許可する

/etc/apache2/sites-available/default に Includs と ExecCGI オプションを追加

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews Includes ExecCGI
AllowOverride All
Order allow,deny
allow from all
</Directory>

xubuntu + LXDE を試す

Celeron 500MHz のノートパソコンが、どこまで使えるかチャレンジしてみました。

本体 : FMV-650NU7C/L
メモリ : 256MB (PC100 128MB x 2)
ディスク : AR-IDEC2F442 + TS4GCF133
無線LAN : WLI3-CB-G54L

ディスク容量が少ないため、軽量のディストリビューションである xubuntu を選択しました。
インストール・アップデートには3時間程度かかりました。
WLI3-CB-G54L は BCM43xx チップを使用しており、ハードウェアドライバで有効に出来ました。
無線LANにも問題なく接続出来ました。

肝心の速度ですが、なんとか使用に耐える程度と思います。

しかし、もっと動作を軽くするため、以下の URL を参考に LXDE を導入してみました。

第50回 NetBookを使いこなす(2):Xubuntu・LXDEの利用

ログインしてデスクトップを表示するまでが劇的に速くなりました。
また、Firefox の動画もカクカクですが、なんとか続けて見ていてもストレスはありません。
LXDE は日常的なデスクトップとしては十分です。

xubuntu + LXDE のディスク使用料は約 3GB でした。

ubuntu 8.10 では、音声の再生がとてもスムーズになっていました。