U*IXの伝統に則り、アプリケーションはソースからコンパイルして使うのが当然だと考えていたので、pkgsrcを自前でビルドしていたのですが、ビルド済みの出来合いのパッケージをネットワーク越しに取ってきてインストールするだけにするのが、ビルド時間も節約できるし、今風のやり方なのかもしれません。pkg_rolling-replaceを使わなくても、pkg_chkやpkginなどを使えば良さそうです。
そこでpkginを使ってみました。 まずpkgtools/pkginから導入します。/usr/pkg/etc/pkgin/repositories.confの設定は、導入直後は次のようになっていました。
ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/$arch/8.99.43/AllこのままではOSのバージョンが不適切なので、エディタで以下のように修正しました。
ftp://ftp7.jp.netbsd.org/pub/pkgsrc/packages/NetBSD/$arch/8.0_2019Q1/Allファイルには複数のリポジトリを記述できるようですが、先頭から順番に使われると考えて良いのでしょうか。そうであると仮定して、先頭に日本のミラーサイトを指定しました。念のためにマスターサイトも書いておきました。
ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/$arch/8.0_2019Q1/All
ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/$arch/8.0/All
この状態で`pkgin full-upgrade`をおこなうと、次のようになりました。
285 to refresh, 30 to upgrade, 21 to install一部のパッケージがインストールできませんでした。出力されているメッセージを確認すると、次のようなエラーが多数出ています。
338M to download, 471M to install
the following packages have unmet requirements:
/usr/X11R7/lib/libfreetype.so.18, needed by atril-1.22.0nb3 is not present in this system.このメッセージの意図するところは、atril-1.22.0nb3というパッケージが必要とする/usr/X11R7/lib/libfreetype.so.18が存在しないということですね。ディレクトリを確認すると、確かに存在しません。しかし/usr/X11R7/lib/libfreetype.so.17なら存在するのです。
このファイルの出所を探るために/var/db/pkgで「grep libfreetype.so.17 */+CONTENTS」としたら、x11-linksに含まれていることがわかりました。
このようなエラーになっているファイルは他にもあって、いずれも共有ライブラリのバージョン番号が違っているだけです。
- /usr/X11R7/lib/libGL.so.3
- /usr/X11R7/lib/libGLU.so.3
- /usr/X11R7/lib/libfreetype.so.18
- /usr/X11R7/lib/libglapi.so.1
- /usr/X11R7/lib/libXpresent.so.1
そもそも何故バージョンがずれているのでしょうか?「pkgin pkg-build-defs atril | grep libfreetype」として確認すると、以下のようになりました。リポジトリに置かれているファイルが、既にそのようになっているのでしょう。
REQUIRES=/usr/X11R7/lib/libfreetype.so.18
REQUIRES=/usr/pkg/lib/libfreetype.so.6
この問題を解決するには、どうしたら良いでしょう。エラーになっているパッケージだけは、自前でビルドすれば良いかもしれませんが、駄目かもしれません。問題のファイルが原因で導入できないパッケージは100弱ほどあるので、自前でビルドしていては、またしても時間がかかってしまいます。
そこでちょっと荒業ですが、既存のファイルに向けてシンボリックリンクを張り、見かけ上ファイルがあるように見せかけることにしました。
lrwxr-xr-x 1 root wheel 12 May 23 2016 libGL.so -> libGL.so.2.0
lrwxr-xr-x 1 root wheel 12 May 23 2016 libGL.so.2 -> libGL.so.2.0
-r--r--r-- 1 root wheel 770372 May 23 2016 libGL.so.2.0
lrwxrwxr-x 1 root wheel 12 Jun 26 14:20 libGL.so.3 -> libGL.so.2.0
lrwxr-xr-x 1 root wheel 13 May 23 2016 libGLU.so -> libGLU.so.2.0
lrwxr-xr-x 1 root wheel 13 May 23 2016 libGLU.so.2 -> libGLU.so.2.0
-r--r--r-- 1 root wheel 510338 May 23 2016 libGLU.so.2.0
lrwxrwxr-x 1 root wheel 13 Jun 26 14:21 libGLU.so.3 -> libGLU.so.2.0
lrwxrwxr-x 1 root wheel 33 Jun 26 14:24 libXpresent.so.1 -> /usr/pkg/lib/libXpresent.so.1.0.0
lrwxr-xr-x 1 root wheel 22 May 23 2016 libfreetype.so -> libfreetype.so.17.4.11
lrwxr-xr-x 1 root wheel 22 May 23 2016 libfreetype.so.17 -> libfreetype.so.17.4.11
-r--r--r-- 1 root wheel 589796 May 23 2016 libfreetype.so.17.4.11
lrwxrwxr-x 1 root wheel 22 Jun 26 14:22 libfreetype.so.18 -> libfreetype.so.17.4.11
lrwxr-xr-x 1 root wheel 15 May 23 2016 libglapi.so -> libglapi.so.0.0
lrwxr-xr-x 1 root wheel 15 May 23 2016 libglapi.so.0 -> libglapi.so.0.0
-r--r--r-- 1 root wheel 281835 May 23 2016 libglapi.so.0.0
lrwxrwxr-x 1 root wheel 15 Jun 26 14:22 libglapi.so.1 -> libglapi.so.0.0
この状態で、あらためて「pkgin full-upgrade」したところ、ひとまず全ての更新に成功しました。今月上旬にpkg_rolling-replaceで始めたアプリケーションの全更新が、とりあえず完了したことになります。しかし、ディスク不足を解消するためにFirefoxやLibreOfficeを削除してしまっていますから、あらためてインストールしておかなければなりません。
さらに個人アカウントでMateデスクトップにログインしてみると、画面がすっかり初期化されていて、以前の状態が消えてしまっています。しかも、一部の機能にエラーがあり、以前と同じ環境を取り戻すには、まだ調査と作業が必要のようです。
問題は残っていますが、約1か月間に亘りビルドを続けていましたが、一区切りをつけることはできたと思います。
0 件のコメント:
コメントを投稿