ThinkpadにFuntooネイティブインストール続き(GUI)編

X.Org

startx

すんなり起動する(たぶん。メモるの忘れただけかもしれない)

GNOME

http://www.gentoo.org/doc/ja/gnome-config.xml
を参考にしたけど、
emerge gnome
emerge gnome-light
どちらも実行してみると、いろいろ足りないといわれる

英語版を見てみると、フラグとか微妙に違う
http://www.gentoo.org/doc/en/gnome-config.xml
英語版をベースに進めてみた

emerge gnome-light

introspection を入れてくれ、といわれるので、
introspection をUSEフラグに追加
さらにemerge してみる。(USEフラグとemergeの関係がよくわかってない気がする。emergeだけでいいかも?)
 --autounmask-write がどうのこうの言われる。
ぐぐる
emergeのオプションでつければいいらしい?
つけてみる。

emerge --autounmask-write gnome-light

(中略)
Remember to run dispatch-conf.

dispatch-conf を走らせろ!といわれる。
やってみる。

dispatch-conf

コマンドを求めてくるので、とりあえず、uとうってEnter
もっかいemerge
すすむ。
待つ。

バツがいくつかついているけど、とりあえず終わった。

env-update && source /etc/profile
/etc/init.d/dbus start
rc-update add dbus default
getent group plugdev
# Substitute yourUserName with your user name ;-)
gpasswd -a yourUserName plugdev

echo "exec gnome-session" > ~/.xinitrc
sed -i '1i\export XDG_MENU_PREFIX=gnome-' ~/.xinitrc
startx

起動しそうになるが、Errorとなる。
ログを見てみると、xscreensaver が Not Foundになっているので入れる

emerge xscreensaver

で、もっかい startx
GNOME起動!バンザイ!

あとはログインマネージャーをどうのこうのして、reboot!
ログイン画面 キタ━━━━(゚∀゚)━━━━!!


最後にFuntooから初つぶやきだ!とChromeをemergeしようとしたらバグってるから1日待ってね、的なメッセージが出たのでそっと閉じておいた。


あとは日本語使えるようにして、開発環境をいれれば使えるかなー。

ここまできて思ったこと

結構難しい。
portageってなにそれおいしいの?って状態では大変だったし時間がかかった。
英語ばかりで適当に読みとばしていたのが遠回りの原因だった気もする。
でも、楽しかった。

Funtooインストール続き

今回購入したPC

ThinkPad Edge E430
Core i7-3632QM
750GB(5400rpm)
8GB(4GB x 2)(PC3-12800 DDR3 SDRAM)

ブート用のUSBメモリがちゃんとできているか?

error: file '/isolinux/rescue64' not found.

といわれているので、USBの中身をチェックチェック。

VirtualBox」フォルダとかなってて、ん?


USBメモリSystemRescueCdをインストールしたとき、
(Windows8, systemrescuecd-x86-3.6.0.iso, LinuxLive USB Creator 2.8.21.exe)
http://www.sysresccd.org/Sysresccd-manual-en_How_to_install_SystemRescueCd_on_an_USB-stick#B.29_Recommended_USB_installation_method_from_Windows
これを参考にしたんだけど、結局よくわからんかったんで、

If you have problems with the SystemRescueCd USB installer for Windows you can try linuxliveusb

って最後の行にかいてあったから、
http://www.linuxliveusb.com/
LinuxLive USB Createrというやつで作った。
このツールを使うときに、

STEP4:オプション

LinuxLiveをWindows上で起動可能にする(インターネット接続が必要)

ってやつにチェックが入っていた模様。このためにVirtualBoxフォルダができていたみたい。
チェックを外してUSBを作り直し。

今度こそUSB中身チェック

それらしいのができている!
で、問題となっている、
/isolinux/rescue64
があるかどうか、見たけど、ない。
このログは正しい。うん。
パスが間違っているようなので、書きかえる。

【対象ファイル名】boot/grub/grub-360.cfg
(誤)/isolinux/rescue64
(正)/syslinux/rescue64
全て書き換える。grub-360.cfg内に5箇所あった。

今度こそUSBメモリからブート(4回目)

なんかダラダラコンソールにでる。
きたこれ。
ここからがやっとスタートなんですけどねっ(涙目)

Partitioning Using gdisk

Windows8がプリインストールされているThinkpadを買ったので
もともとパーティションあるんすよね。

gdisk /dev/sda

pをやってみると、5個もある...
うーん、とりあえず見なかったことにしてやってみたけど、
1個目のパーティション作るところで+500MBも無いっていって怒られる。
そりゃそうだ。
空き領域なんてないさー。


