Skip to content

Instantly share code, notes, and snippets.

@Epictetus
Created May 13, 2012 12:45
Show Gist options
  • Save Epictetus/2688295 to your computer and use it in GitHub Desktop.
Save Epictetus/2688295 to your computer and use it in GitHub Desktop.
VirturalboxにCentOS6.2で開発環境構築 with Mosh

Table of Contents

vm

  • CentOS6.2
  • HDD=10 GB
  • MEM=768 MB
  • 192.168.56.11

必須

  • gcc, gcc-c++
  • make
  • unzip
  • wget
  • paco (tgz)
  • zsh
  • vim
  • screen
  • git
  • svn
  • sysstat
  • man
  • lv (tgz)

任意

  • MySQL 5.1
  • Nginx
  • Java
  • Play!
  • Scala
  • Ruby
  • Rails

VM作成

  1. 新規 から作成
    • 全部デフォルトで問題なし。各種サイズはデカくしたかったら適宜
  2. 設定
    • ストレージ のCD-DVDドライブにCentOSのisoファイルを設定
    • オーディオ 無効化
    • ポート> USB無効化
    • ネットワーク
      • アダプタ1 : 割り当て=NAT
      • アダプタ2 : 割り当て=ホストオンリーアダプタ
        • デフォルトだとホストオンリーを割り当てようとすると「無効な設定が見つかりました」となるので、VirtualBoxの 環境設定 - ネットワーク で+アイコンのボタンを押下してvboxnet0を追加しておく

設定

初期設定諸々

  • user
# useradd vmsk
# passwd vmsk
  • network
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
 ONBOOT="yes"
 BOOTPROTO="dhcp"
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
 ONBOOT="yes"
 BOOTPROTO="static"
 IPADDR=192.168.56.11
 NETMASK="255.255.255.0"
# service network restart
  • ssh
# vi /etc/ssh/sshd_config 
 AllowUsers vmsk
# service sshd restart
  • sudo
# yum -y install sudo
# visudo
 vmsk ALL=(ALL) PASSWD:ALL
 Defaults syslog=local3
# vi /etc/rsyslog.conf
 local3.* /var/log/sudo.log
# service rsyslog restart
  • ファイヤウォール無効化
# service iptables stop
# service ip6tables stop
# chkconfig iptables off
# chkconfig ip6tables off

  • SELinux 無効化
[root@vmcentos62 ~]# getenforce
Enforcing
[root@vmcentos62 ~]# setenforce 0
[root@vmcentos62 ~]# getenforce
Permissive

# vi /etc/sysconfig/selinux 
 SELINUX=disabled

  • アクセス制限
# vi /etc/hosts.deny
 ALL:ALL
# vi /etc/hosts.allow
 ALL:192.168.56.
  • 不要サービス停止
# service netfs stop
# chkconfig netfs off
  • yum rpmforgeリポジトリ導入
