Ubuntu LTS 8.0.4を使ってみた

Macのターミナルでほとんど用をなすので、Linuxに触らなくなってしまったのですが、Linuxディストリビューションも触っておこうということでUbuntuに手を出してみました。

Ubuntuにしたのは、セミナーで「Macじゃないノート型を持っているなと他人のパソコンを気にしていたら、Ubuntuだった」ということが最近多くなってきたから。久しぶりに使うLinuxとしていいかもしれないなと。

といっても、VMware用仮想マシンなんてものが配布されているので、ダウンロードからインストール(というかVMWare側の設定)まで10分もかからず。その後のアップデートとかVMWare Toolsのインストールのほうに手間取ったくらいです。

1CPU(MacBook Pro自体は2CPU)/メモリ512MBの環境でもサクサク動きます。

いろいろインストールしてみたんですが、Synapticパッケージマネージャを使って、ほとんどGUIで済んでしまった(何を入れればいいのかわからないと辛いけど)。今のところ、インストールしたのはこんな感じ。

・Flash Player
→ 最初、Adobeのサイトからダウンロードしようとして、うまくインストールできず。

・Apache2/MySQL/PHP
→PHPがSuhosin(Hardened PHPの)だった。

・Java(JRE)
→Selenium RCを使いたかったんです(最終的にはSelenium Gridを使いたい)。

Synapticパッケージマネージャは、APTのGUIフロントエンドらしいので、同様のことはapt-getコマンドでもできるはず。

Mac + MacPortsで十分実用的なんだけど、やっぱりUNIXとして使えるようにするまではそこそこ面倒。その点、UbuntuはGUIがMax OS Xほどじゃないけれど、UNIXとしては使いやすいような気がします。

PHPを使っていたら、XSLTProcessorクラスがない!とか言われて、慌ててphp5-xslを追加しなきゃいけなかったんですが、必要なものを追加していくというのも良いですよね。

EeePCみたいな用途なら(ブラウザでGoogle Appsを使って)、Ubuntuで十分かもしれない。

インストールメモはあるんで、あとでまとめるかも。


LeopardでMacPorts(3)PHP5

前々回前回に続いて、PHP5のインストールです。

インストール

まずは、インストールのコマンド。

MacPortsのPHP5で指定できるvariantsは結構種類があります(「port variants php5」で一覧)。

今回は、apache2に対してmysql5も使用することにします。pearも使いたい。

$ sudo port install php5 +apache2 +mysql5 +pear

インストール後、以下3つの操作を行います。

(1)httpd.conf にLoadModuleを追加する

$ cd /opt/local/apache2/modules

$ sudo /opt/local/apache2/bin/apxs -a -e -n “php5″ libphp5.so

指示通りのコマンド実行で/opt/local/apache2/conf/httpd.conf にLoadModule行が追加されます(sudoだけ追加してます)。

(2)php.iniの配置

$ sudo cp /opt/local/etc/php.ini-dist /opt/local/etc/php.ini

とりあえずは素のままで。

(3)Apacheの設定ファイルでAddTypeする

/opt/local/apache2/conf/extras-confディレクトリにmod_php.confがインストールされているので、これをインクルードする定義をhttpd.confに加えます。

[httpd.conf]

# PHP

Include conf/extras-conf/mod_php.conf

動作確認

Apacheを再起動&phpinfo()を実行して動作確認します。

CLI版も試しておきましょう。

$ /opt/local/bin/php -v

PHP 5.2.5 (cli) (built: Nov 18 2007 13:42:29)

Copyright (c) 1997-2007 The PHP Group

Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

pearも確認。

$ pear list

インストールオプションについて

phpinfo()すれば、インストールされたモジュールのコンパイルオプションはわかるんですが、MacPortsのvariantsとの関係を探ってみました。

「/opt/local/var/macports/sources/rsync.macports.org/release/ports/www/php5/Portfile」を見てみると、なにやら見たことのあるコンパイルオプションらしき記述がありました。

configure.args \

–mandir=${prefix}/share/man \

–infodir=${prefix}/share/info \

–with-config-file-path=${prefix}/etc \

–enable-calendar \

–with-iconv=${prefix} \

–enable-exif \

–enable-ftp \

–enable-wddx\

–with-zlib=${prefix} \

–with-bz2=${prefix} \

–without-mysql \

–without-sqlite \

–without-pdo-sqlite \

–with-libxml-dir=${prefix} \

–with-gettext=${prefix} \

–with-xml \

–with-expat-dir=${prefix} \

–with-xmlrpc \