ここで、Windows8をどうするかを悩む。
生かしておくか、と決断。
Windows8で入りなおし、Cドライブの容量を小さくする。
ここはググったら簡単にできて、半分くらい空いた。
750GB->350GBくらいになったので、350GB空いた。


USBメモリでブートしなおし、再度パーティションをきる。
Partition Number: 1、2、3、4 ってなっているところを、6、7、8、9と読み直してやる。

Creating filesystems

/dev/sda1 -> /dev/sda6
と読みなおしてやってみる。
(合っているのかは不明)

Installing the Stage 3 tarball

LANケーブルにつないで実行

Chroot into Funtoo

うんうん

Downloading the Portage tree

よしよし

Configuring your system

おっけー

Configuring and installing the Linux kernel

順調にここまできた。
なにこれ30分でおわた。
新しいPCバンザイ!

Installing a Bootloader

お?

Finishing Steps

おおっ

Restart your system

最後まで来てしまった。
リブートするわけで!


USB抜いておきます。
わくわく。
で、ですよ。
Windows8が無事に立ち上がるわけで。
Windowsががが。。。


うすうす感づいてはいたけど、PCの起動の仕組みだとかよくわかっていない状態で、デュアル構成にしようとした私が馬鹿でした。
うんうん。
デュアル構成は諦めよう。
Windows8からVirtualBoxにするか、Windows8を捨てるか。
うーん。(悩)
ええい、女々しいっ。
パーティション全削除じゃ!
というわけで、再度、Partitioning Using gdiskからやり直しっ。

(5回目)パーティションを綺麗にしましょう。

gdisk /dev/sda

をやると、コマンドの入力で"?"を入力すればヘルプが出てくる。
削除はdだと。
Partition Numberを入力するらしいので、1から9まで一つずつ削除。
きれいさっぱりなくなったので、これでインストールガイドと自分の環境の差はなくなった。


パーティションつくるところから開始。

(中略)


全て終わって、再度リブートしても

login:

は出てくれない。。。


なぜ。。。


よくわかんないけど、Windows8は消えてしまったので、やるしか無い。

(6回目)手順をよく読んでやりなおし

ブートで失敗しているので、Installing a Bootloaderあたりが怪しいんだろうな、と当たりをつけつつ。
(中略)

Installing a Bootloader

"Funtoo Linux genkernel"に書き換えるところを見落としていた。。。
多分今までずっと。。。

login:

でたっ!!!!!!!!


次はGUIですね、わかります。わかります?

Funtooインストール講習会に参加してきました

http://esminc.doorkeeper.jp/events/3547

仕事ではWindowsばかりで、Rails案件になるとときどきCentOS使ったくらいしかLinuxとは縁がなかったけど、
そろそろちゃんとやっとかないと、と結構前から思っていたところに生涯を通じて楽しめるディストリビューションに出会う場としてという文言に惹かれてついつい申し込みしました。

環境

Macbook Air 11インチ(2年くらい前に買ったやつ)
VirtualBox


以下、格闘ログとなります。不適切な部分があるかもしれません。

      • -

開始(1回目)

Funtooのインストールページを元に、進める
http://www.funtoo.org/wiki/Funtoo_Linux_Installation

一つ一つコマンドの説明とか、必要/不必要を教えていただきながら何とかすすめてきたけど、カーネルビルドが終わらない...

emerge debian-sources

3時間たっても終わらない...
時間切れでPCをスリープして帰宅...
家で続きをやってみたけど、朝になっても終わらない...
CPUは使っているみたいなので、どっかで無限ループしちゃっているのかなー?と思い、一旦止める。

2回目

イメージを作り直してはじめからやり直し。
一度やっていたし、メモっていたのでさくさくカーネルビルド前まできた。
カーネルビルドなう。
1時間くらい待つ。
1回めより手前で止まっている...
3時間くらい待つ。
変わっていない...
また止める。

3回目

2回目で作ったイメージを元に3回目のカーネルビルド。
2回目より進んでいる。
よしよし。
3時間くらい待つ。
1回目と同じログがはかれていることを確認。
待つ。
3日くらい待つ。
終わらない...

3回目と時を同じくしてThinkpadを発注

イライラしてきたので、スペックのいい、壊れてもいいPCが欲しくなった。
そのうちLetinaのスペックいいやつが出て、値段が安くなったら買おうと思っていたのに、なぜかThinkpadを発注www
20%OFFで残り2個だったからついwww
念願のCorei7だし、メモリ16GBまでつめるし、しかも7万弱だったからついwww
で、Thinkpadさん到着。国内在庫の短納期だったので、2日くらいできた。

