「OSSで基幹系業務システムの構築を目指す勉強会 第一回」

先日「OSSで基幹系業務システムの構築を目指す勉強会」なる勉強会に参加してきた。
Linux(Ubuntu)、NetBeansPostgreSQLJava等のオープンソースソフトウェアを使用して業務用のアプリケーションを作成するという趣旨らしい。
実際仕事にでもJavaEclipseなどのオープンソースを使用して開発をおこなっているけど、DBはOracleだし、帳票ツール等もベンダ固有のものを使用している、何よりOSはWindowsだ。
とゆーわけで、すべてオープンソースでアプリケーションを構築するということには少し興味があった。
とはいえ、参加した目的はどちらかというと勉強会なるものの空気に触れたいってのが正直なところだった。
システム開発を初めて4年くらいになるけど、仕事以外でエンジニアの知り合いって全然いないし、実際仕事で触れる技術なんて案外狭く浅い知識だったりする。そんな中で仕事や業務の枠の外でエンジニアの知り合って自分の知らない知識や経験に触れたいと思ったのが今回勉強会に参加した理由だったりする。
参加者は思ったよりずっと少なかったのが残念だったけど…別の会社の方とも知り合えたのでよかったし今後も参加していきたいと思う。

第一回はLinux(Ubuntu)のインストールと基礎知識を学んだので備忘録も兼ねてメモしておく。
といっても行ったのが1/26なのですでにかなり忘れてる…
LinuxはUbuntu8.04をVMwareで少し触ったことある程度で、ほぼ初めて。

Ubuntu10.10のインストール

OSのインストール自体はかなり簡単だった。
OSの入っていない空のマシンを用意する、Ubuntu10.10のDVDをつっこんでマシンを起動するとインストールのウィザードが表示されるので、ユーザー名やパスワードを設定してウィザードにしたがっていけば特になにごともなく完了する。
完了したら、アップデートマネージャーに色々なソフトウェアのアップデートを促されるのでアップデートして再起動。
全部で10分〜15分くらいだったかなー、あんま覚えてないな。。。
自宅に帰ってから改めてWindows上に仮想マシンでUbuntu10.04(なぜか10.04にしてしまった)インストールしたので、以下はそのメモ。
VMWarePlayerはすでにインストール済み。
UbuntuのサイトからUbuntuのisoファイルを落とす。
VMWarePlayerで「新規仮想マシンの作成」を選択し、「OSは後でインストールする」を選択する。
「ハードウェアの設定の変更」からCD/DVDを選択し、Ubuntuのisoファイルを読み込むように設定する。
仮想マシンを起動すれば、Ubuntuのインストールが始まるのであとは同じ。

Ubuntu(Linux)に関する基礎知識

ディレクトリ構造

ディレクトリの構造がWinとは大分異なるようで、どこに何があるかが全然分からんない。
ということでUbuntuとゆーかLinuxディレクトリ構造を調べてみた。
大体下記のようになっているようだ。

   ・/    ルートディレクト
   ・/root  ルートユーザーのホームディレクトリ 
   ・/bin   ”ls”や”vi”や”more”などの実行ファイルが含まれる
   ・/boot   Linuxカーネルやブートマネージャーなどが含まれる
   ・/etc   システム設定ファイルが含まれる。
   ・/lib   システム起動に必要なドライバモジュールやライブラリファイルが含まれる。
   ・/dev   USBや外付けドライブ、プリンターなどデバイスのファイルが含まれる。
   ・/home   ユーザ毎のデータが含まれる。/home/ユーザ名がユーザ用ディレクトリとなる。
   ・/tmp 一時データ格納ディレクトリ。 
   ・/usr   X Window Systemなどの多くのブログラムがサブディレクトリに格納されている
   ・/opt   オプションのソフトパッケージのコピー、インストールファイルが格納されている 
   ・/usr/local /usrディレクトリと似ていてローカルファイルが入っている 
   ・/media  CD-ROMやフロッピーディスクなどの外付けメディア用のディレクト

参考1:http://gigazine.net/news/20080104_linux_directory_structure/
参考2:http://gtd.studiomohawk.com/archives/137

パーミッション(権限)

Ubuntu(Linux)ではディレクトリやファイルに対してユーザー毎にパーミッション(権限)が設定される。
現在のディレクトリ内のファイルやディレクトリの一覧を表示する"ls"コマンドに"-l"オプションをつけて端末で指定すると以下のようにファイルやディレクトリのパーミッションの設定が表示される。

-rwxr--r--  1 user1 group1  179 2010-12-04 11:10 smaplefile.txt

最初の"-"は以下のようにファイルの種類を表す。
 "-" ファイル
 "d" ディレクト
 "l" リンクファイル
続く"rwxr--r--"はファイル(ここではsamplefile.txt)に対する権限。対象ユーザー毎に3桁ずつで表される。
最初の"rxw"は所有者(ここではuser1)の権限。対象のファイルに対して
 "r" 読み取り権限をもつ
 "w" 書き込み権限をもつ
 "x" 実行権限をもつ
続く"r--"は所有者が属するグループ(ここではgroup1)の権限で読み取り権限のみ与えられている。
続く"r--"はその他のユーザーの権限でこちらも読み取り権限のみ与えられている。
権限の変更を行う場合は"chmod"コマンドを利用する。
書式はchmod <ユーザー> <操作> <アクセス> <ファイルパス>のように指定する。<ユーザー>
 "a" 全ユーザー
 "u" 所有者
 "g" 所有者グループ
 "o" 他人<操作>
 "+" 権限追加
 "-" 権限除去
 "=" 権限設定
    ※"+"は権限を追加することに対して"="は一度権限をすべて除去した上で対象操作のみを再設定するイメージ<アクセス>
 "r" 読み取り権限
 "w" 書き込み権限
 "x" 実行権限
他人に書き込み権限を追加する場合は以下のようにコマンドを指定する

chmod o+w samplefile.txt

パーミションを確認すると以下のようになっているはず。

-rwxr--rw-  1 user1 group1  179 2010-12-04 11:10 smaplefile.txt

ちなみにファイルのプロパティからGUIパーミッションを変更することも可能(もちろんファイルの所有者である場合)

参考:http://homepage3.nifty.com/nasunu-i/LinuxBeginner/Permission.htm

コマンド

コマンドは"ls"や"mkdir"など基本的なものしか学ばなかった。
以下のサイトに一覧があるの必要に応じて覚えていけばいいと思う。
http://itpro.nikkeibp.co.jp/article/COLUMN/20060224/230573/
UbuntuGUIが優れているのでコマンドを使わずともGUIでなんとかなることが多かったりするみたいなのだが、サーバーOSとしてLinuxを使うこともあるだろうのでやはりコマンドにはなれておきたいところ。

日本語入力

Ubuntu(とゆーかLinux全般)では日本語入力はかな漢字変換ソフトウェアとインプットメソッドソフトウェアと二つのソフトウェアから成り立っているらしい。
Ubuntuではデフォルトでかな漢字変換ソフトウェアにAnthy、インプットメソッドにiBusというソフトウェアが採用されている。
しかしなんか使いにくいのでGoogle日本語入力オープンソース版の使用を検討してみる。

ネットワーク設定

わ、忘れた…