CentOS6.5 をインストールした
Docker やってて,Mac では試せていたけど,Linux と Windows でも試そうと
思っていて,とりあえず久し振りに Linux をインストールするか.と思った次第.
とりあえず,光学メディアを用意するのが面倒だったので,
PXE ブートを試す.
- http://int128.hatenablog.com/entry/20131023/1382458661
- http://d.hatena.ne.jp/dayflower/20090810/1249875581
この辺をそのままやった感じです.
DHCP が居るので,ProxyDHCP にて.
(この辺もうちょっと調べてみたい)
$ brew install dnsmasq $ rehash $ mkdir /tmp/tftpboot cat >>EOL > /usr/local/etc/dnsmasq.conf no-daemon dhcp-leasefile=/tmp/dnsmasq.lease port=0 dhcp-range=192.168.1.0,proxy pxe-service=x86PC,install,pxelinux enable-tftp tftp-root=/tmp/tftpboot EOL $ cd /tmp/tftpboot $ mkdir pxelinux.cfg $ cat >>EOL > pxelinux.cfg/default label install kernel vmlinuz append load initrd=initrd.img EOL
192.168.1.0 はDHCP に合わせた適当な値で.
イメージを落としてくる.
$ curl -LO http://ftp.iij.ad.jp/pub/linux/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso
これをマウントして,ファイルを取り出す.
(rpm2cpio が無かったから途中で入れました)
$ cd /tmp/tftpboot $ cp /Volumes/CentOS_6.5_Final/images/pxeboot/initrd.img . $ cp /Volumes/CentOS_6.5_Final/images/pxeboot/vmlinuz . $ cp /Volumes/CentOS_6.5_Final/Packages/syslinux-4.02-8.el6.x86_64.rpm . $ brew install rpm2cpio $ rehash $ rpm2cpio.pl syslinux-4.02-8.el6.x86_64.rpm | cpio -id ./usr/share/syslinux/pxelinux.0 $ mv ./usr/share/syslinux/pxelinux.0 . $ rm -rf usr syslinux-4.02-8.el6.x86_64.rpm $ ls initrd.img pxelinux.0 pxelinux.cfg/ vmlinuz
$ sudo dnsmasq
これでPXEブート選択すればできました.
Rails Girls Nagoya を見学してきた
たまたま機会があったので,Rails Girls Nagoya 1st Nagoya 7-8th March 2014 を見学させてもらいました.
スタッフの方ありがとうございます.
そのときに,見学するだけなのもアレなので,
自分でもやってみようと思っていたので,
やっていたが,なかなかうまくいかなかったので,
とりあえずこの記事に追記していこうと思う.
これくらいで環境を作りたい.(MacOSX の場合)
$ brew bundle $ rehash $ VBoxManage "boot2docker-vm" --natpf1 "tcp-port3000,tcp,,3000,,3000" $ boot2docker up $ docker run -p 3000:3000 -rm clairvy/railsgirls
又は
$ brew bundle $ VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port3000,tcp,,3000,,3000" $ boot2docker up $ docker build -t clairvy/railsgirls . $ docker run -p 3000:3000 clairvy/railsgirls
2014/3/17
今んとこ,source ~/.rvm/script/rvm のところで,途中で抜けているみたい.
set -e と関係ありそうだけど,
$ bash <( echo 'set -e; source ~/.rvm/scripts/rvm; echo $?' ) $
って書きながら思ったけど,source で $? って変化しなくね?
と思ったらしていた.
$ cat a bash -c 'exit 1' $ bash <( echo 'source a; echo $?' ) 1
とりあえず今はこんな感じ.
2014/3/18
これで一応動くは動くのだけど.
$ curl -s https://raw.github.com/railsgirls/installation-scripts/master/rails-install-fedora.sh | sed -e 's#source ~/.rvm/scripts/rvm#set +e;source ~/.rvm/scripts/rvm;echo $?;set -e#' | bash
2014/3/23
issm さんに,boot2docker ですよ.と言われたので入れてみる.
Brewfile で,boot2docker を入れる.(イマドキ brew bundle はもう修正されているかもしれないけど,とりあえずWarning を抜くのを入れてある)
install boot2docker 2>&1 | egrep -v '^Warning: ' || true tap 'phinze/cask' 2>&1 | egrep -v '^Warning: ' || true install brew-cask 2>&1 | egrep -v '^Warning: ' || true cask install virtualbox 2>&1 | egrep -v '^Warning: ' || true
$ brew bundle $ rehash $ boot2docker Usage /usr/local/bin/boot2docker {init|start|up|save|pause|stop|restart|status|info|delete|ssh|download} $ docker -v Docker version 0.9.0, build 2b3fdf2 $ boot2docker init $ boot2docker status [2014-03-23 15:35:01] boot2docker-vm is stopped. $ boot2docker up [2014-03-23 15:35:19] Starting boot2docker-vm... [2014-03-23 15:35:38] Started. To connect the docker client to the Docker daemon, please set: export DOCKER_HOST=tcp://localhost:4243 $ boot2docker status [2014-03-23 15:36:26] boot2docker-vm is running. $ DOCKER_HOST=tcp://localhost:4243 docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES $ DOCKER_HOST=tcp://localhost:4243 docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
とりあえず,環境変数で指定するの面倒だったので,いつか直りそうだけど,
今使えるものを書く..zshrc とかに.
これで,boot2docker up → docker build . である程度できそうな気がしてきました.
2014/3/25
とりあえず,docker push しておいたので,見られるようになった.
USER とかDockerfile にまだ修正するつもりだが動くようになった.
$ docker pull clairvy/railsgirls
https://index.docker.io/u/clairvy/railsgirls/
VBoxManage が覚えられない.
なのでスクリプトにして,必要になったときだけ直接書けばいいかな.と思った.
# boot2docker if whence -p VBoxManage 2>&1 > /dev/null; then alias boot2dockershowpf='VBoxManage showvminfo boot2docker-vm | egrep "NIC.*Rule" | perl -lpe '\''s/NIC (\d+) Rule\(\d+\)/natpf\1/;s/,[^,]+ = /,/g;s/:[^:]+ = / /g'\''' alias boot2dockershowpf-name='boot2dockershowpf | awk -F, '\''{print $1}'\' function boot2docker-add-pf { if [[ $# -lt 1 ]]; then echo "usage : $0 <port>" else VBoxManage controlvm boot2docker-vm natpf1 "tp$1,tcp,,$1,,$1" fi } function boot2docker-del-pf { if [[ $# -lt 1 ]]; then echo "usage : $0 <name>" else VBoxManage controlvm boot2docker-vm natpf1 delete $1 fi } fi
2014/3/28
centos だと EPEL 導入後だったら,でいいんすかね.
$ sudo yum -y install docker-io
$ rehash
$ sudo service docker start
$ sudo chkconfig docker on
Windows のテスト環境ってどうやって作るといいんだろ?
- 作者: 成瀬ゆい,そらは(福森匠大),西磨翁,小川航佑,佐藤新悟,塚越啓介,藤原亮,堀哲也,田村孝文,桑野章弘,松浦隼人,中村俊之,田中哲,福永亘,杉山仁則,伊藤直也,登尾徳誠,近藤宇智朗,若原祥正,松木雅幸,奥野幹也,後藤秀宣,羽二生厚美,笹田耕一,平河正博,東舘智浩,渡邊恵太,中島聡,A-Listers,はまちや2,川添貴生,山田育矢,伊藤友隆,村田賢太,まつもとゆきひろ,佐野岳人,山口恭兵,千葉俊輝,平松亮介,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2014/02/22
- メディア: 大型本
- この商品を含むブログ (2件) を見る
CPS変換ってことでもないこと
継続が昔からよくわからんので丁寧に読んでいる感じ.
http://www.shido.info/lisp/scheme_cc.html
この辺とかも見てる.
CPS 変換してみたり,クロージャの連鎖という表現,末尾再帰とリンクするような.
もにゃっとしてる.
#!/usr/bin/env gosh (define reciprocals (lambda (ls) (call/cc (lambda (k) (map (lambda (x) (display x) (if (= x 0) (k "zero found") (/ 1 x))) ls))))) (reciprocals '(1 2 3)) ; => (1 1/2 1/3) (reciprocals '(1 2 3 0 4 5 6)) ; => "zero found" (define reciprocals2 (lambda (ls) ;; (define map1 ;; (lambda (p ls k) ;; (let ((break k)) ;; (let f ((ls ls) (k k)) ;; (if (null? ls) ;; (k '()) ;; (f (cdr ls) (lambda (r) ;; (p (car ls) (lambda (x) ;; (k (cons x r))) break)))))))) (define map1 (lambda (p ls k) (let ((break k)) (let f ((ls ls) (k k)) (if (null? ls) (k '()) (p (car ls) (lambda (x) (f (cdr ls) (lambda (r) (k (cons x r))))) break)))))) (map1 (lambda (x k break) (display x) (if (= x 0) (break "zero found") (k (/ 1 x)))) ls (lambda (x) x)))) (reciprocals2 '(1 2 3)) ; => (1 1/2 1/3) (reciprocals2 '(1 2 3 0 4 5 6)) ; => "zero found"
これの結果がこんな感じで,逆順になるのがわかるんだけど,
もにゃっとしてる.
123(1 1/2 1/3) 1230"zero found" 321(1 1/2 1/3) 6540"zero found"
って書いてから思ったけど,これCPS 関係なくて,
ただ問題が等価変換じゃないだけのような気がした.
ということで,p の適応を前に持ってきた.
これでいいのかも.
- 作者: R.ケントディヴィグ,R.Kent Dybvig,村上雅章
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2000/05
- メディア: 単行本
- 購入: 2人 クリック: 71回
- この商品を含むブログ (19件) を見る
初心者向けのこと
とりあえずメモ的なものを残しておきます.
これは編集する予定です.
初心者向けの会をやろうと思っています.
やりたいこと.
- バーチャルマシンをインストール
- インストール
- Snapshot を取る
- Perl インストール
- ハローワールド(perl -e)
- perl -le 'print "Hello World!"'
- perldoc
- 文法要素を書く(*.t)
- スクリプト
- sub, package, リファレンス, ハッシュ
- 正規表現, スコープ
- use, bless
- Web とか発展形
みたいなことを考えている.
*.t から書くのは,プログラミングの基礎を最近ちょっと見てたからです.
- 目的
- 入力,出力
- 場合分けの例
- 構造を持つ場合
バーチャルマシンなのは,Windows 対策ですかね.それと snapshot
なんかこう.3回くらいで終わって,同じのをやるというのもアリかも.
そうすると発展形は別の機会の方がわかりやすいかも.
プログラミングの基礎 (Computer Science Library)
- 作者: 浅井健一
- 出版社/メーカー: サイエンス社
- 発売日: 2007/03
- メディア: 単行本
- 購入: 14人 クリック: 372回
- この商品を含むブログ (95件) を見る
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/07/25
- メディア: 大型本
- 購入: 3人 クリック: 11回
- この商品を含むブログ (9件) を見る
- 作者: Randal L. Schwartz,brian d foy,Tom Phoenix,吉川英興,伊藤直也,田中慎司,株式会社ロングテール/長尾高弘
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2006/10/21
- メディア: 大型本
- 購入: 9人 クリック: 361回
- この商品を含むブログ (97件) を見る
初期設定
たまたま,Mac を初期設定をする機会があったので残しておいてみる.
- Xcode
- Homebrew
- perlbrew
Xcode は普通でいい.
Homebrewも,そのまま
$ brew install lv $ brew install zsh $ brew install emacs --HEAD --use-git-head --cocoa --srgb
Perlbrewもそのまま.
$ curl -kL http://install.perlbrew.pl | bash $ source ~/.zshrc $ rehash $ perlbrew install perl-5.16.1 $ perlbrew lib create jwt $ perlbrew switch perl-5.16.1@jwt $ perlbrew list $ perlbrew install-cpanm $ cpanm Module::Install $ cpanm Module::Install::AuthorTests $ cpanm Module::Install::Repository
みたいな.