2014年12月7日日曜日

yaourtの使い方 | Arch Linux, yaourt, AUR, オプション, パッケージ管理

Arch LinuxにはArch User Repository (AUR, 公式リポジトリに登録されていない様々なパッケージが登録されているリポジトリ) というリポジトリが存在する。yaourtを使えばこのリポジトリに登録されているパッケージをインストールすることができる。例えば、日本語入力ソフトのmozcはAURからインストールする必要がある。公式リポジトリではないので、インストールできても動かないなど、問題を抱えているパッケージもあり、不具合がないか注意して使う必要はある。

yaourtの使い方は、pacmanと似ているので、pacmanさえ使えるようになれば、yaourtも同じ感覚で使える。ただし、yaourtはソースからビルドするので、PKGBUILDファイルの編集が加わることもある。あと、yaourtは基本一般ユーザの権限で利用する。root権限で使うことはほぼ無いので注意。一般ユーザで実行した後、パッケージのインストール直前で管理者パスワードを求められて入力する流れになる。

AURのパッケージを管理するツールとして、packerとかもあったりする。yaourt以外のツールも候補にして、使いやすさなど調べてみても良いかも。現在、自分はpackerの方を使っている。packerの使い方はこの記事にまとめてある。

yaourtを使えるようにする
yaourtのインストール
pacmanから、package-queryをインストールする。
# pacman -S package-query

/etc/pacman.confを編集してAURのリポジトリを追加する。pacman.confに以下の3行を追加する。
# vim /etc/pacman.conf

...
[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch

追加したら、pacmanのデータベースを更新する。
# pacman --sync --refresh yaourt
# pacman -Syu

/etc/makepkg.confの編集
yaourtがパッケージをコンパイルするときの設定を、使用しているCPUに合わせて最適化する。エラーが起こるとめんどくさいので、自分は編集していない。詳しくは、makepkgのページを参照する。使っているCPUに合わせた設定を自動で表示してくれるスクリプト(gcccpuopt)もあるので、使ってみてもいいかも。

yaourtでよく使うオプション
ここでは、pacmanとyaourtで扱いが少し違う、-Sと-Ss、-Syuaを説明する。yaourtでインストールしたパッケージであっても、パッケージの削除やバージョンの情報の表示などは、pacmanからできる。yaourtで注意が必要なのは、-Sの時でPKGBUKLDを編集したり.installを編集したりするとき。

パッケージをインストールする(-S)
はじめに注意したとおり、一般ユーザで実行する。
$ yaourt -S パッケージ名

実行すると、パッケージの管理者からのメッセージ等が表示され、PKGBUILDファイルを編集する必要があるか聞いてくる。必要であればy、なければn。メッセージを読んだりして、なにか怪しいと思ったら、yにしてPKGBUILDを眺めてみて、編集するべきところがあるか確認する。ほぼ編集の必要がないが、プリンタのドライバをインストールするときには編集の必要があった。詳しくは、Arch Linuxでプリンタの設定を参照。
...
This should be all. Please have a look at official OpenJDK packages from extra for reference. "install" scripts for OpenJDK packages have also been revamped for nicer integration but without any consequence on other packages. These could easily be customized (or even taken "as is") for your own "install" scripts.

Comment by josephgbr  (2014-10-13 15:13)
@det: please set this package to work with 'java-runtime-common' and 'java-environment-common'. Thanks in advance!

Comment by Det  (2014-10-13 15:15)
I will, that was asked and explained in the comment just before yours, thank-you :).

Comment by Det  (2014-10-15 06:14)
java.com has now updated to v8, so we could start using the auto-download links (no cookie flags required):

- downloads: https://www.java.com/en/download/manual.jsp?locale=en
- x86_64: http://javadl.sun.com/webapps/download/AutoDL?BundleId=97360
- i686: http://javadl.sun.com/webapps/download/AutoDL?BundleId=97358

jre 8u25-1  (2011年  8月 28日 日曜日 02:57:16 JST)
( Unsupported package: Potentially dangerous ! )
==> Edit PKGBUILD ? [Y/n] ("A" to abort)
==> ------------------------------------
==> n
...

次に、.installファイルを編集する必要があるか聞いてくる。必要であればy、必要なければn。さらに、ビルドしてよければy。
...
==> jre dependencies:
 - ca-certificates-java (already installed)
 - desktop-file-utils (already installed)
 - hicolor-icon-theme (already installed)
 - java-runtime-common (already installed)
 - libxrender (already installed)
 - libxtst (already installed)
 - shared-mime-info (already installed)
 - xdg-utils (already installed)


==> Edit jre.install ? [Y/n] ("A" to abort)
==> ---------------------------------------
==> n

