インドネシアのLinux普及状況とLinux環境設定方法について

インドネシアのシステム人材

2012年現在、インドネシアではもっとLinuxが普及しているか思いきや、企業内システムレベルではほとんど見かけない。たまに自前メールサーバーを立てている奇特な技術力の高い会社があるけど、やはり環境設定などのインフラ周りの知識のある人が絶対的に少ない。

PHPのプログラマーはかなり多いのだが、彼らのほとんどはLinux環境設定等は別フィールドと考えており意外なほど知識がない。

開発は未だVB6が主流、.Netの普及があまり進んでいないのは、「とりあえず出来ればOK」的な現状維持を良しとする保守的な国民性、良く言えばベストプラクティスを求める合理的考えがベースにあるからだと思う。

ちなみに大学、専門学校でDelfiを教えるところが多いので、Delfiプログラマーがやたらと多い。最近は日本だとあまり見かけない言語だが、以前僕が日本で働いていた頃は「オブジェクト指向Pascal」と呼ばれ注目された時期もあったなあ。

ところで土日にジャカルタのモールに遊びに行くとiPadその他のタブレット端末持っている人が本当に増えたと感じます。今のところiPadとSAMSUNGのGalaxyアンドロイドタブレットが主流みたいだけど、Windowsタブレットを全く見ないのは何故?

僕は仕事用と趣味用とでPCを分けるなんて器用なことはできないので、両方で使えるものしか買う気がしない。そうなると買うとすればWindowsタブレットになるのだが、仕事でもプライベートでも常時ノートPCを持ち歩いている現状では必要性がない。

渋滞の車内で映画見たりするにはいいんだろうけど。ちょうど昨日どっかのニュースで見ましたが、タブレットは消費のために適したツールでありPCは生産するために適したツールということらしい。

Linuxのディストリビューション

今回はVMware Playerの仮想環境でCentOS4.9の環境設定をしました。Linuxに触れるのはホント久しぶり。

15年以上前にSlackware(バージョンは忘れた)というLinuxのディストリビューションを1ヶ月以上かけて悪戦苦闘しながら立ち上げた。

ディストリビューションとはLinuxのカーネルにライブラリやアプリケーションなど周辺機能を組み合わせて一つのパッケージとして配布されているLinuxOSの総称。当時のインストーラーはDOS画面っぽいヤツで最近のみたいに親切なGUIはなかったし、何よりドライバーが合わずにインストール失敗を繰り返した。

地を這うように少ないネットの情報をさらいながら、ようやくLinuxが立ち上がったときの感動は未だに忘れられない。

LinuxのディストリビューションとしてDebian GNU/Linux, Fedora, CentOS, Ubuntu, Vine Linuxなどがあり、有償であったり無償であったり、サーバー向けであったりデスクトップ向けであったり、用途に応じてディストリビューターによりカスタマイズされている。

ちなみに最近使わないカーネルという言葉だが、CPUやメモリなどのハードウェアを直接コントロールするOSの中核部分のことで、その外側でアプリを起動させたりInputとOutputの制御をする部分をシェルという。

そうそう、あのときWin3.1が入っていたマシンを何でLinuxに入れ替えたかというと、xeyes(目玉がマウスを追いかけるUNIXの有名なアプリ)を試したかったからというかわいらしい理由でした。
xeyes

PCは僕の1号機、古いi386CPU搭載PC/AT互換機(IBMが1984年に販売したパソコンの名前)、メモリは32MBでした。

ちなみにCPUの歴史でi386CPUで32bitバス仕様となり、その発展形がi486、そしてPentiumで64bitバス仕様になります。その一方で15年後の現在でもOSの主流が32bitというのが何とも不思議なところ(2013年現在ようやく完全64bit版のWindows8が主流になりつつある)。

そして2年前、久々にCentOS+Apache+PHP+Mysqlの環境をこれまた古いi386系PCに立ち上げた時、あっという間にインストールが完了し拍子抜けしてしまった。もうOSのインストールで苦しむことはないようだ。

RPM(Red Hat Package Manager)とyum(Yellow dog Updater, Modified)

Red Hat Package Manager (現在は RPM Package Manager)の略で、 Red Hat Linux 等で用いられているパッケージ(リポジトリにまとめられているアプリ=コンパイル済みのバイナリ)管理システムのこと。

パッケージはソフトウェアの一連のファイルをまとめたものであり、インターネット上のリポジトリ(インターネット上にあるソフトウェアの倉庫)にRPM形式(拡張子rpm)のファイルで保存されている。rpmパッケージのファイル名の形式は以下のように決まっている。

$ rpm -ivh apache-1.3.12-2vl3.i386.rpm
① apache : ファイル名
② 1.3 : バージョン名
③ 12-2vl3 : リリース番号
④ i386 : プラットフォーム

rpmコマンドでパッケージのインストールを行うときに使うオプションだが

$rpm -i パッケージのインストールする。
$rpm -v 詳細情報を表示する。
$rpm -h インストールの進行状況を「#」で表示する。