Thinkpadの準備

丁重に開封の儀式を行ったところで、Thinkpadさんにはリカバリディスクが無いことに気づく。(そんなことすっかり忘れていた)
USBメモリ買いに行く。
リカバリ領域からUSBメモリに書き出し。
(lenovoのサイトの通りに進めてたら、コントロールパネルのRecoveryアイコンとかないし、うそつきー。)
(ググって事なきを得る。正解は"復元"アイコンだった。)
(さらに、サイトにはUSBメモリは16GB以上ってかいているのに、実行していると8GB以上ってメッセージががが、うそつきー。)

ブート用USBメモリの準備

VirtualBoxでは必要なかったけど、SystemRescueCdを入れておくため、USBメモリを買いに(2回目)行く。
http://www.sysresccd.org/Sysresccd-manual-en_How_to_install_SystemRescueCd_on_an_USB-stick
Linuxのとこを見ながら、Macでやろうとしたけど、ISO イメージをマウントするところでできなかった...
ThinkpadさんにはWindows8がプリインストールされているので、Windowsでやることに。
Windows8初めてで、使いづらい...
時間かかる...
シャットダウンはどこよ...
で完成。

USBメモリからブート

やっとここまきた!
USBのブートを一番上にして、よしよし。
リブートして、よしよし。
GRUBメニュー(?)きたー
一番上のdefault?でenter

error: file '/isolinux/rescue64' not found.
error: you need to load the kernel first.
Press any key to continue...

え?


続く。続く?

仕事周り

なんだかんだでガッツリ忙しかったり、ネットワーク的に自由がなかったり、引越したり、とブログの存在すら忘れている毎日を経て、突然時間ができたので近況をつらつらと。

2011年9月から2月まで

ネットワーク的に自由のない現場でVB6→VB.NETのリプレース
このへんで引越し

2012年3月から10月まで

受託案件でC#.NETのリーダー的な位置で若すぎるチームの仕様とか設計とか折衝とかやって大変な目に合っていた

2012年11月から12月まで

これまた炎上プロジェクトに頭数合わせ的なサポートで、デザイナーからくるデザインあてとかタブレットとかスマホでテスト三昧

2013年1月から3月まで

Railsプロジェクト!!!自由のきく現場でプログラミング三昧


3月までの案件は新しいことばかりでとても楽しかったわー
Rails3にも滑り込めたし、CentOSはじめて開発で使ったし(サーバーで使用することはあったけど、ローカルで使ったのは初めて)、githubとか、bootstrapとかなんやらかんやら楽しかったわー
いや、1月は全然ついていけてなくて、申し訳ないことこの上ない状況でしたよ。斧は飛んでくるし。
2月中旬くらいから仕様と環境に慣れてきて何とかついていけるレベルまで来てからは楽しかったわーモクモクすぎて。


会話はSkypeでできるし、情報はインターネット上にあるので在宅も可能だし。
壁を使った時点で在宅がしづらくなるんだなーと知った。


やっぱプログラマー業が一番楽しいな。

6歳のあーちゃん

テレビがすき
プリキュアハム太郎、プリティリズム、ジュエルペット、はねとび、めちゃイケ、月9、江、ピカルの定理など
チョコレートがすき
ご飯はあまり食べないが、お菓子はよくたべる
あたりめもよく食べる
牛乳は1日4,5杯飲んでいる
鏡の前でポーズを決めたり、コーデをキメたりしているw
ミュールを履いて大はしゃぎ
キラキラしたものとか、ハートとか、ピンクとか、水色とかが好き
絵が上手になってきた
相変わらず、眠くなるとクマがひどい
テレビやiPhoneiPodの操作を自分でできる
にんじんや、きゅうりなどを切ったりお手伝いをしたがる
プールで顔はつけられない
頭から少しシャワーすることはできる
お片づけが苦手
子供向けのゲームを休みの日にやる(プリキュア、プリティリズム、リルぷりっ)
時間の感覚がまだない
お人形遊び、ぬりえ、お手紙書いたりしている
ママもお化粧したら可愛いのにーという
字はひらがなはだいたいかけるけど、小さい音の字(ゃ、ゅ、ょ)がつくのはよくわかってない
かたかなは少しかける
お誕生日プレゼントを決めるとき、たくさん欲しい物がでてきたので優先順位を付けさせたw
来年以降のお誕生日プレゼントもだいたい決まったw
保育園では口が達者なので強いほうらしい
お友達とはケンカしながらも、毎日楽しく遊んでいる様子。

