2012/08/10

Travis CIでPerl(Mojolicious)アプリケーションを自動テスト


Perl+Mojoliciousで作成しているWebアプリケーションがあるのですが、
折角、GitHub上でオープンソースとしてリポジトリを公開しているのだから
Travis CI自動テスト(継続的インテグレーション)をしてもらわない手はないっ!
...ということでテストしてもらうことにしました。

この記事はMojolicious(Test::Mojo)でテストスクリプトを作成していること前提です。

まずは、http://travis-ci.org/ からGitHubアカウントの認証を行います。

認証できたら、Travis CIのプロフィールページへアクセスして
[Token]の文字列を確認しておきます。


次に、GitHubへアクセスして・・・
テスト対象とするリポジトリの[Admin]ページから、[ServiceHook]ページを表示。


AVAILABLE SERVICE HOOKSのリストから、[Travis]を選択します。

すると入力フォームが表示されるので、Token欄にさきほどのTokenを入力して
[Active]にチェックを入れたら、[Update Settings]ボタンをクリック。
さらに、[TestHook]ボタンをクリックします。





次に、Travis CIのプロフィールページへ再度アクセスし
[Repos]タブをクリックすると、自分のリポジトリ一覧が表示されるので、
テスト対象とするリポジトリ名の横にあるスイッチを[ON]にしておきます。



次に、Gitリポジトリのルートへ、".travis.yml"というファイルを作成します。
こんな感じでテストのための環境を定義しておきます。
$ vi .travis.yml 
language: perl
perl:
  - "5.16"
  - "5.14"
install:
    - cpanm --installdeps --notest .
script: "perl Makefile.PL && make test"
(2013/08/18 更新、2014/04/22 更新: mirrorの指定が不要になっていました。)

  • perl項目: テストしたいperlのバージョン
  • install項目: テスト & インストールのためのコマンド
    ここでは必要なモジュールをcpanmでインストールするよう指定しています。
    (さらに詳しいログが必要ならば、 cpanm -v 〜 のようにオプションを付ける。)

詳しくは、http://about.travis-ci.org/docs/user/languages/perl/ 参照のこと。

さらに、MojoのコマンドでMakefile.PLを作ります。
$ mojo generate makefile
Makefile.PLが作成されているので
これをテキストエディタで開き、必要に応じて修正を行います。

具体的には、テストの前にインストールが必要ないわゆる依存モジュールを
PREREQ_PMに定義しておきます。
$ vi Makefile.PL 
use strict;
use warnings;
use ExtUtils::MakeMaker;

WriteMakefile(
  VERSION   => '0.01',
  test      => {TESTS => 't/*.t'},
  PREREQ_PM => {
  'Mojolicious' => '3.20',
   'Validator::Custom' => 0,
   'Config::Pit'   => 0,
   'DateTime'    => 0,
   'JSON'     => 0,
   'String::Trigram'  => 0,
   'Data::Model'   => 0
  }
);

今回のアプリケーションの場合、このようになりました。

最後に、GitHubへプッシュ。
$ git push
これでしばらくすると...

Travis CIのトップ画面の一覧に自分のプロジェクトが表示されますww (おぉ〜!)


また、自分のプロジェクトのテスト結果ページができています。
http://travis-ci.org/#!/mugifly/Fsq2mixi



ここで緑色で表示されていれば、無事テストをパスしたことになります。
赤なら...詳細を見てエラーの原因を調べましょう...ということのようです。

後はプッシュするたびに自動テストを行なってもらえるようです。