インストールされた多数のRPMパッケージを管理するのは大変。新しいソフトウェアのバージョンが出るたびにRPMコマンドでアップデートしていては大変な作業量になるし RPMコマンドでインストールすると依存関係の問題などが発生したりするので面倒。

そこでRPMパッケージを容易に管理できるツールyum(Yellow dog Updater,Modified)がある。有償のRHEL 4.9はyumが使えないが無償のCentOS4.9は使える。RPMとyum は別々のものではなく、yum は内部でrpmを呼び出してrpmよりもさらに高度な機能を提供しているもの。

RPMパッケージはrpmコマンドでインストールできる便利なバイナリパッケージだが、パッケージ間の依存関係が必要な場合は自分で依存関係を調べて正しい順番でインストールする必要がある。yum を利用すると依存関係をチェックしてインストールされるので、大きなトラブルを回避できる。

有償RHELと無償CentOS

Red Hat Enterprise Linux 4 RHEL 4.9 (旧表記: Update 9)は有償なのでクローンのCentOS4.9をインストール

RHELとは、レッドハットによって開発、販売されている業務向けのLinuxディストリビューション。Red Hat社はCentOSの配布・開発に関与しておらず、利用に関して同社のサポートも受けられない。Red Hat社のサポートが不要な企業のサーバ設置者がCentOSの主要なユーザターゲットである。

ダウンロード

上記公式サイトよりISOファイル(CDやDVDなどの中身を1つにまとめたイメージファイル)4つをダウンロード、インストールする。i386(32bit)とx86_64(64bit)があるが自分のPCは32bitなのでi386を選択。

yumで4.9にアップグレード

LinuxのソフトウェアはRPMパッケージという単位でまとめられており、リポジトリにはOS自体もパッケージとして置かれており、複数バージョンあると自動的に最新版を選択するので該当リポジトリで利用できるバージョンを確認する。

$ yum search CentOS
centos-release.i386 6:4-9.1

リポジトリにはお目当ての4.9しかないことを確認。パッケージ名を指定せず実行した場合はシステムにインストールされている全ての更新可能なパッケージを更新。ダウンロード(約250MB)&アップデートで約1時間

$ yum -y update [パッケージ名]

まずはリポジトリのURLの確認

$ cat /etc/yum.repos.d/CentOS-Base.repo

LinuxはWindowsと違ってアップデート先は1カ所ではない(WinUpdateは当然Microsoftに繋がる)。アップデートデータのダウンロード先(リポジトリ)を追加。ただyum-fastestmirrorというパッケージをインストールすると勝手に一番早いサーバからパッケージを取得するから便利。

$ yum install yum-fastestmirror

アップデート完了後にバージョンを確認すると4.8から4.9に無事アップデートされているのが確認できる。

$ cat /etc/issue
CentOS release 4.9 (Final)

apache2.0.52のインストール

今回はapache2.0.52をインストールする必要があるのだが、リポジトリにこのバージョンのパッケージ(コンパイル済みバイナリ)があるかどうか確認。

$ yum search apache
httpd.i386 2.0.52-48.ent.centos4 update

パッケージを最も簡単にインストールする方法は、OSに合わせてコンパイルされたバイナリファイルを見つけそれをコピーする方法(yumも同じ)だが、コンパイル済みのバイナリでは自分の好みに合わせたカスタマイズは期待できない。

(テキストファイルとバイナリファイル)

専用のアプリケーションソフトで扱うことを前提として、文字コードの範囲などを考慮せずに作成されたファイルのこと。画像や動画、音声を記録したファイルや、実行可能形式のプログラムを収めたファイルなど、文字のみで構成されるテキストファイル以外はすべてバイナリファイルに含まれる。

テキストファイルで使用できない制御コードなどを含むため、テキストエディタでまともに読むことはできない。ワープロソフトなどで作成された文書ファイルは、それぞれに固有の書式設定などを埋め込んでいるため、他社製のソフトウェアやテキストエディタでは読み書きできないバイナリファイルとなる。
IT用語辞典 e-Words

Apacheのソースコードは、tarで1つにまとめた後、さらにgzipで圧縮したファイル(tar.gz形式)になっている。tar -zxvfコマンドで一気にファイルを解凍し、ソースコードを元の状態に復元する。

まずはhttpd-2.0.52.tar.gzを以下よりダウンロード

http://archive.apache.org/dist/httpd/

tar -zxvfで一気に解凍

$ tar -zxvf httpd-2.0.52.tar.gz

ちなみに一気に圧縮は

$ tar -zcvf httpd-2.0.52 httpd-2.0.52.tar.gz

Apacheコンパイル前のconfigureオプション

Apacheをどのディレクトリにインストールするか、どんな使い方をするか、等の環境設定をコンパイル前に行う。Apacheインストールフォルダのパスを指定するが、デフォルトは「/usr/local/apache2」なのでapacheディレクトリにインストールしたければ以下のようにする。

$ ./configure –prefix=/usr/local/apache

ソースをコンパイルしてバイナリ作成

makeコマンドでコンパイルされバイナリファイルが生成される。

バイナリのインストール

$ make install

apacheの起動

$ /usr/local/apache2/apachectl

apacheのバージョンを確認

$ httpd -v

こんな投稿も読まれています