==> Continue building jre ? [Y/n]
==> -----------------------------
==> 
==> Building and installing package
==> Making package: jre 8u25-1 (2014年 12月  7日 日曜日 17:55:29 JST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Downloading jre-8u25-linux-x64.tar.gz...
...

パッケージのコンパイルの時にエラーが出てこなければ、インストール続行でy。もし、エラーなどがあれば、nにしてエラーの原因をネットで見つけて直す必要がある。
...
==> Continue installing jre ? [Y/n]
==> [v]iew package contents [c]heck package with namcap
==> ---------------------------------------------------
==> y

loading packages...
resolving dependencies...
looking for inter-conflicts...

Packages (1): jre-8u25-1

Total Installed Size:   156.15 MiB
Net Upgrade Size:       30.29 MiB

:: Proceed with installation? [Y/n] y
(1/1) checking keys in keyring                                            [#########################################] 100%
(1/1) checking package integrity                                          [#########################################] 100%
(1/1) loading package files                                               [#########################################] 100%
(1/1) checking for file conflicts                                         [#########################################] 100%
(1/1) checking available disk space                                       [#########################################] 100%
warning: /etc/profile.d/jre.sh saved as /etc/profile.d/jre.sh.pacsave
warning: /etc/profile.d/jre.csh saved as /etc/profile.d/jre.csh.pacsave
(1/1) upgrading jre                                                       [#########################################] 100%
:: archlinux-java: JRE ('java-8-jre/jre') set as default Java environment.
New optional dependencies for jre
    alsa-lib: for basic sound support [installed]
    gtk2: for Gtk+ look and feel (desktop) [installed]
    ttf-font: fonts

たまに、エラーで502 Bad Gatewayが出ることがある。インストールを中断して、再度-Sを実行するとエラーなく通ったりする。
...
svn: E175002: PROPFIND request on /svn/!svn/bln/ failed: 502 Bad Gateway
...


パッケージを検索する(-Ss)
AURに登録されているパッケージを検索するときは-Ssを使う。pacmanと同じ。ただし、yaourtで-Ssを使うと、公式リポジトリとAURの両方を検索してくれる。
$ yaourt -Ss jre
extra/jre7-openjdk 7.u71_2.5.3-1
    OpenJDK Java 7 full runtime environment
extra/jre7-openjdk-headless 7.u71_2.5.3-1
    OpenJDK Java 7 headless runtime environment
extra/jre8-openjdk 8.u25-1
    OpenJDK Java 8 full runtime environment
extra/jre8-openjdk-headless 8.u25-1
    OpenJDK Java 8 headless runtime environment
aur/android-apktool-beta 2.0.0rc3-1 (2)
    A tool for reengineering Android apk files. Uses JRE7+.
aur/bin32-jre 8u25-1 (119)
    Java Runtime Environment (32-bit)
aur/bin32-jre6 6u45-2 (7)
    Oracle Java 6 Runtime Environment (32-bit) (public release - end of support)
aur/bin32-jre7 7.72-1 (0)
    Java 7 Runtime Environment (32-bit)
aur/bin32-jre7-openjdk 7.u55_2.4.7-1 (8)
    32-bit Free Java environment based on OpenJDK 7.0 with IcedTea7 replacing binary plugs for Arch x86_64
aur/ejre-arm-headless 7.60-2 (1)
    Oracle Embedded Java Runtime Environment for ARM - headless
aur/galleon-cvs 20100110-1 (2)
    Galleon is a Java application which means it requires the Java Runtime Environment (JRE) to be installed for it 
    to run on your computer. Once Galleon is running on your computer, you can access its applications on your TiVo 
    DVR.
aur/jre 8u25-1 [installed] (484)
    Oracle Java Runtime Environment
...

気になったパッケージがあれば、-Siで確認する。
$ yaourt -Si jre
/dev/fd/63: line 10: syntax error near unexpected token `('
/dev/fd/63: line 10: `declare optdepends=('alsa-lib: for basic sound support''
/dev/fd/63: line 12: syntax error near unexpected token `('
/dev/fd/63: line 12: `declare depends=('ca-certificates-java' 'desktop-file-utils' 'hicolor-icon-theme' 'java-runtime-common'          'libxrender' 'libxtst' 'shared-mime-info' 'xdg-utils')'
Repository     : aur
Name           : jre
Version        : u-1
URL            : http://www.oracle.com/technetwork/java/javase/downloads/index.html
AUR URL        : https://aur.archlinux.org/packages/jre
Licenses       : custom
Votes          : 484
Out Of Date    : No
Groups         : None
Provides       : java-runtime= java-runtime-headless= java-web-start= java-runtime-jre= java-runtime-headless-jre= 
                 java-web-start-jre= 
Depends On     : None
Optional Deps  : alsa-lib: for basic sound support
                 gtk2: for Gtk+ look and feel (desktop)
                 ttf-font: fonts
Conflicts With : None
Replaces       : None
Maintainer     : Det
Architecture   : i686 x86_64
Last update    : 2014年12月06日 02時03分17秒
Description    : Oracle Java Runtime Environment


パッケージをアップデートする(-Syua)
AURを含んだ全てのパッケージをアップデートするときは、-Syuaオプションを使う。-a (--aur)でAURリポジトリも含むことになる。-aオプションはpacmanには用意されていないので、yaourtでしか実行できない。pacman -Syuと同様に、定期的にアップデートを実行する。
$ yaourt -Syua
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community                                       2.4 MiB  5.28M/s 00:00 [########################################] 100%
 multilib-testing is up to date
 archlinuxfr is up to date
 banshee-community-extensions : Orphan 
 Foreign packages: / 13 / 13



参考:
[1]Yaourt
[2]makepkg

スポンサーリンク

スポンサーリンク

0 件のコメント:

コメントを投稿