メモ:Arch Linux on colinux
Arch Linux
インストール
ダウンロード http://sourceforge.net/projects/colinux/files/coLinux-stable/0.7.9-linux-2.6.33.7/
仮想パーティション用空イメージファイル作成
fsutil file createnew swap.img 1000000000 fsutil file createnew cobd2.img 10000000000 fsutil file createnew ArchLinux-new.img 3000000000
起動バッチファイル
..\colinux-daemon.exe -t fltk @Arch.conf
Arch.conf
kernel=vmlinux initrd=initrd.gz mem=256 cobd0="ArchLinux-2007.08-2-ext3-256m.fs" cobd1="swap.img" cobd2="cobd2.img" cobd3="ArchLinux-new.img" root=/dev/cobd0 eth0=slirp,,tcp:22:22/tcp:80:80/tcp:5901:5900 ro
swapがmountされないエラー
rootfsがread onlyになっているので mount -n -o remount,rw / を打てと言われるので、その通りにしてから
mkfs.ext3 /dev/cobd2 mkdir /mnt/ext nano /etc/fstab #/etc/fstabの表記が/dev/hda1, /dev/hda2になっているので、/dev/cobd0, /dev/cobd1に変更 #/dev/cobd0 / ext3 noatime 1 1 #/dev/cobd1 swap swap defaults 0 0 #/dev/cobd2 /mnt/ext ext3 noatime 1 1 #cdとかdvdとかfdとか要らないやつを消す mount -a mkswap /dev/cobd1
/ が小さいので
mkfs.ext3 /dev/cobd3 dd if=/dev/cobd0 of=/dev/cobd3 e2fsck -f /dev/cobd3 resize2fs -p /dev/cobd3 e2fsck /dev/cobd3 #ArchLinux-new.imgをcobd0にして再起動 for d in root tmp home do cp -r /$d /mnt/ext && rm /$d -r && ln -s /mnt/ext/$d / done
パッケージインストールは
pacman - yum/apt的なあれ - yumとかに比べて超速い
nano /etc/pacman.d/mirrorlist #Japanが無いので追加 # Japan #Server = http://ftp.kddilabs.jp/Linux/packages/archlinux/$repo/os/$arch #Server = ftp://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch #Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch #Server = ftp://ftp.yz.yamagata-u.ac.jp/pub/linux/archlinux/$repo/os/$arch #Server = http://ftp.yz.yamagata-u.ac.jp/pub/linux/archlinux/$repo/os/$arch #Server = http://srv2.ftp.ne.jp/Linux/packages/archlinux/$repo/os/$arch #Server = http://ftp.nara.wide.ad.jp/pub/Linux/archlinux/$repo/os/$arch pacman -Sy #db更新 pacman -Su #一括アップデート pacman -Ss perl xml parse.*module #検索(複数単語+正規表現) pacman -S __name__ #リポジトリからインストール pacman -U __name__.pkg.tar.gz #ローカルにあるpkgをインストール pacman -Ql __name__ #どこに何のファイルがインストールされたか見る
パッケージがxzだと失敗する
pacman -S xz
cd /var/cache/pacman/pkg/ #しばらくここで作業すると良い
xz -d *.xz #.xz が .tarになる
pacman -U __name__.tar
kmが無い keymapsも無い
チルダはshift+漢字キー
\はshift+]
pacman -S kbd nano /etc/rc.conf # LOCALE,KEYMAP,TIMEZONE設定 nano /etc/locale.gen # ja関連のコメントをはずす locale-gen
pacmanが古い - xzに未対応
pacmanがgzにしか対応していない。xz -dコマンドで解凍してからpacman -Uすればだいたいインストール出来るけど、これでは色々不便。
pacman更新の際、自動的に必要な物を用意してくれる筈が、opensslだけは言うことを聞かない。 1.0.0を入れたのに
libarchive: requires openssl>=1.0.0
入ってないことになっている。多分依存性のチェックがbugってるっぽいので、依存性を無視してみる。
pacman -Si libarchive #依存pkgが揃っている事を確認 pacman -Sd libarchive pacman -Si libfetch #依存pkgが揃っている事を確認 pacman -Sd libfetch pacman -S pacman pacman-db-upgrade cd /etc/pacman.d/ cp mirrorlist.pacsave mirrorlist #なぜか名前変えられてる・・・
これで大丈夫だろうか? -> sshも何事もなく入ったので多分OK。
gccが無い
pacman -S base-devel
sshに入れない
#/etc/hosts.allow
sshd: 10.0.2.0/255.255.255.0
時間
cp /usr/share/zoneinfo/Japan /etc/localtime
pacmanで、could not determine root mount point が出る
#むやみに再起動せずにこれをやる ln -s /proc/self/mounts /etc/mtab
pacmanで取得出来ないソフトは
abs - 自動ソースビルド - gentooのemerge的なあれ
pacman -S abs abs #パッケージ情報ゲット #ここから先はrootでやろうとすると怒られるので、素直に一般ユーザでやる cp -r /var/abs/core/__name__/ . #ビルド用一時dir cd __name__ makepkg -p PKGBUILD pacman -U __name__.pkg.tar.gz
makepkgからpatchの事を色々聞かれる
fileコマンドが無いせい
pacman -S file
さらに楽チンに
yaourt - AURからPKGBUILDを落としてmakepkgとpacmanをやってくれるやつ
かなり楽に自動でソースダウンロード・ビルド・インストールしてくれる
pacman -S fakeroot mkdir package-query cd package-query wget http://aur.archlinux.org/packages/pa/package-query/PKGBUILD makepkg -is #インストール+依存ファイル自動解決 mkdir yaourt cd yaourt wget http://aur.archlinux.org/packages/ya/yaourt/PKGBUILD makepkg -is #インストール+依存ファイル自動解決 yaourt -Ss redmine #試しになんか探してみる
カスタマイズするか?とか色々親切に案内してくれる。コンパイルエラーなどで止まった場合は、"Restart building?"と聞いてくるので、そのまま待たせておいて、/tmp/yaourt-tmp-user にソースがあるので、自分で修正などして対処する。それから"Restart building?"にyを返答すれば続けてくれる。凄い!
/etc/pacman.d/mirrorlist に以下を追加すればいきなりpacman -S yaourtで入れられる事が分かった(20120413)
[archlinuxfr] Server = http://repo.archlinux.fr/i686
*1:最新バージョンが安定しているという訳ではないので注意!個人用又は開発用