僕のYak Shavingは終わらない

車輪の再発明をやめたらそこには壮大なYakの群れが

さくらのVPSにCent OS 6.2を入れた時の初期設定

※$や#はあえて書いていません。コピペしやすいので。

基本的には以下を元にしてる
http://weble.org/2011/05/16/sakura-vps-and-centos

rootでログイン

https://secure.sakura.ad.jp/vpscontrol/main/
さくらの管理画面からCentOS6.2(デフォ)をインストール
VPSホームのIPアドレスに対して(自分は)Puttyからアクセス
パスワードはOSをインストールするときに入力したものを入力
一瞬だ

Userの設定

adduser hogeta
passwd hogeta
# このあと2回入力を求められるので入力

rootと違うものがよいと思われ

sshのPort番号の設定

vi /etc/ssh/sshd_config
#Port 22
Port 10022 # 適当な数字、なんでもよい
/etc/init.d/sshd restart # 入力終わったら再起動

iptablesの設定

vi /etc/sysconfig/iptables

*filter
:INPUT   ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT  ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH, HTTP, FTP1, FTP2, MySQL
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10022 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80    -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20    -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21    -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306  -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT

# 再起動
/etc/rc.d/init.d/iptables restart

sshの設定

vi /etc/ssh/sshd_config
# 以下変更点
PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
# ssh再起動
/etc/init.d/sshd restart

sshの鍵設定

puttygenで作成した公開鍵を使った

cd
mkdir .ssh
echo '公開鍵の中身' > authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

sudoerの設定

/usr/sbin/visudo
hoge ALL=(ALL) ALL #上で作ったUserを追加

mysqlの設定

sudo yum -y install mysql-server

設定ファイルをここを参照

Vimの設定

以下参照
https://github.com/kazuph/dotfiles

tmuxの設定

sudo yum install -y tmux

ですんなり入る

zshの設定

sudo yum install -y zsh

oh-my-zshいいよね

curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh
chsh -s /bin/zsh # デフォルトをzsh

yumをまとめていれる

perlとかrubyとかnginxとかコンパイルしますよね?
する方は以下を実行

sudo yum grouplist

yum grouplistで必要なものをひとまとめにインストールできるんだけど、そのリストの一覧が見れる

使いそうなものをかいつまんで入れてみる

yum groupinstall -y "Perl Support" # やる必要なかも
yum groupinstall -y "Development tools" # やる必要ないかも
yum groupinstall -y "Ruby Support"
yum groupinstall -y "Haskell"
yum groupinstall -y "Emacs"

rubyのセットアップ

ruby自体は入れたけど

ruby -v
ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]

お分かりですよね?

自分はrbenv派なので
基本は以下の記事を参考にしているけどちょこちょこ変えてる
http://mukaer.com/archives/2012/03/12/rubyrbenv/

cd
git clone git://github.com/sstephenson/rbenv.git .rbenv

自分の場合はzsh派なので以下のような設定を追記する

cat .zshenv
# rbenv
if [ -d ${HOME}/.rbenv  ] ; then
  PATH=${HOME}/.rbenv/bin:${PATH}
  export PATH
  eval "$(rbenv init -)"
fi

自分はvimのquickrunでrubyを呼び出すことが多いんだけど上記のように設定したのは以下の記事が理由(まあドキュメント読めって話ですが紹介記事で満足しちゃいますよね)。
http://blog.glidenote.com/blog/2012/06/26/vim-zshenv-rbenv/

でシェルのリスタート

exec $SHELL

ruby-buildのインストール

mkdir -p ~/.rbenv/plugins
cd ~/.rbenv/plugins
git clone git://github.com/sstephenson/ruby-build.git

rbenv-gemsetのインストール

cd ~/.rbenv/plugins
git clone git://github.com/jamis/rbenv-gemset.git

これからビルド!だけど一応コア数を求める

cat /proc/cpuinfo | grep "cpu cores"
cpu cores       : 1
cpu cores       : 1
cpu cores       : 1

1ってなってればコア数が1つしかないんで特にオプション設定せず。

インストールするバージョン一覧を確認

rbenv install --list

ここでは1.9.3-p194と2.0.0-devを入れる

MAKEOPTS=" -j 1" # 意味ないけど
rbenv install 1.9.3-p194
rbenv install 2.0.0-dev 
rbenv rehash
source .zshrc # する必要があった

結構時間かかるので放置。

切り替えはrbenv global

rebenv global 2.0.0-dev
ruby -v
ruby 2.0.0dev (2012-09-18 trunk 36986) [x86_64-linux]

rubyオプションのついたvimをいれる

そのもそもrubyオプションがついているか確認

vim --version | grep ruby
+printer +profile +python +quickfix +reltime +rightleft -ruby +scrollbind

うん、ついてない

yum remove vim vim-enhanced
yum install ncurses-devel -y
svn co https://vim.svn.sourceforge.net/svnroot/vim/vim7
cd vim7

./configure \
--with-features=huge \
--enable-multibyte \
--enable-rubyinterp \
--enable-pythoninterp \
--enable-perlinterp \
--enable-gpm \
--enable-cscope \
--enable-fontset

make && make install
# もしかしたらyum -y install ruby-develしてないかもしれない

もう一度確認

vim --version | grep ruby
zsh: correct 'vim' to 'vi' [nyae]? n
+printer +profile -python +quickfix +reltime +rightleft +ruby +scrollbind
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H     -g -O2 -D_FORTIFY_SOURCE=1    -D_REENTRANT -D_GNU_SOURCE  -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib64/perl5/CORE    -I/usr/lib64/ruby/1.8/x86_64-linux -DRUBY_VERSION=18
Linking: gcc   -L.  -rdynamic -Wl,-export-dynamic  -Wl,-E -Wl,-rpath,/usr/lib64/perl5/CORE   -L/usr/local/lib -o vim       -lm -lncurses -lselinux   -Wl,-E -Wl,-rpath,/usr/lib64/perl5/CORE  -fstack-protector  -L/usr/lib64/perl5/CORE -lperl -lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc   -lruby -lpthread -lrt -ldl -lcrypt -lm

なんか大漁!でもちゃんと+rubyになっていることがわかる。

あとはvim-rubyのセットアップ

gem install vim-ruby
vim-ruby-install.rb

参考:http://d.hatena.ne.jp/hayori/20080607/1212832293

とここまでやって以下の記事でRSenceならrubyオプション要らない的なことが書いてるのを発見したorz
http://vim-users.jp/2011/09/hack229/

perlのセットアップ

自分としたことがperl環境を作る前にrubyにやっていたなんて…

curl -kL http://install.perlbrew.pl | bash
# echo source ~/perl5/perlbrew/etc/bashrc >> ~/.zshrc
source ~/.zshrc
perlbrew install --notest perl-5.14.2
perlbrew switch perl-5.14.2
perl -v
curl -kL http://install.perlbrew.pl | bash
#echo source ~/perl5/perlbrew/etc/bashrc >> ~/.zshrc
source ~/.zshrc
perlbrew install --notest perl-5.14.2
perlbrew switch perl-5.14.2
perl -v
curl -L http://cpanmin.us | perl - App::cpanminus


※この記事は書きかけでkazuphが出社してしまっています。
※またここまで書いた後記事を分けたほうがいいと思い始めました。