コンピュータや音楽の事書いてます

メモ:Arch Linux on colinux

Arch Linux

  • 気に入った点
    • 軽快さ重視
    • GUIなにそれ?的な雰囲気
    • なのに常に最新のツール・ライブラリ(今時点のgccバージョン4.6.1!)*1
    • 各confファイルに詳しい解説が書いてあるらしい
    • パッケージインストール時、環境最適化タイプ(abs)とお手軽タイプ(pacman)、好きな方法を選べる

インストール

ダウンロード 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
windowsサービスとして登録できる

colinux-daemon.exe @Arch.conf --install-service "coLinux"

*1:最新バージョンが安定しているという訳ではないので注意!個人用又は開発用