ZONDEEL BLOG

技術と生活のログ

Ubuntu で Ruby の開発環境を構築する

対象とする Ubuntu は 14.10 とします。

rbenv, ruby-build をインストールする

ruby複数バージョンを管理、インストールする為に
rbenv をインストールします。

以下の github ページ内の手順を
参考に2つをインストールします。



ruby をインストールする

rubyの公式サイトを元に現在の安定版をインストールすることにします。

オブジェクト指向スクリプト言語 Ruby

$ rbenv install -l
$ rbenv install 2.1.3
$ rbenv global 2.1.3

Ubuntu 14.04 デスクトップ開発環境構築手順 [Unity, Rails, Ramdisk, SSD]

OS:Ubuntu 14.04 LTS 日本語 Remix 64bit

ホームディレクトリ以下の日本語ディレクトリを英語名へ変更する

env LANGUAGE=C LC_MESSAGES=C xdg-user-dirs-gtk-update

インストールするパッケージ

sudo apt-get -y install curl tree libreadline-dev autoconf bison build-essential libssl-dev libyaml-dev zlib1g-dev libncurses5-dev git xclip mysql-server libffi-dev libmysqlclient-dev unrar p7zip-full vim-gtk

特に必須ではないパッケージ

sudo apt-get -y install comix smplayer

標準のエディタを vim へ変更する

sudo update-alternatives --config editor

sudo のパスワード入力を省略

以下コマンドを実行し

sudo visudo

開いたテキスト内に以下を追記します。

username ALL=(ALL) NOPASSWD:ALL

ssh-agent を設定する

~/.ssh ディレクトリ以下に秘密鍵を配置する。
設定した鍵の内容が出力されること。

$ ssh-add -l
2048 xx:xx:xx...

登録された鍵の確認をする

ssh-add ~/.ssh/private_key
.ssh/config を作成する

.ssh/config を作成し、以下の内容を記述します。

ForwardAgent yes

使用するフォントをインストールする

プログラミング用フォントの Ricty を使用する。

yascentur/Ricty · GitHub

作成した .ttf ファイルを fonts ディレクトリに配置します。
/usr/share/fonts/truetype/ 以下に ricty ディレクトリを作成します。
fc-cache コマンドは fonts ディレクトリを再スキャンします。

mkdir /usr/share/fonts/truetype/ricty
cp ./*.ttf /usr/share/fonts/truetype/ricty
sudo fc-cache -fv

Gnome terminal へフォントを設定する

gnome terminal では何故かフォント設定で Ricty を設定できないので
以下のコマンドで設定を行う。

gconftool-2 --get /apps/gnome-terminal/profiles/Default/font
gconftool-2 --set /apps/gnome-terminal/profiles/Default/font --type string "Ricty Regular 12"

Vimの設定

neobundle をインストールする

vim 内のパッケージ管理を行うツール

.vimrc を設定

github から以下のリポジトリを clone して
シンボリックリンクを張る。

git clone https://github.com/zondeel16/dotfiles.git

AppArmorを無効化

AppArmorとは以下のようなものです。

AppArmor - openSUSE
Linuxキーワード - AppArmor:ITpro

セキュリティを上げるために存在するものだが
自分環境上非常にハマる要因となるため、無効にして運用する。

grubの設定を開きます。

sudo vi /etc/default/grub

以下の GRUB_CMDLINE_LINUX を変更します。

GRUB_CMDLINE_LINUX="apparmor=0"

編集後、Grubの設定を更新し再起動します。

sudo update-grub
sudo reboot

Unity の設定を変更する。

unity-tweak-tool をインストールし、各設定を変更する。

sudo apt-get install unity-tweak-tool
unity-tweak-tool

基本的には演出をすべて切る。
特に Window snapping は嫌なので切る。

スクロールバーの表示を変更

スクロールバーの仕様がオンマウスして表示されるようなもので
使いづらいので以前のようなスタイルに以下のコマンドで変更する。

gsettings set com.canonical.desktop.interface scrollbar-mode normal

デュアルディスプレイの場合に行う設定

システム設定 > ディスプレイ を開き、
「ディスプレイを隣接する」をオフにします。

こうしないと中間部分で引っかかってしまう様子。

その他の設定

Ubuntu 上で MySQL の tmpdir, datadir を別ストレージ(SSD)、 Ramdisk へ変更する。

Ubuntu 14.04 LTS を使用しています。

SSDにOSが入っており、
HDD及びRamdiskにアクセスを逃がす意味で設定を行います。

以下のようなディレクトリに各デバイスをマウントします。

HDD = /storage (注:/mnt/XXX に対するシンボリックリンク)
SSD = /ramdisk

各設定とディレクトリは以下のようにつながります。

tmpdir: /ramdisk
datadir: /storage/mysql

tmpdir の変更

my.cnf を開き

sudo vi /etc/mysql/my.cnf

tmpdir 項目を変更する。

tmpdir = /ramdisk

注意すべきはこの設定を適用した場合に
MySQL を起動すると /ramdiskパーミッション
777 の場合だとしても権限がないと以下のように怒られてしまう。

/usr/sbin/mysqld: Can't create/write to file '/ramdisk/ib4pRsqd' (Errcode: 13)

結論としては AppArmor がアクセス制御している為で、
今回は MySQL を AppArmor の制御外とすることで対処します。

sudo apt-get install apparmor-utils
aa-disable /usr/sbin/mysqld

これで tmpdir の変更が出来たと思います。

datadir の変更

HDDのマウント

fstab を開き

sudo vi /etc/fstab

以下のような内容を書き込みます。
今回は権限が 777 となるよう umask=000 を指定しています。

/dev/disk/by-uuid/XXXX-ZZZZ /mnt/XXXX-ZZZZ auto nosuid,nodev,nofail,users,rw,umask=000 0 0
my.cnf の設定

my.cnf を開き

sudo vi /etc/mysql/my.cnf

user, datadir 項目を変更する。
今回は user を root に変えているのは
storage を root にてマウントしているためです。

user = root
datadir = /storage/mysql

上記を設定したら以下コマンドを実行しデータベースを作成します。
今回は初期状態として扱っていますが、既存のデータがある場合には
対象のディレクトリに元のデータをコピーしておけば良いと思います。

mysql_install_db

ここまでやった後に、通常通り MySQL が起動をします。
起動しない場合、 /var/log/mysql/error.log などを確認ください。

# service mysql start
mysql start/running, process 6298

# mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.5.38-0ubuntu0.14.04.1 (Ubuntu)
...
..