–enable-soap \

–enable-filepro \

–enable-bcmath \

–enable-trans-sid \

–enable-mbstring \

–enable-dbx \

–enable-dba \

–with-openssl=${prefix} \

–with-mhash=${prefix} \

–with-mcrypt=${prefix} \

–with-xsl=${prefix} \

–with-curl=${prefix} \

–with-pcre-regex=${prefix} \

–with-gd \

–with-jpeg-dir=${prefix} \

–with-png-dir=${prefix} \

–enable-gd-native-ttf \

–without-pear \

–with-freetype-dir=${prefix}

variantsにあるmysql関連やpearはwithoutされてます。

同じPortfile中で、variant mysql5、variant pearの辺りを見ると、さらにコンパイルオプションを書き換えているようです。ちゃんとしたPortfileの記法はわかりませんが、元のコンパイルオプションを知ってるんで、なんとなく把握できたかな。

やらないと思うけど、Portfileを書き換えれば、好きなコンパイルオプションに変更できるんだろうな。

バージョンの違い

ちなみに。現在のMacPortsではPHP 5.2.5がインストールされましたが、Mac OS Xに元から入ってるのは、こんなバージョンです。

[Leopard]

$ /usr/bin/php -v

PHP 5.2.4 (cli) (built: Sep 23 2007 22:34:35)

Copyright (c) 1997-2007 The PHP Group

Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

[Tiger]

$ /usr/bin/php -v

PHP 4.4.7 (cli) (built: Jul 10 2007 10:54:32)

Copyright (c) 1997-2007 The PHP Group

Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies

Technorati Tags: ,


LeopardでMacPorts(2)Apache2

前回に続いて、Apacheのインストール。

LeopardではApache2、PHPも5になってるので(Apacheが1.3.33から2.2.6、PHPが 4.4.7から5.2.4らしい)、そっちを使うという手もあるんですが、最初から入ってるものはそのまま残しておきたいし、自分の環境は自由に手を入れたくなるだろうということで、MacPortsで行くことにしました。

Apacheのインストール

すんなりとは行かなかったのですが、まずは正しい手順を書いておきます。

いつものインストール。

$ sudo port install apache2

バージョンを見てみます。

$ /opt/local/apache2/bin/httpd -v

Server version: Apache/2.2.6 (Unix)

Server built: Nov 11 2007 09:11:42

設定ファイルのコピーと文法チェック。

$ sudo cp /opt/local/apache2/conf/httpd.conf.sample /opt/local/apache2/conf/httpd.conf

$ /opt/local/apache2/bin/apachectl -t

手動での起動と停止。

$ sudo /opt/local/apache2/bin/apachectl start

$ sudo /opt/local/apache2/bin/apachectl stop

僕は、

alias apache2ctl=’sudo /opt/local/apache2/bin/apachectl’

を[ .bashrc]に登録してます。

自動起動用のファイルも作られているので、自動起動させたい場合はloadします(unloadでオフに)。

$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist

困ったエラー

僕がMacPortsとApacheで遭遇したエラーは3種類。

1つ目は、前回も書いたんですが、TigerをLeopardにアップグレードしたら発生したulimitのエラー(参照)。

2つ目は、LeopardにMacPortsを入れてapache2をインストールしようとしたら、依存関係のあるdb44(Berkeley DB)のパッケージがインストールできませんでした。

同じエラーが出ていてvariantsにdarwin_8とuniversalを指定すればいいというブログを見つけたんですが、それでは解決せず。今年の9月くらいのことらしいし、原因は違うのかも。

MacPortsのBTSを見てみたところ、#12040とか#12405にありました。事象自体は未解決なんですが、#12040のほうのコメント欄にあるhintにある/usr/localをリネームしてインストールするという方法で、db44をインストールできました。

$ sudo mv /usr/local /usr/localx

$ sudo port install db44 +darwin_8

$ sudo mv /usr/localx /usr/local

Tiger時代のapache2インストール時に自動的にインストールされたdb44には、variantsにdarwin_8が指定されていたので、今回もそれを踏襲してみました(今回もapache2経由でdb44を入れればよかったんですが、db44をインストールすることに集中しちゃってました)。

続いて、3つ目。ようやくapache2をインストールできたと思ったら、デフォルトの設定ファイルでは起動できず。mod_ssl.soがロードできないためのようです(参照)。

ローカルでの動作にはSSLは不要なので、コメントアウトして解決(?)です。

