- 1. 概要
- 2. portsnap
- 3. portupgrade
- 4. portsの状態を参照する
- 5. portsのアップグレード
1. 概要
デスクトップ環境構築は、初心者でもできるようにしたいと思っているので、アプリケーションのインストールはできる限り pkg で済ませたいと考えています。
しかしどうしても pkg 化されないものもあって、そういうときは ports を使ってインストールします。
いざ、インストールするときに ports を使ってインストールしようとしても、自分の持っている ports の DB が古いものだと、サーバにダウンロード対象とするものがなく、インストールエラーとなってしまいます。
ports は常に最新にしておく必要があります。その手順について記述します。
サーバのインストール手順にも書いてありますが、デスクトップ環境とサーバ環境ではいささか設定を変えておいた方がいいと考えていますので、あえて記述することにしました。
2. portsnap
portsnap コマンドを使用して、ports の状態を最新にします。
portsnap のコンフィグレーションファイルは
/etc/portsnap.conf
です。これを編集します。
# REFUSE arabic chinese french german hebrew hungarian japanese
# REFUSE korean polish portuguese russian ukrainian vietnamese
ports の更新をかけないグループを指定するもので、日本語以外の他言語を使用しないのであれば、上記より japanese を削除して先頭のコメント定義である # を削除します。
下記のようにするわけです
REFUSE arabic chinese french german hebrew hungarian
REFUSE korean polish portuguese russian ukrainian vietnamese
ports の最新を収集して、現在あるものと置き換えます。
portsnap fetch
portsnap extract
3. portupgrade
ports をメンテナンスするための ports(portupgrade) をインストールします。
portupgrade を make する前に make のコンフィグレーションファイルを /usr/share/examples/etc/make.conf から /etc/make.conf へコピーしておきます。
cp /usr/share/examples/etc/make.conf /etc/.
2018年12月14日時点で、以降の作業を行う場合、/etc/make.conf の末尾に以下の記述を加えておいた方がいいかと思います。
DEFAULT_VERSIONS+=perl5=5.28
DEFAULT_VERSIONS+=ssl=openssl
DEFAULT_VERSIONS+=python=3.6 pythonr3=3.6
パッケージのバージョン指定です。
perl は、デフォルトで 5.26 がインストールされますが、すぐに 5.28 へのアップグレードを促されますので、最初から 5.28 をインストールするべきかと思います。
ssl は openssl か openssl-devel か、未だ、揺れているようですが、ベースは openssl でよいかと思います。
python は、2.7 系列に依存するものが若干残っているようですが、3.6 をベースにすべきかと思います。
portupgrade をインストールします。
cd /usr/ports/ports-mgmt/portupgrade
make
make install
インストールが終わったら、rehash して、プログラムを有効化し、いったん fetch して extract した ports を再度、fetch、extrace します。
portsnap fetch
portsnap extract
ここまで終わっていれば、これ以降、ports の更新は
portsnap fetch
portsnap update
となります。
ports データベース更新で使用する証明書を含む ports をインストールします。
cd /usr/ports/security/ca_root_nss
make config
オプションはデフォルトのままにします。
cd /usr/ports/security/ca_root_nss
make
make install
データベースの更新は
portsdb -Fu
で行います。
4. ports の状態を参照する
データベースの状態を参照するには
portversion -v
とします。
結果として以下のような表示になります。(あくまでも一例です)
[Rebuilding the pkgdb <format:bdb_btree> in /var/db/pkg ... - 17 packages found (-0 +17) ................. done]
autoconf-2.68 = up-to-date with port
autoconf-wrapper-20101119 = up-to-date with port
automake-1.11.1 = up-to-date with port
automake-wrapper-20101119 = up-to-date with port
db41-4.1.25_4 = up-to-date with port
gettext-0.18.1.1 = up-to-date with port
gmake-3.81_4 < needs updating (port has 3.82)
help2man-1.38.4 < needs updating (port has 1.30.4)
ja-freebsd-doc-20110110 < needs updating (port has 20110828)
libiconv-1.13.1_1 = up-to-date with port
libtool-2.2.10 < needs updating (port has 2.4)
m4-1.3.15,1 < needs updating (port has 1.3.16,1)
p5-Locale-gettext-1.05_3 = up-to-date with port
perl-5.10.1_3 < needs updating (port has 5.10.1_4)
portupgrade-2.4.8_1,2 < needs updating (port has 2.4.9.3,2)
ruby-1.8.7.302,1 < needs updating (port has 1.8.7.352_2,1)
ruby18-bdb-0.6.5_1 < needs updating (port has 0.6.6)
「=」マークがついていれば、最新版がインストールされている
「<」マークがついていれば、ports に新しい版が存在する(更新すべきかも)
「?」マークがついていれば、ports のリストから削除された、または、ports名が変更された
ということになります。
ここまでの一連の動作を、crontab に記述して定期的に ports を更新する方法もありますが、バックグラウンドでやってしまうと見落とすことがありますので、例えば適当なディレクトリに下記のような Makefile を作成しておいて、明示的に make する方法もあります。
ports :
portsnap fetch
portsnap update
portsdb -Fu
portversion -v
5. ports のアップグレード
portversion で新しい版が出ている ports を更新するには、
portupgrade ports名
というコマンドを使用します。
-R というオプションをつければ対象の ports が依存している ports を同時に更新します。
-r というオプションをつければ対象の ports に依存している ports を同時に更新します。
|