公式(?)なリポジトリを追加すればいいらしい
$ sudo zypper ar -f http://download.opensuse.org/repositories/Virtualization/openSUSE_12.3/ Virtualization $ sudo rpm --import http://download.opensuse.org/repositories/Virtualization/openSUSE_12.3/repodata/repomd.xml.key
で、リポジトリにDockerのが追加され
$ sudo zypper in docker
で、インスコされ。。。ない。。。
moguriso@balthazar:~$ sudo zypper in docker リポジトリ 'Virtualization' のメタデータを取り出しています... ..........................................[完了] リポジトリ 'Virtualization' のキャッシュを構築しています ...............................................[完了] リポジトリのデータを読み込んでいます... インストール済みのパッケージを読み込んでいます... パッケージの依存関係を解決しています... 問題点: docker-1.1.2-13.3.x86_64 で必要としている kernel >= 3.8.0 はどこからも提供されていません 解決方法 1: docker-1.1.2-13.3.x86_64 をインストールしない 解決方法 2: いくつかの依存関係を無視することによって docker-1.1.2-13.3.x86_64 を壊します いずれかの数字を入力するか、キャンセル(C) を入力してください [1/2/c] (c):
kernel 3.8以上にしろや(#゚Д゚)ゴルァ!!ということらしい
$ sudo zypper dup
しても
$ uname -r
3.7.10-1.36-desktop
多分rc用じゃないsrc.rpmを↓からdownload
$ wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/openSUSE_user1:/kernel-custom/openSUSE_12.1/noarch/kernel-source-3.8.6-3.1.noarch.rpm
$ wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/openSUSE_user1:/kernel-custom/openSUSE_12.1/noarch/kernel-devel-3.8.6-3.1.noarch.rpm
3.7.x系と競合するのでNG。当たり前か、、、vanillaから入れなおそうかと思ったけれど自宅に居ないからrebuild掛けて諦め・・・
とりあえずzypperでソースを落とす
$ sudo zypper in docker.src $ cd /usr/src/packages/SPECS $ sudo rpmbuild -ba docker.spec エラー: ビルド依存性の失敗: bash-completion は docker-1.1.2-13.3.x86_64 に必要とされています device-mapper-devel >= 1.2.68 は docker-1.1.2-13.3.x86_64 に必要とされています glibc-devel-static は docker-1.1.2-13.3.x86_64 に必要とされています go >= 1.2 は docker-1.1.2-13.3.x86_64 に必要とされています libapparmor-devel は docker-1.1.2-13.3.x86_64 に必要とされています libbtrfs-devel >= 3.8 は docker-1.1.2-13.3.x86_64 に必要とされています systemd-devel は docker-1.1.2-13.3.x86_64 に必要とされています zsh は docker-1.1.2-13.3.x86_64 に必要とされています
怒られた
$ sudo zypper in bash-completion device-mapper-devel glibc-devel-static go libapparmor-devel libbtrfs-devel systemd-devel zsh
入れた。
$ sudo rpmbuild -ba docker.spec エラー: ビルド依存性の失敗: go >= 1.2 は docker-1.1.2-13.3.x86_64 に必要とされています
goのversionが古いらしい
$ go version go version go1.0.3
確かに古い
$ sudo zypper rm go
消した
$ wget https://storage.googleapis.com/golang/go1.3.1.linux-amd64.tar.gz
取ってきた.適当に展開してパスを通す。
moguriso@balthazar:/usr/src/packages/SPECS$ sudo bash /var/tmp/rpm-tmp.atVXE9 + umask 022 + cd /usr/src/packages/BUILD + /usr/bin/rm -rf /usr/src/packages/BUILDROOT/docker-1.1.2-13.3.x86_64 ++ dirname /usr/src/packages/BUILDROOT/docker-1.1.2-13.3.x86_64 + /usr/bin/mkdir -p /usr/src/packages/BUILDROOT + /usr/bin/mkdir /usr/src/packages/BUILDROOT/docker-1.1.2-13.3.x86_64 + cd docker + '%{go_disable_brp_strip_static_archive}' /var/tmp/rpm-tmp.atVXE9: line 30: fg: no job control + cd docker + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + echo 'Patch #0 (0002-Stripped-dockerinit-binary.patch):' Patch #0 (0002-Stripped-dockerinit-binary.patch): + /usr/bin/cat /usr/src/packages/SOURCES/0002-Stripped-dockerinit-binary.patch + /usr/bin/patch -p1 --fuzz=0 patching file hack/make/dynbinary Hunk #1 succeeded at 16 (offset 1 line). + cp /usr/src/packages/SOURCES/README_SUSE.md . + exit 0 実行中(%build): /bin/sh -e /var/tmp/rpm-tmp.4tQ0qA + umask 022 + cd /usr/src/packages/BUILD + /usr/bin/rm -rf /usr/src/packages/BUILDROOT/docker-1.1.2-13.3.x86_64 ++ dirname /usr/src/packages/BUILDROOT/docker-1.1.2-13.3.x86_64 + /usr/bin/mkdir -p /usr/src/packages/BUILDROOT + /usr/bin/mkdir /usr/src/packages/BUILDROOT/docker-1.1.2-13.3.x86_64 + cd docker + '%{go_disable_brp_strip_static_archive}' /var/tmp/rpm-tmp.4tQ0qA: line 30: fg: no job control エラー: /var/tmp/rpm-tmp.4tQ0qA の不正な終了ステータス (%build) RPM ビルドのエラー: /var/tmp/rpm-tmp.4tQ0qA の不正な終了ステータス (%build)
怒られた。 sudo bashで↑の /var/tmp/rpm-tmp.4tQ0qAを実行すると成功してバイナリが出来るので多分環境変数か何かが見えてないんだと思う。おそらくはgo_disable_brp_strip_static_archive。
ぐぐっても引っかからないので、取り敢えず zypper in goしてgo 1.0.3を入れて、/usr/bin/goを/usr/bin/go.orgにリネーム。which goで後から入れた方(1.3.x)が見えることを確認して再度実行。更にdocker.specのkernelを3.8=>3.7に書き換えてgoのbuild requireを削除したらrpmを吐いた。
moguriso@balthazar:/usr/src/packages/RPMS/x86_64$ ls docker-1.1.2-13.3.x86_64.rpm moguriso@balthazar:/usr/src/packages/RPMS/x86_64$ sudo rpm -ivh docker-1.1.2-13.3.x86_64.rpm エラー: 依存性の欠如: apparmor-parser は docker-1.1.2-13.3.x86_64 に必要とされています
apparmor-parserがねーよと怒られるので入れる。
moguriso@balthazar:/usr/src/packages/RPMS/x86_64$ sudo zypper in apparmor-parser
んで、再度インストール
umoguriso@balthazar:/usr/src/packages/RPMS/x86_64$ sudo rpm -ivh docker-1.1.2-13.3.x86_64.rpm 準備しています... ################################# [100%] creating group docker... 更新中 / インストール中... 1:docker-1.1.2-13.3 ################################# [100%] Updating /etc/sysconfig/docker... moguriso@balthazar:/usr/src/packages/RPMS/x86_64$ which docker /usr/bin/docker
入った。動くんか、これ?
via openSUSE - Docker Documentation
via Go言語のインストール - golang.jp
via Downloads - The Go Programming Language