FreeBSDのパッケージ管理をpkgngに移行
FreeBSDのパッケージは、基本的にはソースからビルドします。でも、やっぱり、コンパイル済みのバイナリをダウンロードできた方が便利ですし、最新版を使いたいです。
- FreeBSDのパッケージ管理が面倒: プラスα空間 (2013年12月24日)
FreeBSDには、新しいパッケージ管理ステムが開発されています。といっても、今まで通り、portsコレクションのソースをビルドする事もできます。
新しいパッケージ管理システム(pkgng)の使い方は、次のウェブサイトで解説されています。
ですが、何度やっても、次のエラーが出ていたのです。
# pkg update Updating repository catalogue pkg: Warning: use of http:// URL scheme with SRV records is deprecated: switch to pkg+http:// digests.txz 100% 1069KB 1.0MB/s 738.9KB/s 00:01 pkg: Warning: use of http:// URL scheme with SRV records is deprecated: switch to pkg+http:// packagesite.txz 100% 4948KB 989.5KB/s 1.0MB/s 00:05 Incremental update completed, 22859 packages processed: 0 packages updated, 0 removed and 22859 added. pkg: Unable to find catalogs
“pkg: Unable to find catalogs"と言うエラーメッセージが出て、その先へ進めませんでした。
次のページの解説が、かなり良い線を行っていたのですが、ダメでした。
ダメ元で、twitterで検索したら、次の物を発見しました。ありがとうございます。あなたの一言が、あきらめかけていた背中を押してくれました。
"unable to find catalogs" はpkgngのバグとな RT @mwlauthor New #freebsd pkg set has a bug, you can't pkg upgrade right now – http://t.co/jwqmpByvoW
— nobwak (@nobwak) 2014, 1月 10
pkgのバグ? バグ修正版のはずだし、何度もビルドしているし…。
あきらめずに、もう一度トライしてみました。やった事を、そのまま貼付けます。
# portsnap fetch extract update # cd /usr/ports/ports-mgmt/pkg # make deinstall # make install clean # cd /var/db # mv pkg pkg.bad3 # mkdir pkg # pkg2ng Converting packages from /var/db/pkg # ls -l pkg total 81 -rw-r--r-- 1 root wheel 81920 Jan 18 12:19 local.sqlite # pkg audit -F vuln.xml.bz2 100% 426KB 426.1KB/s 426.1KB/s 00:01 0 problem(s) in the installed packages found. # pkg -vv Version : 1.2.5 PACKAGESITE : PKG_DBDIR : /var/db/pkg PKG_CACHEDIR : /var/cache/pkg PORTSDIR : /usr/ports PUBKEY : HANDLE_RC_SCRIPTS : no ASSUME_ALWAYS_YES : no REPOS_DIR : [ /etc/pkg/, /usr/local/etc/pkg/repos/, ] PLIST_KEYWORDS_DIR : SYSLOG : yes AUTODEPS : yes ABI : freebsd:9:x86:64 DEVELOPER_MODE : no PORTAUDIT_SITE : http://portaudit.FreeBSD.org/auditfile.tbz VULNXML_SITE : http://www.vuxml.org/freebsd/vuln.xml.bz2 MIRROR_TYPE : SRV FETCH_RETRY : 3 PKG_PLUGINS_DIR : /usr/local/lib/pkg/ PKG_ENABLE_PLUGINS : yes PLUGINS : [ ] DEBUG_SCRIPTS : no PLUGINS_CONF_DIR : /usr/local/etc/pkg/ PERMISSIVE : no REPO_AUTOUPDATE : yes NAMESERVER : EVENT_PIPE : FETCH_TIMEOUT : 30 UNSET_TIMESTAMP : no SSH_RESTRICT_DIR : PKG_SSH_ARGS : PKG_ENV : { } DISABLE_MTREE : no DEBUG_LEVEL : 0 ALIAS : { } Repositories: FreeBSD: { url : "http://pkg.FreeBSD.org/freebsd:9:x86:64/latest", enabled : yes, mirror_type : "SRV" } # cat /etc/make.conf WITH_PKGNG= yes # pkg update -f Updating repository catalogue pkg: Warning: use of http:// URL scheme with SRV records is deprecated: switch to pkg+http:// digests.txz 100% 1067KB 533.5KB/s 1.0MB/s 00:02 pkg: Warning: use of http:// URL scheme with SRV records is deprecated: switch to pkg+http:// packagesite.txz 100% 4946KB 706.6KB/s 1.5MB/s 00:07 Incremental update completed, 22859 packages processed: 0 packages updated, 0 removed and 22859 added.
エラーが出なくなりました。そして、パッケージのインストールもうまく行きました。
はぁ〜、長かった。
途中、/var/db/pkgを消して、再度作り直しています。これが効いているのかもしれません。ディレクトリ名が、pkg.bad3となっている様に、数回作り直しています。
メッセージで、URLを"pkg+http://"に直せと書かれていますので、ここだけ修正しました。
# cat /usr/local/etc/pkg/repos/FreeBSD.conf FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest", mirror_type: "srv", enabled: yes }
結局、環境を奇麗にして、ビルドし直したら直ったと言う事です。
ディスカッション
コメント一覧
まだ、コメントがありません