手帳を買ってみた

なかなか気に入るのがないので社会人になってからはGoogleカレンダーでまかなっていたわけですが、ふらっと入った本屋の文房具コーナーで一目惚れしたので購入した。


見開きで1ヶ月分のカレンダーが表示され、残りはノートのみ。
デザインも素敵だし、シンプルでとてもいいっ!


UNITED BEES T114-A5-213

2011年 4月始まり ダイアリー 手帳 春 ノート A5

2011年 4月始まり ダイアリー 手帳 春 ノート A5


オープンしてから、結構行くんだけど、文房具が洋モノのかわいいやつがならんでいるのでオススメです。
RHODIAの品揃えもすばらしい。


啓文堂書店 神田駅前店
http://www.keibundo.co.jp/kandaekimae/index.html

初めてのAmazonEC2 + trac + svn + maven + jenkins + tomcat + MySQL

やりたいこと

定期的に新しいソースを取ってきて、テストして、コンパイルして、デプロイして最新バージョンのアプリを常に起動していたい
(要はCI環境構築)

詳細化してみる
・アプリケーションを動かしたい
・デプロイしたい
・テストしたい
コンパイルしたい
・最新ソースを取りたい
・EC2にログインしたい

前提

サーバー(EC2)WindowsServer、ubuntu

今までの経験

EC2(初)
trac(プロジェクトで使ってた)
svn(プロジェクトで使ってた)
maven(ほぼ初。maven2が出たばかりのときに少し試してみただけ)
jenkins(hudsonセットアップ1回だけ)
tomcat(プロジェクトで使ってた)
MySQL(ほぼ初)
ubuntu(家のサーバーがubuntuだったので、2年か3年前trac入れてみたことがある程度)
linux(Cのプロジェクトでサーバーでしかコンパイルできない悲しい状況だったことがある程度。3ヶ月くらいかな。)

サーバーの使い分け

WindowsServer:TracLightning(trac,svn)、maven3
ubuntu:tomcatMySQL

私が使ったPC

WindowsXP
MacBookAir


サーバーに対してすでにやってあること

Tomcatのインストール
MySQLのインストール
TracLightningのインストール
Javaのインストール

EC2にログインしたい

ubuntuSSHでログインする

EC2の管理者は上司様。
キーファイルをありがたく頂戴する。
SSHポートを空けてもらう。
ログインしてみる。

> ssh -i keyfile.pem IPアドレス
Permission denied (publickey).

へ?
上司様に聞く。

> ssh -i keyfile.pem ほげほげ.ap-northeast-1.compute.amazonaws.com

つながった!

WindowsServerにログインする

WindowsXPからリモートデスクトップで接続。
ユーザーとパスワードを上司様に聞く。
ログインできた!

最新ソースを取りたい

TracLightningが入っているので、svnはある。
Tracの画面からユーザーと権限をサーバー用に作成。
適当なディレクトリにチェックアウトしてみる。
できた。

コンパイルしたい

ここではじめてのMaven3を使ってみる。
本とGoogle先生にご教授願う。

apache-maven-3.0.3-bin.zip をダウンロード
http://maven.apache.org/download.html


zipを解凍。Cドライブの下におく。
C:\apache-maven-3.0.3

pathを通す。
mvnコマンドが使えるかためすために、バージョンを確認してみる。

> mvn --version
Apache Maven 3.0.3 (r1075438; 2011-03-01 02:31:09+0900)
Maven home: C:\apache-maven-3.0.3\bin\..
Java version: 1.6.0_24, vendor: Sun Microsystems Inc.
Java home: C:\Program Files\Java\jdk1.6.0_24\jre
Default locale: ja_JP, platform encoding: MS932
OS name: "windows xp", version: "5.1", arch: "x86", family: "windows"

きた!


チェックアウトしたプロジェクトの直下に初めてのpom.xmlを書く。
Maven Centralで使用するjarを検索しつつ、dependencyを追加していく。
http://search.maven.org/

provided コンパイルにも、warにも追加。
compile コンパイルだけ、warには含まない。


org.apache.struts
struts2-core
2.2.1.1
compile

...

など。使用するjarをすべて記述。
忘れずに、jarからwarに変える。

war


Mavenを使ってコンパイルしてみる。pom.xmlのあるディレクトリまで移動し、

C:\project\hello_world>mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building hello_world 0.0.1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ hello_world ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\project\hello_world\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ hello_world ---
[INFO] No sources to compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.703s
[INFO] Finished at: Mon Jun 06 10:50:24 JST 2011
[INFO] Final Memory: 3M/15M
[INFO] ------------------------------------------------------------------------

