普段、Manjaro Linuxで公式リポジトリにない、AURパッケージをインストールする場合、yaourtを使用します。実際にyaourt で行っている処理は、AURのサイトからPKGBUILDをダウンロードし、PKGBUILDに書かれたスクリプトを実行してパッケージをビルド(pkg.tar.xz形式)、ビルドしたパッケージをpacman -U コマンドでシステムにインストール、というものです。
パッケージのビルドについては、Manjaro-toolsでも実行することができます。例として、AURパッケージの日本語フォントKoruri(パッケージ名:ttf-koruri)をManjaro-toolsでビルドしてみます。
まず、yaourt コマンド等でttf-koruriのPKGBUIILDをダウンロードします。
yaourt -G ttf-koruri
Manjaro-toolsのコマンドである、buildpkg コマンドを使うとビルドが開始されます。
buildpkg -p koruri -a x86_64
buildpkg コマンドを実行する際、root権限が要求されます。また、-a オプションを使用すると、64bit (x86_64) または32bit (i686)を選択することができます。(注:ttf-koruriについては区別ありません。)
ビルドが終わると、デフォルトでは、/var/cache/manjaro-tools/stable/ 以下のディレクトリに
ttf-koruri-20141224-1-any.pkg.tar.xz というファイルが作成されていると思います。
例えば、公式リポジトリ上に無いパッケージを集めて、リポジトリを作りたい場合は、このようにpkg.tar.xz形式のファイルをビルドして、repo-addコマンドでリポジトリのデーターベースをビルドすることができます(
参照:Manjaro wiki)。Manjaro-toolsの利点は、現在動かしているシステムに関係なく、64bit、32bitのパッケージを作成できることにあります。
次にmikutterをビルドしてみましょう。先ほどと同様にPKGBUILDをダウンロードして、buildpkgコマンドを実行します。すると、以下のエラーメッセージが出て、ビルドが中断します。
==> ERROR: 'pacman' failed to install missing dependencies.
これは、mikutterの依存パッケージが見つからない、という意味です。mikutter のPKGBUILDを見てみると、いくつかの依存パッケージがありますが、ruby-httpclient、ruby-moneta などはそれ自体がAURパッケージです。したがって、それらの一つ一つをビルドする必要があります。例えばruby-monetaをビルドする場合、以下のコマンドを実行します。
buildpkg -n -p ruby-moneta -a x86_64
ここで、-nオプションは後で依存されるパッケージ(ここではmikuter)をビルドする際に必要なものです。
全ての依存パッケージをビルドした後で、mikutter がビルドできるようになります。
buildpkg -p mikutter -a x86_64
PR