UNIX的技術向上計画

UNIX系のOS。主にOpenBSDとUbuntuについて、自分のメモも兼ねて書いていきます。基本的に内容及びリンク先については保証致しません。ご了承ください。

OpenBSD を current にする

OpenBSD を current にします。

OpenBSD では current を追いかけることを推奨しています。 なので、そのための手順を解説します。

公式のマニュアルにそって行っていますが、正直きちんとできているのか自信がありません。

環境

OS: OpenBSD-current

アーキテクチャ: i386

準備

まず、最新の snapshot 版をインストールします。 release でもいいのですが、こちらの方が手順が少し少なくてすむのでおすすめです。

初期設定

CVS リポジトリにアクセスするため、 「 .profiles 」に以下を追加します。

CVSROOT="anoncvs@anoncvs.jp.openbsd.org:/cvs"
export CVSROOT

再度ログインするか、上記をプロンプトで打って反映させます。

リポジトリのダウンロードと更新

あらかじめ「 src.tar.gz 」をダウンロードし、「 /tmp 」に配置します。

# cd /tmp/
# ftp ftp://ftp.jaist.ac.jp/pub/OpenBSD/5.4/src.tar.gz
# cd /usr/
# tar pxzf /tmp/src.tar.gz
# cd /usr/src/
# cvs -d$CVSROOT up -Pd

アップデートするときも同一の cvs コマンドを使用します。

# cd /usr/src
# cvs -d$CVSROOT up -Pd

カーネルをビルドする。

使用しているアーキテクチャに合わせたカーネルをビルドし、 インストールします。

今回は「 i386 」なので以下になりますが、 異なるアーキテクチャの場合はそれに合わせます。

# cd /usr/src/sys/arch/i386/conf
# config GENERIC
# cd ../compile/GENERIC/ 
# make clean && make depend && make
# make install

インストールが終わったら再起動させます。

# reboot

ユーザランドをビルド

次にカーネル以外の部分を最新にします。

# rm -rf /usr/obj/*
# cd /usr/src/
# make obj

あとで必要になるため、以下のディレクトリを作成しておきます。

# mkdir /usr/obj/ports

ビルドを行います。 かなり時間(3時間ぐらい)がかかるので、気長に待ちましょう。

# cd /usr/src/etc && env DESTDIR=/ make distrib-dirs
# cd /usr/src
# make build

細かな変更の適用

ビルドが終了したら「 Following -current 」 を確認し、必要な変更を行います。

snapshot 版を使用したのは、 これなら release よりも新しく、 この変更が少なくてすむからです。

例えば 2013/12/04 には、 2013/12/08 に libcompat が廃止されたので、 以下のコマンドを実行し、 必要のないファイルを削除するように書かれています。

# rm -f /usr/lib/libcompat.a /usr/lib/libcompat_p.a
# rm -f /usr/include/{re_comp,regexp,sgtty,sys/timeb}.h
# rm -f /usr/share/man/man3/{re_comp,re_exec,rexec,regexp}.3
# rm -f /usr/share/man/man3/{cuserid,ftime,gtty,setrgid,setruid,stty}.3

これ以外にも様々な指示があるので、 よく内容を読んで実行してください。

ports の初期設定

次に ports の設定を行います。 まず、カーネルと同様ににソースコードをダウンロードして 最新にします。

なお、これ以降は基本的にルートユーザ以外で行っています。 あらかじめ sudo の設定を行ってください。

$ cd /tmp/
$ ftp ftp://ftp.jaist.ac.jp/pub/OpenBSD/snapshots/ports.tar.gz
$ cd /usr/
$ sudo tar pxzf /tmp/ports.tar.gz

アップデートには下記を使用

$ cd /usr/ports/
$ sudo cvs -d$CVSROOT up -Pd

「 /etc/mk.conf 」に以下を追加します。

SUDO=/usr/bin/sudo
USE_SYSTRACE=Yes
WRKOBJDIR=/usr/obj/ports
DISTDIR=/usr/distfiles
PACKAGE_REPOSITORY=/usr/packages

アクセス権を修正します。

$ sudo chgrp -R wsrc /usr/ports
$ sudo find /usr/ports -type d -exec chmod g+w {} \;

フォルダを作成します。

$ sudo mkdir /usr/obj/ports
$ sudo mkdir /usr/distfiles
$ sudo mkdir /usr/packages

基本的な使用方法

  • 検索

    $ cd /usr/ports
    $ make search key=rsnapshot

必要なものが見つかったら、 そのディレクトリに移動し、 以下のコマンドを使用して、 インストールを行います。

  • インストール

    $ sudo make install

  • フレーバーの表示

    $ make show=FLAVORS

  • フレーバーの設定してインストール。

    $ sudo env FLAVOR=no_x11 make install

  • サブパッケージの表示

    $ make show=MULTI_PACKAGES

  • サブパッケージを指定してインストール

    $ env SUBPACKAGE="-server" make install

以上です。

参考資料・リンク

5 - Building the System from Source

15 - The OpenBSD packages and ports system

Anonymous CVS

更新履歴

  • 2013/12/27 初版

  • 2013/12/29 一部誤字等を修正