きた!

warを作ってみる。

C:\project\hello_world>mvn package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building hello_world 0.0.1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ hello_world ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\project\hello_world\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ hello_world ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) @ hello_world ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\project\hello_world\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ hello_world ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.7.2:test (default-test) @ hello_world ---
[INFO] No tests to run.
[INFO] Surefire report directory: C:\project\hello_world\target\surefire-reports

                                                                                                            • -

T E S T S

                                                                                                            • -

There are no tests to run.

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[INFO]
[INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ hello_world ---
[WARNING] JAR will be empty - no content was marked for inclusion!
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.750s
[INFO] Finished at: Mon Jun 06 10:52:41 JST 2011
[INFO] Final Memory: 4M/15M
[INFO] ------------------------------------------------------------------------

きた!
targetディレクトリができて、warファイルがそのなかにできている!
しかもテストも実行されている!
よしよし。

デプロイしたい

これまではWindowsServer内だけだったけど、これからubuntuにあるtomcatにデプロイする。
ここでjenkinsを使う。
TracLightningに同梱されているjenkinsを使う。
C:\TracLightning\project\hudson\.hudson\jenkins.xml
を修正する。(ポートやプレフィックスを指定)

-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080 --prefix=/jenkins

サービスから起動。
http://localhost:8080/jenkins/
へアクセス。
(ポートを8080に変更したので、httpd.confも修正しておく。)

デプロイプラグインを追加する。
Jenkinsの管理>プラグインの管理>利用可能タブ>Deploy Plugin をインストールして、サービスの再起動。


プロジェクトの設定で、Tomcatへのデプロイを設定する。


SVNの設定も入れておく。


JavaMavenはインストールしたものを使う。(Tracのは使わないので設定変更)
Jenkinsの管理>システムの設定


ビルド実行リンクを押下!


アプリケーションを動かしたい

MySQLにdatabaseを作る。

> mysql -u root
> create database データベース名
> show databases;

作成したデータベース名が表示されていることを確認。

> use データベース名

あ、ddlサーバーにおくらなあかんのやった。
というわけで、ftpを使う。

> apt-get install vsftpd

/etc/vsftpd.confのアスキー設定とか、書き込み設定を許可する。

write_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES

再起動

> /etc/init.d/vsftpd restart

ffftpでファイルを送ってみる。
MySQLddlを実行。

> mysql database < text_file

私がはまったポイント

Tomcatが入っているところに、さらにTomcatをインストールして、EC2が応答しなくなった。
ftpサーバーを立てるのをやったことなくて、インストールしたけどつながらないなーとか思いつつ、ポートが閉じてるのか?とか考えた結果、ufwをinactiveからactiveに変更してしまった結果、sshポートを空けてなくてつなげることができなくなってしまった。
jenkinsの画面がポートを変えているせいで、外から見えなかった。
MySQLがすでにインストールされていることを知らず、インストールし、rootのパスワードを設定したのに設定と違っていてえーんってなった。
Javaをインストールしたのに、バージョンが違ってえ(ry
Tomcatのlibに入っているjarとwarに入っているjarがかぶっていて、以下のようなエラーがでた。

Unable to load configuration. - bean - jar:file:ほげほげ/WEB-INF/lib/struts2-core-2.2.1.1.jar!/struts-default.xml:29:72
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:415)

ビルド環境から、つくったwarをローカルにコピーして、Tomcat managerでデプロイしようとしたら、以下のようなエラーがでた。
(ビルド環境からそのままデプロイしたら、エラーにならなかった。なぜかしら?)

SEVERE: Exception fixing docBase for context [/Training2011WebApp-1.0-SNAPSHOT]
java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.(ZipFile.java:114)
at java.util.jar.JarFile.(JarFile.java:135)
at java.util.jar.JarFile.(JarFile.java:72)
at sun.net.www.protocol.jar.URLJarFile.(URLJarFile.java:72)
at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:48)

ビルドは正常終了するのに、デプロイされない><
(warファイルのありかをJenkinsのワークスペースから指定しなきゃいけないのに、できてなかった。)
EC2が応答しなくなった(壊した///)ときは、上司様にお願いして、インスタンスをターミナルして新しいインスタンスをバックアップしておいたAMIから起動してもらう。
Maven3ってのがでてるんだーとつぶやいたら、Maven2と互換性高いという情報をいただきましたので、Maven2の本で学習しました。
(E和の@koicさん、@ryhmrtさんありがとうございます。)


うーん、はまりすぎ。