# yum -y install yum-plugin-priorities
# vi /etc/yum.repos.d/CentOS-Base.repo
 [bas
 :
 priority=1
 [updates]
 :
 priority=1
 [extras]
 :
 priority=1
# rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
  • 一般ユーザーのシェルをzshに変える ※zshインスコしてから
# chsh -s /bin/zsh vmsk

個人環境設定

% cd ~
% mkdir -p github/XXX/
% cd github/XXX/
% git clone git://github.com/XXX/dotfiles.git
% cd ~
% ln -s github/XXX/dotfiles/.screenrc
% ln -s github/XXX/dotfiles/.vim
% ln -s github/XXX/dotfiles/.vimrc.common .vimrc
% ln -s github/XXX/dotfiles/.zshrc.common
% ln -s github/XXX/dotfiles/.zshrc.common-vcs
% ln -s github/XXX/dotfiles/.zshenv.common
% vi .zshrc
 source $HOME/.zshrc.common
 source $HOME/.zshrc.common-vcs

 ##########
 # prompt customize(with color)
 PROMPT="%{${fg[yellow]}%}%/%{${reset_color}%}
 %n@%m(%h) %(!.#.%%) "
 PROMPT2="%{${fg[yellow]}%}%/%{${reset_color}%}
 %n@%m(%h)%_ %(!.#.%%) "
 SPROMPT="%{${fg[re}%}%r is correct?%{${reset_color}%}[n,y,a,: "

 alias ll='ls -lF'
 alias la='ls -laF'
 alias screen='screen -U'
 # sudo時、PATHを引き継ぐ
 alias sudo='sudo env PATH=$PATH'
% vi .zshenv
 source $HOME/.zshenv.common

 ##########
 export JAVA_HOME=/usr/local/jdk
 export SCALA_HOME=/usr/local/scala

 #"$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash
 #[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
 #

 path=(
    $JAVA_HOME/bin(N-/)
    $SCALA_HOME/bin(N-/)
    $HOME/.rvm/gems/ruby-1.9.2-p290/bin(N-/)
    $HOME/.rvm/gems/ruby-1.9.2-p290@global/bin(N-/)
    $HOME/.rvm/rubies/ruby-1.9.2-p290/bin(N-/)
    $HOME/.rvm/bin(N-/)
    $HOME/bin(N-/)
    /usr/bin(N-/)
    /bin(N-/)
    /usr/sbin(N-/)
    /sbin(N-/)
    /usr/local/bin(N-/)
    /usr/X11/bin(N-/))

 sudo_path=({,/usr/local,/usr}/sbin(N-/))

 manpath=(# 自分用
        $HOME/local/share/man(N-/)
        # git-extra
        $HOME/gitrepos/git-extras/man(N-/)
        # Java
        $JAVA_HOME/man(N-/)
        # Scala
        $SCALA_HOME/man(N-/)
        # システム用
        /usr/local/share/man(N-/)
        /usr/share/man(N-/))

lv

% sudo yum -y install compat-libtermcap ncurses-devel
% wget http://www.ff.iij4u.or.jp/~nrt/freeware/lv451.tar.gz
% tar -zxvf lv451
% cd lv451/build
% ../src/configure
% make
% sudo paco -p lv451 make install

Nginx

% sudo useradd -s /sbin/nologin -d /usr/local/nginx -M nginx
% sudo yum -y install openssl-devel pcre-devel zlib-devel
% sudo vi /etc/yum.repos.d/nginx.repo
 [nginx]
 name=nginx repo
 baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
 gpgcheck=0
 enabled=1
% sudo yum -y install nginx

MySQL 5.1

% sudo yum -y install mysql-server
% sudo yum -y install mysql-bench
% sudo yum -y install mysql-devel

Java

 (Oracleから最新のrpmを取得)
% sudo rpm -ivh jdk-7u3-linux-x64.rpm
% rpm -ql jdk
 (インストール先を確認)
% cd /usr/local
% sudo ln -s /usr/java/jdk1.7.0_03 jdk
% java -version
 java version "1.7.0_03"
 Java(TM) SE Runtime Environment (build 1.7.0_03-b04)
 Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)

Scala

% tar -zxvf scala-2.9.1-1.tgz
% sudo mv scala-2.9.1-1 /usr/local
% cd /usr/local
% sudo ln -s scala-2.9.1-1 scala
% scala -version
 Scala code runner version 2.9.1-1 -- Copyright 2002-2011, LAMP/EPFL

sbt

% cd ~/bin
% wget http://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-tools.sbt/sbt-launch/0.11.2/sbt-launch.jar
% vi sbt
 java -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M -jar `dirname $0`/sbt-launch.jar "$@"
% chmod +x sbt
% cd <SCALA_PROJECT_DIR>
% vi build.sbt
 name := "Aho"

 version := "1.0"

 scalaVersion := "2.9.1-1"
% sbt

Ruby

% sudo yum -y install libyaml
% sudo yum -y install libyaml-devel
% tar -zxvf ruby-1.9.3-p125.tar.gz
% cd ruby-1.9.3-p125   
% ./configure --prefix=/usr/local
% make
% sudo paco -D make install
% gem install rails

Mosh

% sudo yum -y install boost

% wget http://protobuf.googlecode.com/files/protobuf-2.4.1.tar.gz
% tar -zxvf protobuf-2.4.1.tar.gz
% cd protobuf-2.4.1
% ./configure LDFLAGS=-Wl,-rpath,/usr/local/lib --prefix=/usr/local 
% make
% sudo paco -D make install

% git clone http://github.com/rurban/mosh.git
% cd mosh
% export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
% ./autogen.sh   
% ./configure --prefix=/usr/local
% make
% sudo paco -D make install

% sudo yum -y install perl-IO-Pty-Easy

% mosh --help
Usage: /usr/bin/mosh [options] [--] [user@]host [command...]
        --client=PATH        mosh client on local machine
                                (default: "mosh-client")
        --server=PATH        mosh server on remote machine
                                (default: "mosh-server")

        --predict=adaptive   local echo for slower links [default]
-a      --predict=always     use local echo even on fast links
-n      --predict=never      never use local echo

-p NUM  --port=NUM           server-side UDP port

        --help               this message
        --version            version and copyright information

Please report bugs to [email protected].
Mosh home page: http://mosh.mit.edu

% cd /usr/local/bin
% sudo mv mosh-server mosh-server.REAL
% sudo vi mosh-server
 #!/bin/sh
 LD_LIBRARY_PATH=/usr/local/lib:/usr/lib exec /usr/local/bin/mosh-server.REAL "$@"
% sudo chmod +x mosh-server

Client(Mac)

% brew update
% brew install protobuf
% brew install boost
% brew install pkg-config

% git clone https://github.com/keithw/mosh.git
% cd mosh
% ./autogen.sh
% ./configure
% make
% make install

% mosh user@centos62
user@centos62's password: 
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment