- PR -

rpmコマンドのインストールオプションについて

1
投稿者投稿内容
Rydia
ベテラン
会議室デビュー日: 2003/09/26
投稿数: 60
投稿日時: 2004-11-11 19:38
いつもお世話になっております。

本当に初心者的な質問で申し訳ないのですが教えて下さい。
RedHat Linuxにてとあるrpmパッケージをインストールする際に
インストールディレクトリを変更したいため、

rpm -i --prefix /usr/local/xxx パッケージ名

と入力し実行したのですが、以下のようなエラーが表示され
インストールできませんでした。

error: package パッケージ名 is not relocateable.

パッケージは新しいディレクトリへインストールできませんでした
という意味だと解釈しているのですがなぜなのでしょうか。
ちなみにmanで「rpm」コマンドについて確認して見ると
構文的には間違っていないようなのです。

これはパッケージによっては別ディレクトリへインストール
できないということなのでしょうか?
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-11-11 19:52
こんばんわ.
引用:

Rydiaさんの書き込み (2004-11-11 19:38) より:

rpm -i --prefix /usr/local/xxx パッケージ名


xxx という Directory は作ってありますか?
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2004-11-11 19:57
> error: package パッケージ名 is not relocateable.

このメッセージを見る限り、RPM の作者が任意の場所にインストールすることを
許可していないだけのような気がします。

man を参照すると prefix オプションについては、
「For relocateable binary packages, ...」という記述があります。
めぐ
ベテラン
会議室デビュー日: 2004/11/09
投稿数: 86
お住まい・勤務地: 千葉県内
投稿日時: 2004-11-12 09:46
こんにちは。

あんとれさんが言われるように、そのパッケージがrelocatableではないためでしょう。
Relocatabeleであれば、以下のようにRelocationsにパスが表示されます。
# rpm -qpi tcpdump-3.7.2-7.E3.2.i386.rpm
Name : tcpdump Relocations: /usr
Version : 3.7.2 Vendor: Red Hat, Inc.
...
(省略)

そうでない場合は (not relocatable)と表示されます。

kazさんが指摘されたような、存在しないDirectoryを指定した場合でも
Relocatableならば、Directoryが作成されてインストールできます。
[root@data up2date]# rpm -ihv --prefix /usr/localtest tcpdump-3.7.2-7.E3.2.i386.rpm
Preparing... ########################################### [100%]
1:tcpdump ########################################### [100%]

[root@data up2date]# rpm -ql tcpdump
/usr/localtest/sbin/tcpdump
/usr/localtest/sbin/tcpslice
/usr/localtest/share/doc/tcpdump-3.7.2
/usr/localtest/share/doc/tcpdump-3.7.2/CHANGES
/usr/localtest/share/doc/tcpdump-3.7.2/LICENSE
/usr/localtest/share/doc/tcpdump-3.7.2/README
/usr/localtest/share/man/man8/tcpdump.8.gz
/usr/localtest/share/man/man8/tcpslice.8.gz


[ メッセージ編集済み 編集者: めぐ 編集日時 2004-11-12 09:48 ]
Mattun
ぬし
会議室デビュー日: 2004/08/10
投稿数: 1391
投稿日時: 2004-11-12 09:56
引用:

RedHat Linuxにてとあるrpmパッケージをインストールする際に
インストールディレクトリを変更したいため、


実現したいことが上記である場合、他の方法としては、SRPMの再作成が考えられます。

まずは、
http://www.itmedia.co.jp/help/tips/linux/l0074.html
を参考にして該当パッケージのSRPMをインストールしてください。
そのあと、SPECファイルの中身を確認し、configure云々が記述されているところと、
その前にいくつか書いてある変数を確認して、適切に編集してやり、
rpmを構築することで、好みのオプションで構築されたRPMパッケージを作成することが可能です。
Rydia
ベテラン
会議室デビュー日: 2003/09/26
投稿数: 60
投稿日時: 2004-11-12 12:08
kaz様、あんとれ様、めぐ様、Mattun様
ご回答ありがとうございます。

めぐさんのおっしゃる通り、
インストールしたいパッケージを「rpm -qpi」で調べてみると
「Relocations:(not relocatable)」と表示されました。
このパッケージが「relocatable」でないということがわかりました。
一度、SRPMの再作成も試してみたいと思います。

ご回答下さった皆様ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)