はじめてのHaskell
IDE環境の構築とHello world出力までの手順
- ghcをダウンロード(http://www.haskell.org/ghc/)してインストールする。今回はGHC 7.2.1を使いました。
- Eclipceをダウンロード、インストールと実行
- EclipceFPをインストール。EclipceFPはEclipce上でHaskell開発を行うためのプラグインです。
- Eclipceを起動し、メニューバーからヘルプ⇒新規ソフトウェアのインストールを選択する。
- 開かれたインストールウィンドウの作業対象に"http://eclipsefp.sf.net/updates"を入力し、"追加"ボタンを押す。
- 開かれたリポジトリの追加ウィンドウの名前入力欄に"EclipceFP"と入力し、"OK"ボタンをを押す。リポジトリの追加ウィンドウが閉じた後に自動でEclipceFPのサイトに接続し、インストールするファイルの情報をダウンロードします。この処理には少し時間がかかります。インストールウィンドウの名前やバージョンと書かれたテーブルに"Functional Programming"と表示されていれば次に移ります。
- Functional Programmingの左のチェックボックスにチェックを入れ、"次へ(N)"ボタンを押します。
- インストールされる項目の確認が表示されます。"FP: Haskell support for Eclipse"があることを確認後、"次へ(N)"ボタンを押します。自動でインストール作業が開始されます。
- ライセンス確認を求められます。ライセンスに目を通して同意できるならば、"使用条件に同意します(A)"をチェックし、"完了(F)"ボタンをを押します。
- インストール作業中にセキュリティー警告ウィンドウが表示されますがOKを押してください。
- Haskellプロジェクトを作ってみる
- Eclipceを起動し、メニューバーからファイル⇒新規⇒プロジェクトで新規プロジェクトウィンドウを開く。
- HaskellフォルダのHaskell Projectをダブルクリックする。
- プロジェクト名を設定する。今回は"HelloWorld"とする。
- "完了(F)"を押してプロジェクトを押すとプロジェクトが作成される。
- プロジェクトのsrcフォルダ内にあるMain.hsを選択する。(このファイルがソースファイル)
- 以下のようにファイルを記述する。 main = print("Hello world.")
- メニューバーから実行(R)⇒実行(R)を選択。次を実行ウィンドウでGHCi sessionを選び、"OK"ボタンを押す。
- コンソールに下記のような表示がされている。
GHCi, version 7.2.1: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
[1 of 1] Compiling Main ( C:\Haskell\workspace\HelloWorld\src\Main.hs, interpreted )C:\Haskell\workspace\HelloWorld\src\Main.hs:1:1:
Warning: Top-level binding with no type signature: main :: IO ()
Ok, modules loaded: Main.
*Main>
ここでコンソールに
*Main> main(+Enter)
を入力すると
"Hello world."
と出力される。
以上でHello worldまで完了。
subversion インストール
バージョン管理がほしくなったのでUbuntu10.04にsubversionを導入
Subversion本体とツール郡のインストール
$ sudo aptitude install subversion subversion-tools
Apache2とsvn用モジュールをインストール
dav_svn.confの設定を行う。
$ sudo vi /etc/apache2/mods-enabled/dav_svn.conf
今回はsubversion用のディレクトリを/home/svn/svn(事前に作成済み)にしています。
設定をしたら、Apacheを再起動します。
$ sudo /etc/init.d/apache2 restart
ブラウザから
http://
にアクセスしてCollection of Repositories(リポジトリ一覧)とでればOK。
リポジトリ一覧はリポジトリは作っていないので、空の表示になる。
テスト用のリポジトリ作成
$ cd /home/svn/svn
$ sudo svnadmin create test
$ sudo chown -R www-data.www-data test
http://
アクセスできればOK
Cassandraインストール
Cassandra wikiの通りに設定すれば終わるのだけど一応メモ
Cassandra wiki
Cassandra wiki 公式debianパッケージ説明
Cassandra wiki Configの説明
環境は以下の通り
OS:Ubuntu10.10
Cassandra:0.7
まずはCassandraを動かすためにjdkをインストールする。
$sudo apt-get install openjdk-6-jdk
続いて、Cassandraをインストールするためにsources.listに設定を追加する。
$sudo gedit /etc/apt/sources.list
下記の設定を追記する。
deb http://www.apache.org/dist/cassandra/debian unstable main
deb-src http://www.apache.org/dist/cassandra/debian unstable main
aptをアップデートをしたいのだが、
$sudo apt-get update
実行するとすると
W: GPG エラー: http://www.apache.org unstable Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY F758CE318D77295D
と出力され、公開鍵が設定されていないことが分かる。
$gpg --keyserver pgp.mit.edu --recv-keys F758CE318D77295D
$gpg --export --armor F758CE318D77295D | sudo apt-key add -
公開鍵を設定を設定します。
aptをアープデートしてCassandraをインストールします。
$sudo apt-get update
$sudo apt-get install cassandra
これでインストールは完了
次に基本的な初期設定をする。
Cassandraをスタートさせる。
$sudo /etc/init.d/cassandra start
Schema構造情報を読み込ませる。
$schematool localhost 8080 import
cassandra-cliを使ってCassandraの状態をを確認する。
$cassandra-cli
>connect localhost/9160;
>show keyspaces;
Keyspace: Keyspace1:
…
と出力されれば初期設定完了
>exit;
でcassandra-cli を終了します。
VNCによるリモートログインまとめ
Ubuntu10.10でのVNCによるリモートログインの方法。
インストール時のGDMではXDMCP接続ができないので、まずGDMのバージョンアップをします。
https://launchpad.net/ubuntu/+source/gdm/
で最新版のgdmをダウンロードし、Ubuntuソフトウェアセンターからアップグレードする。今回は2.32.0-0ubuntu3を使いました。
GDMでXDMCPを有効にするため、custom.confを設定する。custom.confがない場合は新規に作成します。
$sudo gedit /etc/gdm/custom.conf
custom.confに以下を付け加える。
[xdmcp]
Enable=true
編集したら保存し、gdmを再起動する。再起動するには Ctrl-Alt-F1 でシェルプロンプトに移り、
$sudo /etc/init.d/gdm restart
で再起動する。再起動するとGUI画面に移るので、Ctrl-Alt-F1でシェルプロンプトに戻り、
$exit
でログアウトする。ログアウトしたら Ctrl-Alt-F7で X グラフィックのGUI画面に戻る。
gdmの再起動がうまくいできないならばPC自体を再起動すればよい。
次に、vnc4serverとvnc4serverをアクセスがある度に起動させるためのxinetdをインストールする。
sudo apt-get install vnc4server xinetd
vnc4serverでのパスワードファイルを作る。パスワードは短すぎると怒られます。
sudo vncpasswd /etc/vncpasswd
sudo chown nobody /etc/vncpasswd
sudo chgrp nogroup /etc/vncpasswd
xinetdの設定ファイルの記述。
sudo gedit /etc/xinetd.d/xvnc
今回は下記のようにする。
service Xvnc
{
type = UNLISTED
disable = no
socket_type = stream
protocol = tcp
wait = yes
user = nobody
group = tty
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -geometry 800x600 -depth 24 -once -DisconnectClients=0 -desktop vboxpc -NeverShared PasswordFile=/etc/vncpasswd
port = 5900
}
xinitdを再起動する。
$sudo /etc/init.d/xinetd restart
ここまででVNCクライアントからの接続はできるようになるがショートカットキーの初期設定がおかしく?、d キーが全てのウィンドウを隠すショートカットに当てられているので直します。(直さないと小文字のdが押せない状態です。)
VNCでログイン後、上部のパネル(Windowsでのタスクバー)から
[システム]⇒[設定]⇒[キーボードショートカット]
でキーボードショートカットウィンドウを出し、スクロールして「すべての通常ウィンドウを隠してデスクトップにフォーカスを移す」の項目を探す。
ショートカットキーがd キーになっているならば選択し、バックスペースで無効にする。
ログアウト(VNCクライアントの切断ではない)をし、再度ログインすればショートカットキーの変更が適応される。
日本語入力の切り替えは、半角/全角キーが使えないので代用手段として標準設定ならばCtrl+スペースで切り替えができます。
Ubuntu HDD 追加
SSDの容量ではNASの運用に対応できなくなってしまったのでHDDを追加
HDDを設置した後、認識されているかチェック
$sudo ls -l /dev | grep sd
lrwxrwxrwx 1 root root 4 2011-01-09 04:16 root -> sda1
brw-rw---- 1 root disk 8, 0 2011-01-09 04:16 sda
brw-rw---- 1 root disk 8, 1 2011-01-09 04:16 sda1
brw-rw---- 1 root disk 8, 2 2011-01-09 04:16 sda2
brw-rw---- 1 root disk 8, 5 2011-01-09 04:16 sda5
brw-rw---- 1 root disk 8, 16 2011-01-09 04:16 sdb
sdの後にアルファベットが続き、数値のいないものをチェック。
数値のついているものはパーティションが分けられた結果なので、新規にHDDを追加した場合、パーティションの存在しないものが新規のHDDとわかる。(今回はsdb)
追加したHDDのパーティションを作成する。
$sudo fdisk /dev/sdb
fdiskの指示にしたがえば簡単にパーティションを分けられる。
パーティションを分けたらフォーマットをする。
$sudo mkfs -T ext4 /dev/sdb1
パーティションをマウントするディレクトリを作成し、マウントする。
今回はNASということでexportをルートに作り、そこにマウントする。
きっと一般的出ない設定のはず
$sudo mkdir -p /export
$sudo sudo mount -t ext4 /dev/sdb1 /export
マウントできたかは以下で確認できる。
$sudo df -h
最後に自動的にマウントされるようにfstabを書き換える。
$sudo gedit /etc/fstab
最後の行に以下を追加
/dev/sdb1 /export ext4 defaults 1 1
再起動してマウントできていれば、設定完了
抱負
考える力をつける。
裏を読む。掘り下げる。
なぜ?、本質は?、何を望むか?