ほかにも、9月の始めくらいには、MacPortsがインストールしようとしているaprのバージョンが古く、ファイルが取得できないということもありました。そのときは、数日待っていたら修正されたのですが、エラー原因がわかっているのに対処できなかったんですよね。

もう少しMacPortsの裏側の仕組みを把握すれば、エラーにも対処できるようになるでしょうか。

次回は、PHP5のインストールです。

Technorati Tags: ,


LeopardでMacPorts(1)MySQL

Leopardにアップグレードしたら、MacPortsでトラブル頻発です。

MacPortsを入れたままでTigerからLeopardにしたら、Apacheの起動時にulimiitのエラーが出てくるように(参照)。

MacPortsのことなんて考えてなかったので、Beginning OS X 10.5を参考にして、MacPortsを入れ直すことにしました。

Tiger時代はこちら。MacPorts (1) 準備MacPorts (2)パッケージの利用

再インストールしたら、今度はApacheのインストールでもエラーが出てくるようになりましたが(db44がインストールできない)、まずはMySQLのインストールまでまとめました。

MacPortsのアンインストール

ログインシェルは変えてないし、自動起動するデーモンもないので、アンインストールです。

httpd.confとかmy.cnfとか、必要な設定ファイルをバックアップして、

$ sudo port -uf uninstall

$ sudo port deactivate installed

$ sudo rm -rf /opt

で完了。

MacPortsのインストール

まずは、Xcode3をLeopardのインストールCDからインストール。

MacPortsは、今回もバイナリでインストールしました。

PATHを設定してあるので、そのまま。

MySQLのインストール

とりあえず、wgetを入れてみて、うまく行ったので、MySQL、Apache、PHP5を入れていきます。

・MySQL

まずは、インストール。あとで自動起動させたくなるかもしれないので、+serverをつけておきます。

インストール後に、いくつか必要な操作が出るのでメモしておきます。

$ sudo port install mysql5 +server

my.cnfをコピー。とりあえず、そのままで。

$ sudo cp /opt/local/share/mysql5/mysql/my-medium.cnf /etc/my.cnf

データベースを設定します。/opt/local/var/db/mysql5/にいろいろファイルが作成されます(my.cnfにdatadirを設定することもできます)。

$ sudo -u mysql mysql_install_db5

自動起動させたいなら、インストール後の説明通りにコマンドを実行。loadをunloadにすると、起動しなくなります。

$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist

手動での起動と停止は、こんな感じ。

$ sudo mysqld_safe5 &

$ mysqladmin5 -u root -p shutdown

MySQLを起動してから、パスワードを設定しておきます。

$ mysqladmin5 -u root password [yourpw]

接続してみます。

$ mysql5 -u root -p

MySQLをいじるなら、GUIのツールもあります。

MySQL GUI Tools

Technorati Tags: ,


MacPorts (2)パッケージの利用

前回でMacPortsの準備ができたので、パッケージを使ってみます。

試しに、MacPortsでwgetコマンドを入れてみたいと思います。Mac OS Xには標準でcurlが入っていて、wgetはないので。

パッケージの検索

$ port search wget

gwget gnome/gwget 0.96 Gwget is a Download Manager for Gnome 2. It uses wget as a backend.

wget net/wget 1.10.2 internet file retriever

wgetpro net/wgetpro 0.1.3 advanced internet file retriever

gwgetとかwgetproも一緒に見つかります。

パッケージの依存関係(インストールに必要なパッケージ)

$ port deps wget

wget has library dependencies on:

openssl

gettext

wgetにはopensslとgettextが必要なようです。

variantsの表示(各パッケージのオプション)

$ port variants wget

wget has the variants:

universal

no_ssl

darwin_8

パッケージ情報の表示

依存関係とvariantsも含まれます。

$ port info wget

wget 1.10.2, net/wget (Variants: universal, no_ssl, darwin_8)

http://www.gnu.org/software/wget/wget.html

GNU Wget is a free software package for retrieving files using HTTP, HTTPS and FTP, the most widely-used Internet protocols. It is a non-interactive commandline tool, so it may easily be called from scripts, cron jobs, terminals without Xsupport, etc.

Library Dependencies: openssl, gettext

Platforms: darwin freebsd

Maintainers: xxxxx

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

$ sudo port install wget

wgetに必要なopensslとgettextをインストールしようとしますが、gettextに必要なexpat/libiconv、opensslに必要なzlibが自動でインストールされます。必要な分だけ遡ってくれるんだと思います。

インストールしたソフトウェアの一覧

初期状態では何も入れてないので、「No ports are installed.」と表示されますが、インストール後だと、パッケージ名とそれがactiveかどうかが表示されます。