さてさて...テストの中身をもっときちんと書かねば(^^;)ゞ
(実は今回お題にあげたプロジェクトはテストを思いっきりサボ(げふんげふん)




参考にさせていただいたページ (感謝♪):

2012/08/06

Gitlabの導入 (Unicorn+nginxでサブディレクトリへ配置)

Gitlab 2.7をCentOS 6.2でインストールしてみることにしました。
nginx+Rails+Unicornで動作させます。
  • もはや言い訳のようになっていますが、試行錯誤の結果の自分用メモです (汗;)
    試行錯誤の結果、適当にやってみているところ、
    また、環境依存の箇所もありますのでご了承おねがいします
    m(_ _;)m
  • 従いまして、もし参考にしていただける場合は、お手数をお掛けしますが、
    一度このページの末尾まで全て目を通されることをおすすめします。
  • Gitlabのドキュメントでは、socketファイルを用いてnginxとUnicornを通信させていますが、この記事では、ポートを指定させて動作させます。
  • 本記事では、GitLabをサブディレクトリに配置して動作させます。
  • GitとGitoliteは以前に導入済みです:
    http://masanoriprog.blogspot.jp/2012/06/gitgitolite.html

作業の前にvisudoを実行し、secure_pathに/usr/local/binを追加しておきます。
(参照: http://blog.bungu-do.jp/archives/3525)
$ su
# visudo 
~~~~
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/local/bin/:/usr/bin
~~~~
さて..まずはGitlabのためのユーザアカウントを作成します。
また、作成したアカウントをgitoliteのグループに所属させます。

# useradd gitlab
# usermod -G gitolite gitlab
次に、Gitのリポジトリディレクトリのパーミッションを変更しておきます。
(gitoliteグループに対して読み書き実行の許可をあたえます。)

# chmod -R g+rwx /pathto/repositories/
次に、GitlabアカウントがGitoliteに接続するためのSSH鍵生成と設定を行います。
とりあえず、gitlabユーザになるために一旦suします。
# su gitlab
$ ssh-keygen -t rsa -P "" -f ~/.ssh/gitadmin 
$ vi ~/.ssh/config
Host    localhost
HostName        localhost
User    gitolite
IdentityFile    ~/.ssh/gitadmin 
$ chmod 0600 ~/.ssh/config
$ git config --global user.name "gitadmin"
$ git config --global user.email "gitadmin@example.com"
$ exit
この作成したgitlabアカウントと鍵で
Gitolite上のgitolite-adminへアクセスできるよう設定しておきます。

(いつも管理してるクライアントPCからやると楽です。)
Gitlabのドキュメントでは、サーバ上でgitoliteをgit cloneして最初に鍵ファイルを設定して登録しています・・・
が...今回は、運用中のシステムのセキュリティの設定上面倒なこともあり、このようにしています。
本来であればドキュメント通りが正しいですのでそちらの方法で行なってください。
CLIENT $ git clone gitolite@example.com:gitolite-admin
CLIENT $ cd gitolite-admin/
CLIENT $ touch keydir/gitlab.pub
CLIENT $ vi keydir/gitlab.pub 
ssh-rsa ~~~~ gitlab@~~ #gitadmin.pubの中身をコピペ
CLIENT $ vi conf/gitolite.conf 
repo    gitolite-admin
        RW+     =   gitolite gitlab #gitlabを追加しておく
CLIENT $ git add .
CLIENT $ git commit
CLIENT $ git push
次に、Gitlabをgitlabアカウントのルートディレクトリへgit cloneしてきます。
# cd /home/gitlab/
# sudo -H -u gitlab git clone -b stable git://github.com/gitlabhq/gitlabhq.git gitlab
# cd gitlab/
# sudo -u gitlab mkdir tmp 
# sudo -u gitlab cp config/gitlab.yml.example config/gitlab.yml
GitlabでSQLiteを使うための設定を適用しておきます。
# sudo -u gitlab cp config/database.yml.sqlite config/database.yml
必要なものをインストールしていきます。
# easy_install pygments
# gem install bundler
# bundle
・・・とここでエラー(´・ω・`)
~~~~ ~~~~
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
        /usr/local/bin/ruby extconf.rb
checking for main() in -licui18n... no
which: no brew in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/masanori/bin)
checking for main() in -licui18n... no

***************************************************************************************
*********** icu required (brew install icu4c or apt-get install libicu-dev) ***********
***************************************************************************************
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/local/bin/ruby
--with-icu-dir
--without-icu-dir
--with-icu-include
--without-icu-include=${icu-dir}/include
--with-icu-lib
--without-icu-lib=${icu-dir}/lib
--with-icui18nlib
--without-icui18nlib
--with-icui18nlib
--without-icui18nlib

Gem files will remain installed in /usr/local/lib/ruby/gems/1.9.1/gems/charlock_holmes-0.6.8 for inspection.
Results logged to /usr/local/lib/ruby/gems/1.9.1/gems/charlock_holmes-0.6.8/ext/charlock_holmes/gem_make.out
An error occured while installing charlock_holmes (0.6.8), and Bundler cannot continue.
Make sure that `gem install charlock_holmes -v '0.6.8'` succeeds before bundling.
libicuが無いっぽいのでインストール。
# wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libicu-4.2.1-9.1.el6_2.x86_64.rpm
# rpm -ivh libicu-4.2.1-9.1.el6_2.x86_64.rpm
# wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libicu-devel-4.2.1-9.1.el6_2.x86_64.rpm
# rpm -ivh libicu-devel-4.2.1-9.1.el6_2.x86_64.rpm
# rm ./libicu-devel-*

もう一回、bundleを実行...
# bundle 
~~~ 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
Post-install message from httparty:
When you HTTParty, you must party hard!
うまくいった。続いて...Gemのインストール。
# sudo -u gitlab -H bundle install --without development test --deployment
DBのセットアップ。
# sudo -u gitlab bundle exec rake gitlab:app:setup RAILS_ENV=production
構成のテストを行います。
# sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production
rake aborted!
Connection refused - Unable to connect to Redis on 127.0.0.1:6379
Tasks: TOP => gitlab:app:status => environment
(See full trace by running task with --trace)
(´・ω・`)・・・まずRedis入ってなかったorz
# yum install redis
~~~
Installed:
  redis.x86_64 0:2.4.10-1.el6                                                
Complete!
# service redis start
はい。 もう一丁、テスト実行
# sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production 
Starting diagnostic
config/database.yml............exists
config/gitlab.yml............exists
/home/git/repositories/............missing
rake aborted!
unexpected return
Tasks: TOP => gitlab:app:status
(See full trace by running task with --trace)

(´・ω・`)まあそりゃーな。無いもんな。
実はうちの環境では、/home/git/repositories/下にリポジトリを置いていないのです・・・
ということでGitlabの設定変更。

# vi config/gitlab.yml
~~~
git_host:
  admin_uri: git@localhost:gitolite-admin
  base_path: /pathto/repositories/  # host: localhost
  git_user: git
~~~
再度、テスト実行。
# sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production 
Starting diagnostic
config/database.yml............exists
config/gitlab.yml............exists
/var/lib/gitolite/repositories/............exists
/var/lib/gitolite/repositories/ is writable?............YES
ssh: connect to host localhost port 22: Connection refusedfatal: The remote end hung up unexpectedly
Can clone gitolite-admin?............YES
UMASK for .gitolite.rc is 0007? ............NOrake aborted!
unexpected return
Tasks: TOP => gitlab:app:status
(See full trace by running task with --trace)



まず、うちの環境ではSSHのポートを22番から変更しているため
接続できていないということ・・・。
なので再度、Gitlabの設定(gitlab.yml)を変更しておきます。
# vi config/gitlab.yml
~~~~
git_host:
  admin_uri: gitolite@localhost:gitolite-admin
  base_path: /pathto/repositories/
  host: example.com #ホスト名もちゃんと設定しておく。
  git_user: git
  upload_pack: true
  receive_pack: true
  port: 22 #コメントアウトを外してポート番号を変更。
~~~~
同時に、GitlabユーザのSSH設定のほうも変更しておきます。
# vi /home/gitlab/.ssh/config 
Host    localhost
HostName        localhost
User    gitolite
IdentityFile    ~/.ssh/gitadmin
Port    22
また、.gitolite.rc内のUMASKを書き換えろとのこと。やってなかったので・・・
うちの環境では、/var/lib/gitolite/下にありますのでそれを書き換えます。
# cp /var/lib/gitolite/.gitolite.rc  /var/lib/gitolite/.gitolite.rc.backup
# vi /var/lib/gitolite/.gitolite.rc
$REPO_UMASK = 0007; #0077の箇所を0007にしておく 
これで...もう一度、テスト実行。
# sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production
bundle exec rake gitlab:app:status RAILS_ENV=production
Starting diagnostic
config/database.yml............exists
config/gitlab.yml............exists
/var/lib/gitolite/repositories/............exists
/var/lib/gitolite/repositories/ is writable?............YES
remote: Counting objects: 31, done.
remote: Compressing objects: 100% (24/24), done.
remote: Total 31 (delta 7), reused 0 (delta 0)
Receiving objects: 100% (31/31), 3.10 KiB, done.
Resolving deltas: 100% (7/7), done.
Can clone gitolite-admin?............YES
UMASK for .gitolite.rc is 0007? ............YES


OKですね〜。

データベースに初期データを登録します。
# sudo -u gitlab bundle exec rake db:setup RAILS_ENV=production
# sudo -u gitlab bundle exec rake db:seed_fu RAILS_ENV=production
このとき、初期ユーザ名とパスワードが表示されるのでメモを。
さて、デーモン起動させてみましょう。
#  sudo -u gitlab bundle exec rails s -e production -d
=> Booting Thin
=> Rails 3.2.5 application starting in production on http://0.0.0.0:3000
お。OKっぽいですねw 続いて...Resqueプロセスを起動させてみます。 
# ./resque.sh
では今後は、Unicornで。
# sudo -u gitlab cp config/unicorn.rb.orig config/unicorn.rb 
# sudo -u gitlab bundle exec unicorn_rails -c config/unicorn.rb -E production -D
次にGitlabをサブディレクトリ下で動作させるために
設定ファイル(config.ru)を変更します。

(config.ruを開いて、run ~~ の一行を次のように囲みます。)
# vi config.ru 
require ::File.expand_path('../config/environment',  __FILE__)
map ActionController::Base.config.relative_url_root || "/" do
        run Gitlab::Application
end
また、バックエンドとなるUnicornをサービスさせるポートを定義するために
Unicornのスクリプトファイル(unicorn.rb)を変更します。
# vi config/unicorn.rb 
~~~~
#listen "#{app_dir}/tmp/sockets/gitlab.socket" #コメントアウトする
listen 8081 #Unicornをサービスさせるポート番号を指定
~~~~
さらに、すでに稼働させているnginxの設定ファイル(nginx.conf)に
Gitlabのためのリバースプロキシ設定を追加しておきます。

$ su

# vi /etc/nginx/nginx.conf

upstream gitlab {
    server 127.0.0.0:8081; #Unicornのポート番号を指定
}
~~~~
server {
    ~~~~
    location ~ ^/gitlab/(.*) { #Gitlabを配置するディレクトリを指定
        proxy_redirect off;
        proxy_pass http://gitlab;
        break;
    }
}

nginxの実行アカウントをgitlabグループに所属させておきましょう。

# usermod -G gitlab nginx

そして、nginxを再起動。
# service nginx restart

さらにgitlabをServiceにするために
/etc/init.d/gitlab を作成しておきましょう。

(Source: https://github.com/gitlabhq/gitlabhq/blob/stable/doc/installation.md)
# vi /etc/init.d/gitlab 
#! /bin/bash
### BEGIN INIT INFO
# Provides:          gitlab
# Required-Start:    $local_fs $remote_fs $network $syslog redis-server
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: GitLab git repository management
# Description:       GitLab git repository management
### END INIT INFO
DAEMON_OPTS="-c /home/gitlab/gitlab/config/unicorn.rb -E production -D --path /gitlab" #Gitlabを配置するディレクトリを指定
NAME=unicorn
DESC="Gitlab service"
PID=/home/gitlab/gitlab/tmp/pids/unicorn.pid
RESQUE_PID=/home/gitlab/gitlab/tmp/pids/resque_worker.pid
case "$1" in
  start)
        CD_TO_APP_DIR="cd /home/gitlab/gitlab"
        START_DAEMON_PROCESS="bundle exec unicorn_rails $DAEMON_OPTS"
        START_RESQUE_PROCESS="./resque.sh"
        echo -n "Starting $DESC: "
        if [ `whoami` = root ]; then
          sudo -u gitlab sh -l -c "$CD_TO_APP_DIR > /dev/null 2>&1 && $START_DAEMON_PROCESS && $START_RESQUE_PROCESS"
        else
          $CD_TO_APP_DIR > /dev/null 2>&1 && $START_DAEMON_PROCESS && $START_RESQUE_PROCESS
        fi
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        kill -QUIT `cat $PID`
        kill -QUIT `cat $RESQUE_PID`
        echo "$NAME."
        ;;
  restart)
        echo -n "Restarting $DESC: "
        kill -USR2 `cat $PID`
        kill -USR2 `cat $RESQUE_PID`
        echo "$NAME."
        ;;
  reload)
        echo -n "Reloading $DESC configuration: "
        kill -HUP `cat $PID`
        kill -HUP `cat $RESQUE_PID`
        echo "$NAME."
        ;;
  *)
        echo "Usage: $NAME {start|stop|restart|reload}" >&2
        exit 1
        ;;
esac
exit 0
スクリプトのパーミッションを変更。
# chmod +x /etc/init.d/gitlab
自動起動を有効にしておきます。
# chkconfig --add gitlab
# chkconfig gitlab on
あとはサービスを実行するだけ。
# service gitlab start
これで・・・
http://example.com/gitlab/ にアクセスすると・・・


うまく行ったようです♪

追記: このままではpublic/uploads/下にアップロードするファイルに
アクセスすることができませんでした。
ということで・・・nginxの設定ファイル(nginx.conf)に修正を...。
# vi /etc/nginx/nginx.conf 
~~~~
        location ~ ^/gitlab/uploads/(.*) {
                #静的ファイル
                rewrite ^/gitlab/uploads/(.*) /$1;
                root    /home/gitlab/gitlab/public/uploads/;
                index   index.html;
                ssi     off;
                break;
        }
        location ~ ^/gitlab/(.*) {
                proxy_pass      http://gitlab;
                break;
        }
~~~~
さらに、/home/gitlab/ のパーミッションに
# chmod g+x /home/gitlab/
しておく。以上です。

これで静的ファイルはnginxから直接レスポンスされるようになります。
たぶんこんな感じでOKなはずです。たぶん(汗;←

2012/08/05

Ubuntu&Fedoraをマルチブートにして新規インストールしちゃおう


大学が夏休みに入って、さあ開発だ!と張り切っているMasanoriですw

大学の都合で、Ubuntu 10.10の環境のままになっていたPCがあるのですが、
これをそろそろ、アップグレードでなく新しくフルインストールしてしまって
新しいLinuxに入れ替えたいな...ということで、やってみることとしました。

この記事も例によって自分用メモです。
順をおって、ただしい知識を得たい方には特に申し訳ありません・・・
ページ下部の参考ページをあたってください。すみません。

また...<結論から言うと、今回インストールしたのはFedoraだけです>

現状のパーティション構成はこんな感じです:
  • /dev/sda (500GB)
    • [基本]NTFS (13GB) - Recovery
    • [基本]NTFS (315MB) - System
    • [基本]NTFS (210GB) - Windows7 システムパーティション
      • マウント: /win
    • [拡張] (60GB)
      • [拡張]ext4 (50GB) - Ubuntu ルートパーティション
        • マウント: /
      • [拡張]swap (10GB) - Ubuntu スワップパーティション
    • 未割当 (217GB)
もともと、Windows7とUbuntuのデュアルブートになっています。
ブートローダはGRUBで、1段階ブートです。

新しい構成としては次のような感じにします:
  • /dev/sda (500GB)
    • [基本]NTFS (13GB)  - Recovery
    • [基本]NTFS (315MB)  - System
    • [基本]NTFS (210GB)  - Windows7 システムパーティション
    • [拡張] (256GB)
      • [拡張]ext4 (50GB) - Ubuntu(旧) ルートパーティション
      • [拡張]swap (16GB) - スワップパーティション
      • [拡張]ext4 (20GB) - Ubuntu ルートパーティション
      • [拡張]ext4 (70GB) - Ubuntu /homeパーティション
      • [拡張]ext4 (20GB) - Fedora ルートパーティション
      • [拡張]ext4 (70GB) - Fedora /homeパーティション
      • 未割当 (15GB)
今回は、PBRのブートローダにMBRを使い、2段階ブートとし、
Windows、UbuntuとFedora、旧Ubuntuを選択できるようにしたいと思います。

まずは、念の為にバックアップ。何でも構いません。

私は...mondo rescueを使って...と思っていましたが、バージョンの互換性の問題のために色々とエラーが発生したので、
試行錯誤をしてみてもよかったのですが、面倒くさかったですし(おい)
今回は、Fedora 17のLiveCDでブートし、標準のディスク管理機能でイメージバックアップを取りました。

次に、パーティション構成を変更しておきます。

LiveCD上で、GPartedを用いてパーティション構成も変更します。
後からOSをインストールする際にパーティションを作成するのではなく、
あらかじめ、パーティションをリサイズし切り分けておくことにしました。
(切り分ける構成は、先述のとおりです。GPartedの使い方については、ググってくださいw)

ここで、スワップもLinuxで共通にしておきたいと思います。

既に、Ubuntuのためのスワップパーティションがあるので、これを使います。
メインメモリの容量が8GBですから、スワップの容量も余裕をもって、16GBに変更しました。
 (スワップ容量についてはここ参照)




次に、1段階から2段階ブートにするために ブートローダをMBMに変更します。
詳しい手順は、http://d.hatena.ne.jp/den8/20100605/1275709966 などを
参考に勉強させていただきましょう。先にじっくり読んでおくことを推奨します


まずは、"MBMをインストールするためのUSBメモリ"を作ります。
適当なUSBメモリ(容量は28MBより大きければ良い)を用意してください。

MBMインストールの機能が含まれた
Minimum Ubuntuという超軽量なレスキュー用Ubuntu環境を利用することにします。
バイナリが用意されているので、使わせていただきましょう。
http://winmac.blog33.fc2.com/blog-entry-119.html

ということなので、そのバイナリをダウンロード。
usb-minimumubuntu-include(dmraid)-0.9.013(100620)-10.04.img
28MBのファイルです。素晴らしい。

次に、mount -l でUSBメモリのデバイス名を調べます。


さらに、DDコマンドで、そのデバイス名を指定してイメージを焼きます。
$ dd if="usb-minimumubuntu-include(dmraid)-0.9.013(100620)-10.04.img" of=/dev/sdb

これでMBMをインストールするためのUSBメモリが作成できました。
おかげさまで...簡単ですね。ありがたいです(´;ω;`)

次に、現在のUbuntu環境のGRUBのエントリポイントを変更しておきます。(その際、”Ubuntu環境でルートにマウントされているパーティション”を指定します。)

$ sudo grub-setup  -f  /dev/sda5 
grub-setup: warn: Attempting to install GRUB to a partition instead of the MBR.  This is a BAD idea..
grub-setup: warn: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
warningが出ますが、気にしない。

さらに本来であれば、Debconfデータベースの更新をしておかなければいけないのですが
今回、現在のUbuntu環境はもはや残しておくだけでアップデートもしないので、
私はとりあえず飛ばしておきます。(皆さんは、ちゃんとやってくださいw(汗;)
http://wikiwiki.jp/disklessfun/?grub2_and_grub1#x3f37a52)


あとは、PCを再起動してUSBメモリからブートします。
ブートしたらコンソールが表示されますので、MBMのインストールを実行します。
(その際、インストール先となるHDDのデバイスを指定します。)

$ sudo install-mbm /dev/sdb

MBMのインストールが終わり...次はFedoraのインストールです。

正しく2段階ブートにするために、
インストールの際、パーティション設定は手動設定にして

  • ルートパーティションの指定
  • /homeパーティションの指定
  • swapパーティションの指定
  • ブートローダーのインストール先の指定
    (同じルートパーティションを指定。)
を行っておきます。

以上で、2段階ブートでのインストールは終了です♪




Fedoraのインストールが終わったら・・・

とりあえず、日本語設定にしておきます。
その後、一旦ログアウト&ログインして、
Firefoxを起動して、ちょろめをインストールしてww

visudoコマンドでsudoersを設定しておきます。
$ su
# visudo
root    ALL=(ALL)       ALL
hoge        ALL=(ALL)       ALL

みたいな感じで。(※リスクは理解した上で行ってください)

さらに、このPCはLet's noteなのですが
Let's noteのあのトラックパッドの回転スクロールを有効にするために...
gsynapticsをyumでインストールしておきます。
$ sudo yum install gsynaptics
Fedora17標準でも回転スクロールはサポートしていますが、
これを導入して有効にしたほうがさらに快適なスクロールができます。



さらにSDカードスロットのドライバも入れておきます。
lspciした結果によると・・・

$ lspci
~~~
14:00.1 SD Host controller: Realtek Semiconductor Co., Ltd. Device 5209 (rev 01)


ということでPCIE RTS5209 card reader driver for Linuxをダウンロード。
http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=4&PNid=15&PFid=25&Level=4&Conn=3&DownTypeID=3&GetDown=false#2

アーカイブファイルを展開してmakeしインストール。
$ tar vxf rts_pstor.tar.bz2
$ cd rts_pstor/
$ make
$ sudo make install
$ sudo depmod
さらに再起動をさせればSDカードを認識できるようになります。

次にIMEですが、私はMozcを使っているので
これは"ソフトウェアの追加と削除"から入れておきます。

次に開発環境。とりあえずAptanaを入れておきます。
http://www.aptana.com/products/studio3/download

Aptanaはパッケージになっていないため、自動的にアプリケーション一覧には登録されません。
ですから手動でショートカットをアプリケーション一覧に登録します。
まず、デフォルトでメニューエディタがインストールされていないようなので、
"ソフトウェアの追加と削除"で"alacarte"をインストール。
"メインメニュー"という項目がアプリケーション一覧に表示されるので、
そこでAptanaを自分で追加します。
あとは一旦ログアウトしてログインしなおすと、反映されます。

DartEditorとか、ベースとなっているEclipseも同様に。

最後に...Gnomeをカスタマイズしておきましょうw
今時は、https://extensions.gnome.org/ でExtentionをどんどん試せるんですね。
Web上で設定ができて面白いですね。実際にいくつか試して入れてみました。

ということで少し長くなりましたが・・・


これで以上です♪
(おっと!新しいUbuntuをまだインストールしていない件w←)



参考にさせていただいたページ (感謝♪):