2

fedora で docker 用に src.rpm から RPM を構築しようとしています。ここから src.rpm パッケージを入手しました: http://koji.fedoraproject.org/koji/buildinfo?buildID=610523

このガイドに従っています: http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch11s03.html

rpmbuild を実行するとすぐに、次のエラーが表示されます。

[peeyush@localhost ~]$ rpmbuild --rebuild docker-io-1.5.0-1.fc21.src.rpm 
Installing docker-io-1.5.0-1.fc21.src.rpm
error: Failed build dependencies:
    btrfs-progs-devel is needed by docker-io-1.5.0-1.fc21.x86_64
    device-mapper-devel is needed by docker-io-1.5.0-1.fc21.x86_64
    glibc-static is needed by docker-io-1.5.0-1.fc21.x86_64
    go-md2man is needed by docker-io-1.5.0-1.fc21.x86_64
    golang(code.google.com/p/go.net/websocket) is needed by docker-io-1.5.0-1.fc21.x86_64
    golang(code.google.com/p/gosqlite/sqlite3) is needed by docker-io-1.5.0-1.fc21.x86_64
    golang(github.com/Sirupsen/logrus) >= 0.6.0 is needed by docker-io-1.5.0-1.fc21.x86_64
    golang(github.com/coreos/go-systemd/activation) >= 2-1 is needed by docker-io-1.5.0-1.fc21.x86_64
    golang(github.com/docker/libtrust) >= 0-0.2 is needed by docker-io-1.5.0-1.fc21.x86_64
    golang(github.com/docker/libtrust/trustgraph) >= 0-0.2 is needed by docker-io-1.5.0-1.fc21.x86_64
    golang(github.com/godbus/dbus) is needed by docker-io-1.5.0-1.fc21.x86_64
    golang(github.com/gorilla/mux) >= 0-0.13 is needed by docker-io-1.5.0-1.fc21.x86_64
    golang(github.com/kr/pty) >= 0-0.19 is needed by docker-io-1.5.0-1.fc21.x86_64
    golang(github.com/syndtr/gocapability/capability) >= 0-0.7 is needed by docker-io-1.5.0-1.fc21.x86_64
    golang(github.com/tchap/go-patricia/patricia) is needed by docker-io-1.5.0-1.fc21.x86_64

興味深いのは、私はすでに golang をインストールしていることです。

[peeyush@localhost ~]$ rpm -q golang
golang-1.3.3-1.fc21.x86_64

ここで何が問題なのかを理解するのを手伝ってください。または、Docker RPM をビルドする他の方法があれば教えてください。

4

1 に答える 1

2

まず、Docker パッケージの新しいバージョンをインストールするだけの場合は、次のことを考慮してください。

# yum --enablerepo=updates-testing install docker-io

現時点でどちらがあなたを得るでしょうdocker-io.x86_64 0:1.5.0-2.fc21


パッケージをビルドする前に、必要なすべての依存関係をインストールする必要があります。以下を使用して、ソース RPM を手動で検査できますrpm -q

$ rpm -qp --requires docker-io-1.5.0-1.fc21.src.rpm
btrfs-progs-devel
device-mapper-devel
glibc-static
go-md2man
golang >= 1.2.1-3
golang >= 1.3.3
golang(code.google.com/p/go.net/websocket)
golang(code.google.com/p/gosqlite/sqlite3)
golang(github.com/Sirupsen/logrus) >= 0.6.0
golang(github.com/coreos/go-systemd/activation) >= 2-1
golang(github.com/docker/libtrust) >= 0-0.2
golang(github.com/docker/libtrust/trustgraph) >= 0-0.2
golang(github.com/godbus/dbus)
golang(github.com/gorilla/mux) >= 0-0.13
golang(github.com/kr/pty) >= 0-0.19
golang(github.com/syndtr/gocapability/capability) >= 0-0.7
golang(github.com/tchap/go-patricia/patricia)
pkgconfig(systemd)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1

これらの要件を手動でインストールして、バージョン要件を満たしていることを確認するか 、パッケージyum-builddepで利用可能なコマンドを使用してプロセスを自動化できます。yum-utils

$ sudo yum-builddep docker-io-1.5.0-1.fc21.src.rpm 

おそらく次のように表示されます。

[...]
Error: No Package found for golang(github.com/docker/libtrust) >= 0-0.2
Error: No Package found for golang(github.com/docker/libtrust/trustgraph) >= 0-0.2

これは、ビルドしようとしているパッケージがまだリリースされていないパッケージに依存しているためです。それらリポジトリにあるため、updates-testing 次を実行できます。

$ sudo yum-builddep --enablerepo=updates-testing \
  docker-io-1.5.0-1.fc21.src.rpm

これにより、すべての要件がインストールされます。

于 2015-03-18T13:19:29.557 に答える