$ port installed

The following ports are currently installed:

expat @2.0.1_0 (active)

gettext @0.16.1_0 (active)

libiconv @1.11_4+darwin_8 (active)

openssl @0.9.8e_0+darwin_8 (active)

wget @1.10.2_0+darwin_8 (active)

zlib @1.2.3_1 (active)

アップグレード可能なソフトウェアの表示

$ port outdated

アップグレード

$ sudo port upgrade wget

とパッケージごとにアップグレードするか、

$ sudo port upgrade installed

とinstalledと組み合わせて、全部アップグレードするか。

アンインストール

$ sudo port uninstall wget

deactivateとactivate

アンインストールせずに、deactivateで無効にすることもできます。

$ sudo port deactivate wget

逆はactivate。

$ sudo port activate wget

variants違いで切替とかできるらしいんですが、どうやって指定するんだろう?

portコマンドなど、この辺で勉強しました。

HowTo – MacPortsWiki-JP

port コマンドの簡単な使い方

Technorati Tags:


MacPorts (1) 準備

最近、MacPortsというUNIX向けのソフトウェアをインストールするためのパッケージシステムを入れて使っています。

Mac OS Xにも標準で入っているソフトウェアもたくさんあるのですが、バージョンが最新でなかったり、欲しいものがなかったりします。たとえば、Mac OS 10.4標準のPHPは4.4.7です。MacPortsでは最新の5.2.4が使えます。

自分でソースを落としてきてコンパイルすればいいんですが、依存関係があったりすると面倒です。手元の環境は、お手軽に揃う方がいいですよね。

Finkというものもあるのですが、最近はMacPortsのほうが人気なのか、よく見かけるので、特に比較したわけでもなくMacPortsを試しているところです。

<紹介>

MacWiki – MacPorts

<インストール>

TheMacPortsWiki/InstallingMacPorts – MacPortsWiki-JP

Beginning OS X

はこべにっき# – MacPortsでステキなUNIXツールをインストール

この辺を参考にしましたが、インストールする順番が違ったり、入れるものが違ったりしました。

自分(MacBook Pro/MA896J/Aの場合です)のためのメモとして。

(1)X11 for Mac OS X のインストール

入れなくてもOKみたいなんだけど、X Windowのソフトウェアを使う場合に必要になるようなので、とりあえず入れておきました。

Mac OS X Install Disc 1を挿入して、Optional Installs.mpkgをダブルクリック(下のほうにあるので最初見つけられなかったです:-<。X11をクリックして、インストール。X11.appはアプリケーションのユーティリティの中にインストールされます。

1.1.3がインストールされているのに、なぜかX11 Update 2006 1.1.3がソフトウェア・アップデートに出てきました。なにが変わっているのかわかりませんが、アップデートしておきました。

(2)Xcode Tools

こちらは必須です。

先にX11を入れておかないと、Xcode Toolsのインストール中にX11_SDKが選択できないようです。そこに注意すれば、あとはデフォルトでOK。

Apple Developer Connectionから2.4.1をダウンロードすると900MBほどあったんですが、ダウンロードした後で、Mac OS X Install Disc 1にも同じものが入ってることに気づきました! Install Discには古いのが入っているとネットにあるのを鵜呑みしてしまいました。

(3)MacPorts

準備ができたのでMacPortsのインストール。ソースからビルドすることもできるようですが、バイナリのインストーラーを使うことにします。

7/15に出たMacPorts v1.5が最新だったので、MacPorts-1.5.0-10.4.dmgをダウンロードしてインストール。完了すると、/opt/local以下にいろいろ配置されているようです。

(4)環境変数の設定

とりあえず、最低限、PATHとMANPATHだけ設定しておきます。

export PATH=/opt/local/bin:/opt/local/sbin/:$PATH

export MANPATH=/opt/local/man:$MANPATH

PATHはMacPortsのインストーラーが.profileに追加してくれるんだけども、僕の環境では、.bash_profileと.bashrcを使ってるので、そっちに記載しました。

(5)MacPortsのコマンド

以上で、MacPorts自体のインストールは完了です。とりあえず、動作確認のために、かんたんなコマンドを使ってみます。MacPortsはportコマンドに引数をつけて実行するのですが、インストールとか更新の場合は、sudoでportを実行します。

■最新のMacPortsにアップデート

$ sudo port selfupdate

■ソフトウェア一覧の更新

$ sudo port sync

次回は、MacPortsのパッケージをインストールする方法とかを、ちらほらと。

Technorati Tags: