1 名前:login:Penguin [02/10/12 14:56 ID:JJtJdOQ0] rpm管理って便利だよねー。 でもたまにrpmのないプログラムに遭遇する。 そんなときどうしようと思ったらこのスレで質問しよう。 だれかつくってねーかなぁと思ったら rpmfind.net/ しかたねー作るかとおもったら www.linux.or.jp/JF/JFdocs/RPM-BUILD-HOWTO.html www.linux.or.jp/JF/JFdocs/RPM-HOWTO.html www.vinelinux.org/MakingRPM/
166 名前:login:Penguin mailto:sage [04/07/07 03:17 ID:FfF3H9jC] >>165 Fedora Core 2 の postgresql-7.4.2 なら、SPEC ファイルの 修正なしで Redhat 9 で RPM を作ることができました。 こちらでまず試してみてはどうですか?
167 名前:login:Penguin [04/07/07 03:53 ID:9lTBkyff] >>166 今試してたんだけど、なぜかtcl-develとe2fsprogs-develが無いとダメってエラーが(;´Д`) %{!?tcldevel:%define tcldevel 1} → %{!?tcldevel:%define tcldevel 0} %{!?kerbdir:%define kerbdir /usr} → %{!?kerbdir:%define kerbdir /usr/kerberos} に修正して再試行中。。 %{?build89:%define kerbdir /usr/kerberos}となってるんだけど、正常に認識してないっぽい(;´Д`) 修正無しの状態だと、 + gcc -O2 -g -pipe -march=i386 -mcpu=i686 -I/usr/include/et -fpic -shared -o _pgmodule.so -I/usr/incl ude/python2.2 -I../src/interfaces/libpq -I../src/include -I/usr/include -L../src/interfaces/libpq -lp q pgmodule.c In file included from /usr/include/openssl/ssl.h:179, from ../src/interfaces/libpq/libpq-fe.h:33, from pgmodule.c:31: /usr/include/openssl/kssl.h:72:18: krb5.h: No such file or directory みたいなエラーになるし・・
168 名前:167 [04/07/07 04:06 ID:9lTBkyff] 訂正 先頭に %define build9 1 を追加して、 %{?build8:%define tcldevel 0} → %{?build89:%define tcldevel 0} にして再試行中(;´Д`)
169 名前:167 [04/07/07 04:22 ID:9lTBkyff] なんか知らないけど、うまくいきました。 ありがとうございましたm(_ _)m
170 名前:login:Penguin mailto:sage [04/07/10 03:17 ID:/SaxF3E8] %exclude っていうのを使うと、どういう利点があるですか? エライ人、教えてつかーさい。
171 名前:login:Penguin mailto:sage [04/07/10 04:50 ID:Kc8CkSdp] >>170 詳しく知らんが excludeつーくらいだからそれを除く、ってことじゃないの? %file /2ch/* %exclude /2ch/uma- みたいに使うのかな? ちゃんと知らないので適当に答えてみた
172 名前:login:Penguin mailto:sage [04/07/16 11:56 ID:25I0vw3T] >>170 ,171 %exclude マクロが定義されていなかったので、それを除くとして作りなおした事がある。 > %file /2ch/* > %exclude /2ch/uma- を %file /2ch/* で、すませると支障があるときに使う。 このような場合、%exclude マクロがないバージョンでのrpmに対応させるためには、 必要なものを全部書くか、 %install セクションで少し工夫しなければならないが、 %excludeマクロをうまく使うと、可視性が良くなって、わかりやすくなる。
173 名前:login:Penguin mailto:sage [04/07/21 17:35 ID:1y9jngOg] >>145 s/RedHat Package Manager/RPM Package Manager/ # 少なくとも今は。
174 名前:login:Penguin [04/08/16 15:27 ID:icY8qRIB] specファイルのSourceやPatchのURLからファイルをダウンロードする ようなツールはありませんか? rpm --evalとかじゃできないっぽいので…。
175 名前:login:Penguin [04/08/16 17:37 ID:bUzmG/81] >>174 よくわからんが、そのspecを取り出したsrc.rpmの中に入っているよ。 それともspecだけを入手したの?
176 名前:login:Penguin mailto:sage [04/08/17 02:08 ID:hWPoBCyJ] nosrc.rpm の事かな?
177 名前:login:Penguin mailto:sage [04/08/17 06:38 ID:QB1SEoak] >>175-176 自作のspec数十個あって、1つ1つ開いてマクロを展開しながら ダウンロードするのが辛いので。 あと、specをそのまま他の人に渡してtarballは各自で落として もらいたいってのもあります。
178 名前:login:Penguin mailto:sage [04/08/17 06:58 ID:PR1Kzzvk] >>177 > あと、specをそのまま他の人に渡してtarballは各自で落として こっちは受けとった方の話だよね。自分ならspecもらえるだけで感謝するけど。 ダウンロードなんか大した手間じゃないし。 > 自作のspec数十個あって、1つ1つ開いてマクロを展開しながら specまで書いておいて、どしてsrc.rpm作んないの? src.rpmにしとけばtarballも一緒にしまい込めるでしょ。
179 名前:login:Penguin mailto:sage [04/08/17 13:04 ID:QB1SEoak] >>178 利用者がsubversionのリポジトリからチェックアウトして ビルドすることを想定しています。 現時点で90近いspecファイルがあるので、1つずつ手動で取ってくるのは 現実的じゃありません(全specをビルドするのが前提)。 Mononga LinuxのOmoiKondaraが一番やりたいことに近そうなので、 これについて調べてみます。 回答してくれた方、ありがとうございました。
180 名前:login:Penguin [04/09/25 09:45:36 ID:2FJYePtf] くだ質で回答を得られなかったので、こちらで聞きます。 pstoeditをソースからのインストールでは問題がないが、rpmにすると実行ファイルが共有ライブラリを読まないため 困っています。make installの際に共有ライブラリへのリンクを張り直すようなのですが、rpmの場合はどうやってパ ッケージのインストールの後にリンクを張り直したらよいか分かりません。 $ /sbin/ldconfig -p |grep libp2edrvstd.so libp2edrvstd.so.0 (libc6) => /usr/lib/pstoedit/libp2edrvstd.so.0 libp2edrvstd.so (libc6) => /usr/lib/pstoedit/libp2edrvstd.so という状態で $ /usr/bin/pstoedit -help |grep libp2edrvstd.so を実行しても何もヒットしません。しかし、rpmにパッケージングせずにソースからインストールした場合やrpmのビ ルドした場所では共有ライブラリが読み込まれます。 $ rpm/BUILD/pstoedit-3.33/src/pstoedit -help |grep libp2edrvstd.so とすると idraw: Interviews draw format (EPS) (/home/hoge/rpm/BUILD/pstoedit-3.33/src/.libs/libp2edrvstd.so) [以下略] のように期待通りに表示されます。 pm/BUILD/pstoedit-3.33/src/pstoeditを/usr/bin/pstoeditにインストールして、/usr/lib/pstoedit/libp2edrvstd.so を読み込ませるようにするにはどうすればよいのでしょうか。
181 名前:180 [04/09/25 10:12:58 ID:2FJYePtf] 続きです。環境はVine3.0です。SuSEなど他のディストリや私家版のpstoeditのspecを参照して 見ましたがこのあたりの問題は無視しているようです。そのため、対応形式がbuilt-inのみ(psf. ps, debug, dump, gs, ps2ai)になっています。
182 名前:login:Penguin mailto:sage [04/09/25 10:32:51 ID:B6vG4xvt] >>180 まずはspecの中身を晒さないと。
183 名前:180 [04/09/25 10:47:05 ID:2FJYePtf] >>182 ありがとうございます。全てを貼ると冗長なので要点だけ。 Name: pstoedit Version: 3.33 Source0: home.t-online.de/home/helga.glunz/wglunz/pstoedit/%{name}-%{version}.tar.gz Source1: home.t-online.de/home/helga.glunz/wglunz/plugins/pstoedit_linux_plugins.tgz [...] %package devel [...] %prep %setup -a 1 %build %configure %{__make} %install %makeinstall %{__mkdir_p} %{buildroot}%{_mandir}/man1 %{__install} -m 644 doc/%{name}.1 %{buildroot}%{_mandir}/man1 %{__install} -m 775 lib/pstoedit/plugins_linux.so %{buildroot}%{_libdir}/pstoedit for i in %{buildroot}%{_libdir}/*.la %{buildroot}%{_libdir}/pstoedit/*.la do cp -p $i $i~ sed s:%{buildroot}::g <$i~ >$i rm $i~ done
184 名前:180 [04/09/25 10:48:28 ID:2FJYePtf] %post /bin/grep -q /usr/lib/pstoedit /etc/ld.so.conf || \ echo /usr/lib/pstoedit >> /etc/ld.so.conf /sbin/ldconfig %postun %{__perl} -p -i -e 's|/usr/lib/pstoedit||' /etc/ld.so.conf /sbin/ldconfig %files [...] よろしくお願いします。
185 名前:login:Penguin mailto:sage [04/09/25 16:18:10 ID:KeI0AADE] >>180-181 >>183-184 > make installの際に共有ライブラリへのリンクを張り直す ってのが具体的にどんなことやってるのかを読み解いて %makeinstall ってところを書き換えて処理するんじゃない? 普通に make install やったらだめだと思う。
186 名前:180 [04/09/26 02:18:27 ID:9WttgLur] >>185 ありがと。そうなんだけど、ログから類推して /bin/sh ../libtool --mode=link g++ -g -o libp2edrvstd.la -rpath /usr/lib/pstoedit drvlwo.lo drvrib.lo drvrpl.lo drvdxf.lo drvjava.lo drvjava2.lo drvpdf.lo drvkillu.lo drvtext.lo drvsk.lo drvmpost.lo drvmma.lo drvlatex2e.lo drvpic.lo drvhpgl.lo drvtk.lo drvgnplt.lo drvtgif.lo drvfig.lo drvidraw.lo drvsampl.lo -L. libpstoedit.la とか
187 名前:180 [04/09/26 02:19:20 ID:9WttgLur] g++ -shared -nostdlib /usr/lib/gcc-lib/i386-vine-linux/3.3.2/../../../crti.o /usr/lib/gcc-lib/i386-vine-linux/3.3.2/crtbeginS.o .libs/drvlwo.o .libs/drvrib.o .libs/drvrpl.o .libs/drvdxf.o .libs/drvjava.o .libs/drvjava2.o .libs/drvpdf.o .libs/drvkillu.o .libs/drvtext.o .libs/drvsk.o .libs/drvmpost.o .libs/drvmma.o .libs/drvlatex2e.o .libs/drvpic.o .libs/drvhpgl.o .libs/drvtk.o .libs/drvgnplt.o .libs/drvtgif.o .libs/drvfig.o .libs/drvidraw.o .libs/drvsampl.o -Wl,--rpath -Wl,/usr/lib/pstoedit -L/usr/lib/gcc-lib/i386-vine-linux/3.3.2/../../.. -L/usr/lib/gcc-lib/i386-vine-linux/3.3.2 ./.libs/libpstoedit.so -lstdc++ -lm -lc -lgcc_s -lc /usr/lib/gcc-lib/i386-vine-linux/3.3.2/crtendS.o /usr/lib/gcc-lib/i386-vine-linux/3.3.2/../../../crtn.o -Wl,-soname -Wl,libp2edrvstd.so.0 -o .libs/libp2edrvstd.so.0.0.0 (cd .libs && rm -f libp2edrvstd.so.0 && ln -s libp2edrvstd.so.0.0.0 libp2edrvstd.so.0) (cd .libs && rm -f libp2edrvstd.so && ln -s libp2edrvstd.so.0.0.0 libp2edrvstd.so) これをspecに書くのではなく、もっとスマートな方法はないでしょうか。libp2edrvstd.so以外にも共有ライブラリ がたくさんあるので。。
188 名前:login:Penguin [04/09/29 05:43:46 ID:6ffuRL/D] >>181 > 続きです。環境はVine3.0です。SuSEなど他のディストリや私家版のpstoeditのspecを参照して > 見ましたがこのあたりの問題は無視しているようです。そのため、対応形式がbuilt-inのみ(psf. > ps, debug, dump, gs, ps2ai)になっています。 Fedora Core 2で自家製ビルドですが、built-in以外にも対応してるようです。 > $ /usr/bin/pstoedit -help | grep libp2edrvstd.so > ... > idraw: Interviews draw format (EPS) (/usr/lib/pstoedit/libp2edrvstd.so) > fig: .fig format for xfig (/usr/lib/pstoedit/libp2edrvstd.so) > xfig: .fig format for xfig (/usr/lib/pstoedit/libp2edrvstd.so) > ... specの中では特に何も変わったことはしてません (基本的に%configure, make, %makeinstallのみ)。 rpmでビルドした段階では、>>180 と同様にビルドディレクトリ内のライブラリを指してます。 > $ rpm/BUILD/pstoedit-3.33/src/pstoedit -help | grep libp2edrvstd.so > ... > idraw: Interviews draw format (EPS) (/home/foo/rpm/BUILD/pstoedit-3.33/src/.libs/libp2edrvstd.so) > fig: .fig format for xfig (/home/foo/rpm/BUILD/pstoedit-3.33/src/.libs/libp2edrvstd.so) > xfig: .fig format for xfig (/home/foo/rpm/BUILD/pstoedit-3.33/src/.libs/libp2edrvstd.so) > ... %makeinstallがよきに取りはからってくれるんでしょうかね?
189 名前:180 [04/09/29 12:03:46 ID:ELXbyaWE] >>188 ありがと。FC2のrpmのバージョンは幾つになっていますか? Vine3.0はrpm-4.0.5-1vl8です。
190 名前:login:Penguin mailto:sage [04/09/29 12:17:08 ID:6ffuRL/D] rpm-4.3.1-0.3(FC2のデフォルトのやつ)です。
191 名前:180 mailto:sage [04/09/29 12:24:32 ID:ELXbyaWE] >>190 ありがと。4.0 -> 4.3 の間にそんな便利な機能が付いたのかな。
192 名前:login:Penguin [04/09/29 13:00:57 ID:6ffuRL/D] 本体のインストールは、%makeinstallがmake installを実行して、 /bin/sh ../libtool --mode=install /usr/bin/install -c pstoedit /var/tmp/pstoedit-root/usr/bin/pstoedit /usr/bin/install -c .libs/pstoedit /var/tmp/pstoedit-root/usr/bin/pstoedit のように行なわれてます。ここでlibtoolがpstoeditのリンク先を書き変えて るはずですよね(よく知らないので間違ってたらごめんなさい)。
193 名前:login:Penguin mailto:sage [04/10/01 00:05:19 ID:YcbGdVOj] rpmって、4.0 -> 4.1で極端に重くなった? Vine使ってみたら軽くて驚いた。RHはいつのまにか激しく重くなってたんだな。 rpmってゆうかdb4なのかな。
194 名前:login:Penguin mailto:sage [04/10/13 02:40:29 ID:2rQAnHsu] くだ質だけどRPMってもとはRed Hat Package Managerの略だよね。 今はRPM Package Managerに名称が変更されたけどそのRPMって なに?って素朴な疑問なんだけど。 Red Hat Package Manager Package Manager?(w
195 名前:login:Penguin mailto:sage [04/10/13 06:05:11 ID:5yF3SOmC] >>194 GNU is Not Unixと同じだよ。
196 名前:login:Penguin mailto:sage [04/10/13 22:37:26 ID:nncxR37C] >>194 RPM は RPM Package Manager の略ですよ。
197 名前:login:Penguin [04/10/14 13:03:58 ID:wyCxSj6l] >>196 >>194 の質問のポイントをはずしているよ。>>195 が模範解答だと思われ。
198 名前:login:Penguin mailto:sage [04/10/14 13:04:24 ID:wyCxSj6l] あぁ、上げてしまった。
199 名前:login:Penguin mailto:sage [04/11/01 14:08:07 ID:IUJCgUG8] rpm-4.3.2 の %check ってどんなマクロですか.
200 名前:login:Penguin [04/11/02 05:16:10 ID:Jnk1h6Uo] RHL9つかってます。 netatalk 2.0.1ためしにRPMをつくってみようとおもいました。 しかし、configure: error: no acceptable C compiler found in $PATH のエラーがでてしまいます。 ちなみに、%configureは %build %configure --prefix=/usr/local --enable-redhat make です。なにか他に必要でしょうか?
201 名前:login:Penguin [04/11/02 05:16:47 ID:Jnk1h6Uo] RHL9つかってます。 netatalk 2.0.1ためしにRPMをつくってみようとおもいました。 しかし、configure: error: no acceptable C compiler found in $PATH のエラーがでてしまいます。 ちなみに、%configureは %build %configure --prefix=/usr/local --enable-redhat make です。なにか他に必要でしょうか?
202 名前:login:Penguin mailto:sage [04/11/02 06:14:40 ID:lUgrEbuh] >>200 > configure: error: no acceptable C compiler found in $PATH RPM にする以前に、そのソースはふつうに make できたのか? # PreReq とか BuildRequires とかちゃんと理解してないと # rebuild するのが面倒な rpm をつくることになる。
203 名前:login:Penguin [04/11/02 13:01:39 ID:NrO/is9i] RPMってよく、develとか分かれて配布されているけど、 個人で、RPM作るときにも分けた方がいいですか?
204 名前:login:Penguin mailto:sage [04/11/02 13:13:15 ID:yL6JWkDD] >>203 配布するのでなければ、あなたの好きにどうぞ。何ならsourceをたくさんつけて、 巨大複合rpmを作ってもよし。
205 名前:login:Penguin mailto:sage [04/11/02 21:35:01 ID:sfPkbEXf] >>201 > しかし、configure: error: no acceptable C compiler found in $PATH 書いてあるとおりじゃないの?
206 名前:login:Penguin [04/11/02 22:10:43 ID:yL6JWkDD] rpmパッケージングしていて、ちょっと奇々怪々な現象に困っているので助けて下さい。 $ rpm -ql libgdal |grep lib /usr/lib/libgdal /usr/lib/libgdal.1 /usr/lib/libgdal.1.4.0 というようにlibgdal.1を含むlibgdalがインストールされています。 $ sudo rpm -ivh ~/rpm/RPMS/i386/gdal-1.2.2-0vl2.i386.rpm エラー: 依存性の欠如: libgdal.1 は gdal-1.2.2-0vl2 に必要とされています rpm管理下でlibgdal.1はきちんとインストールされているのに、依存性のエラーが?
207 名前:login:Penguin [04/11/09 13:11:25 ID:HQ1hTsIR] mandarakeのSRPMをredhat(Fedora)でbuildしたいと思っているのですが、rpm-helperというパッケージ内のスクリプトを使うのであろうと思われる独自拡張らしき変数%pre_addusrなどのマクロを、手動でプリプロセスする手段をご存じの方いらっしゃったら教えてください。 素直にMandarakeを使えばよいのでしょうが、そうおっしゃらずにお願いします。
208 名前:207 [04/11/09 13:41:35 ID:HQ1hTsIR] mandarakeのrpmのソースみます。スレッド汚してすいませんでした。
209 名前:login:Penguin [04/11/09 13:53:02 ID:xI/oBBhC] >>207 Mandrakeだ
210 名前:login:Penguin mailto:sage [04/11/09 15:05:09 ID:djcIs5Z+] ワロタ
211 名前:207 [04/11/09 15:19:55 ID:HQ1hTsIR] >209 あれ、やっぱりそうですか。 ftp.riken.go.jp のディレクトリ名が「mandarake」だったので、「mandrake」じゃなくて「mandarake」だったのかーと思っちゃいました。rpmのソース見たら「mandrake」って書いてあったので、「ありゃ、間違えた」と思っていたところでした。
212 名前:login:Penguin [04/11/09 15:27:04 ID:xI/oBBhC] ftp://ftp.riken.go.jp/Linux/mandarake/ 本当だ。
213 名前:login:Penguin mailto:sage [04/11/09 16:02:53 ID:cqFt3Vlt] >>212 ワラタ
214 名前:login:Penguin [04/11/15 19:46:41 ID:kB9km/h9] for i in `apt-cache pkgnames`; do apt-cache show $i |grep Maintainer ;done |grep '自分のメールアドレス' | wc -l
215 名前:login:Penguin [04/11/16 18:57:30 ID:NcsYTAEO] GNU is Not Unixi s Not Unix is Not Unix is Not Unix is Not Unix is Not Unix is Not Unix is Not Unix is Not Unix is Not Unix is Not Unix is Not Unix is Not Unix is Not Unix
216 名前:login:Penguin mailto:sage [04/11/21 20:03:40 ID:VQuZ+65z] ぐぬぬぬぬぬぬぬぬぬぬぬぬぬぬ
217 名前:login:Penguin [04/12/21 01:06:40 ID:bEGcx2aB] RPMパッケージを作成しているのですが、どういうわけか eval? に依存する パッケージが出来てしまいます。 : PreReq: rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 Requires: hoge.0.1 hoge-devel.0.1 /bin/sh eval : パッケージ自体は作成されるのですが、インストールするときに eval は munya に必要とされています。 とエラーが出てインストールできません。 --nodeps で無理やりインストールすればとりあえず動くのですが… find-requires はいったい何をみて eval が必要だといっているんでしょうか? ちなみにディストリビューションは Vine-3.0 です。
218 名前:login:Penguin mailto:sage [04/12/21 01:09:57 ID:EYUAJ9FT] >>217 エスパーを募集しているのでなければ、spec をどこかにうpしる。
219 名前:login:Penguin [04/12/24 05:27:08 ID:/MCGO3p3] eval ってbashの組込みコマンドなんじゃないの? 入ってるのがあたりまえだと思うんですけど
220 名前:login:Penguin [05/01/04 09:54:50 ID:QgcDWuhd] Requires, Prereq, BuildRequires, BuildPrereqなどでのバージョン指定の根拠となる情報って、どこを探せばいいのでしょうか? specファイルでバージョンが指定されているから(場合によっては)エラーが出るわけですが、 ではなぜそのバージョン(以降)でなければならないのか、といった情報はソース等のどこで確認すればよいのだろうかと。
221 名前:login:Penguin mailto:sage [05/01/04 10:11:05 ID:ZQ6Tj3Xp] >>220 経験と勘。似非職人の世界でし。 ソフトによるけど、(ある機能のサポートを外してもいいのであれば) 外してみてもいいんじゃないかと思う。
222 名前:login:Penguin mailto:sage [05/01/05 09:24:04 ID:18TK9aow] >>220 README や INSTALL, configure を読む。
223 名前:login:Penguin mailto:sage [05/01/05 09:24:40 ID:LBpiq6Ef] configure より configure.{in,ac} じゃねーか?
224 名前:login:Penguin mailto:sage [05/01/28 16:36:50 ID:hLcnqyW0] いままでrpm-modeと思って使っていたもの(Shell 何とか[rpm])は、rpm-modeではな かったようだ。本物のrpm-modeを入れたら強烈にラクチンだった。今までの俺って orz
225 名前:login:Penguin mailto:sage [05/02/03 21:48:28 ID:VhVxZiHg] >>217 実行属性のついたシェルスクリプト。
226 名前:login:Penguin [05/02/10 09:28:36 ID:UHvPf+P5] すみません。ちょっと教えてください。 RPMデータのみあったとして、そのspecファイルの内容を見ることはできるのでしょうか? できないとは思うんですけど…もしかしてできたりします?
227 名前:login:Penguin mailto:sage [05/02/10 09:52:51 ID:3A0OW5wm] >>226 普通はSRPMでないRPMにSPECファイルは入れないので、出来ない。
228 名前:login:Penguin mailto:sage [05/02/10 09:56:24 ID:tLOdBQ4i] SRPMならrpm -iでspecとソース一式が%_topdir以下に入る。 後は好きなように弄り回してrpmbuildでも何でも出来る。 binaryのRPMはspecの中身を見ることはできないけど、 rpm -qp --scripts momimomi.rpm で、インストール、アンインストール時に実行するスクリプトは表示できる。
229 名前:login:Penguin mailto:sage [05/02/10 10:02:36 ID:UHvPf+P5] >>227-228 ですよね。そのシステム環境に適合するRPMデータがあったとしても、 specファイルを確認したい、場合によってはリビルドして入れたいということがあると思うのですが、 やはりSRPMデータなくしてspecファイルの内容は確認できませんよね。 ありがとうございました。
230 名前:login:Penguin mailto:sage [05/02/10 19:52:20 ID:jGutS7SU] >>229 いや、ある程度はできる ttp://www.barabanov.ru/proj/rpm2spec ただし、日付に日本語が入ってしまうので、 # LANG=C rpm2spec hgoehoge.rpm > hogehoge.spec とすること
231 名前:login:Penguin mailto:sage [05/03/14 01:09:40 ID:WwdKdJuJ] src.rpm なファイルを展開したい時、どうやるのが手っ取り早いでしょ う? 私は、こんな↓感じでやっているのですが、もっとすっきりした方法は ないものでしょうか? $ cd /tmp $ mkdir BUILD SOURCES SPECS $ rpm --define "_topdir `pwd`" -i ${pkgfile} $ rpmbuild --define "_topdir `pwd`" --nodeps -bp SPECS/*.spec || rpmbuild --define "_topdir `pwd`" --nodeps --target=i686 -bp SPECS/*.spec
232 名前:login:Penguin mailto:sage [05/03/14 02:34:55 ID:f4OaHYK/] >>231 ホームディレクトリに"rpm"とか"redhat"とか適当な名前のtopdirを作ってお いて、その下にBUILD RPMS SOURCES SRPMS SPECSを作っておきます。(これら のディレクトリはしょっちゅう使うので、作っておいたまま消さない) ~/.rpmmacrosには %_topdir /home/foo/rpm %_tmppath /var/tmp %_rpmtopdir %{_topdir}/%{name} と書いておきます。こうしておくと $ rpmbuild -i bar.src.rpm だけで、specは/home/foo/rpm/SPECに、ソースファイルは/home/foo/rpm/SOURCES に展開されます。
233 名前:login:Penguin mailto:sage [05/03/14 05:45:27 ID:bsFYPQWA] >>231-232 他のディストリでちゃんと動くか知らないけど、 Vine の vutils って rpm に mkrpmdir ってスクリプトがあります。 mkrpmdir ~ とやると、 %_topdir と %packager を ~/.rpmmacros に書き込んで、 ~/rpm/BUILD ~/rpm/SOURCES ~/rpm/SPECS ~/rpm/SRPMS ~/rpm/RPMS/noarch ~/rpm/RPMS/i386 ~/rpm/RPMS/i586 ~/rpm/RPMS/i686 を作ってくれます。 簡単に ~/rpm 以下のディレクトリを作れるので、けっこう便利です。 ビルド時の --target=i686 の指定も、~/.rpmmacros になんか設定書いておけば 省略出来そうな気がするけど、分かりません。
234 名前:login:Penguin mailto:age [05/03/16 12:37:34 ID:zQujFZYD] age
235 名前:login:Penguin mailto:sage [05/03/16 19:42:44 ID:WEPzJzA3] httpd-2.0.53.tar.gz をインストールするのに必要だと言われたため、 apr-1.1.0.tar.gz を落としてきて、 $rpmbuild -ta apr-1.1.0.tar.gz で rpm を作成しようと思ったんですが、 RPM build errors: Bad exit status from /var/tmp/rpm-tmp.8821 (%build) と言われてしまいます。 この /var/tmp/rpm-tmp.8821 っての、 勝手に削除しちゃってもいいんでしょうか?
236 名前:login:Penguin mailto:sage [05/03/16 20:42:06 ID:xcO5JQtk] >235 spec ファイルをデバッグしないなら、消して構わない。
237 名前:235 mailto:sage [05/03/16 20:58:19 ID:WEPzJzA3] >>236 ありがとうございます。 一旦削除してからもう一度やってみましたが、やはり /var/tmp/rpm-tmp.17575: line 54: fg: no job control error: Bad exit status from /var/tmp/rpm-tmp.17575 (%build) RPM build errors: Bad exit status from /var/tmp/rpm-tmp.17575 (%build) と言われてしまいました。 該当のテンポラリファイル /var/tmp/rpm-tmp.17575 の54行目には、 %check としか書き込まれていません。 spec ファイルのデバッグ、というのはどのようにすればいいのでしょうか? やはりこのへん↓ www.google.co.jp/search?q=rpm+spec+%E3%83%87%E3%83%90%E3%83%83%E3%82%B0&start=0&start=0&hl=ja&lr=lang_ja&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:ja-JP:official から勉強しないといけませんね。
238 名前:login:Penguin mailto:sage [05/03/16 23:58:57 ID:V9z55zlo] >>237 >spec ファイルのデバッグ、というのはどのようにすればいいのでしょうか? httpd-2.0.53.tar.gz から httpd.spec を取り出して ~/rpm/SPEC において、 httpd-2.0.53.tar.gz を ~/rpm/SOURCES において、 spec ファイルから build する。 --short-circuit とか使いながら -bc とか -bi とか順にやっていって、 引っかかったら spec を直すと。 > /var/tmp/rpm-tmp.17575: line 54: fg: no job control > error: Bad exit status from /var/tmp/rpm-tmp.17575 (%build) とりあえず、%build でエラーになってるみたいだから、 rpmbuild -bc httpd.spec 2>&1 | tee bp.log とかやってみればいいかと。 もうちょっと前になんかもっと大事なエラーメッセージが出てそうな気もするけど。 使ってるディストリビューションで用意されてるパッケージの spec も見たほうがいいと思う。 ttp://www.linux.or.jp/JM/html/rpm/man8/rpmbuild.8.html --showrc とか でマクロがどうなってるチェックするのとかも必要かも。
239 名前:235 mailto:sage [05/03/17 02:20:42 ID:gC8u5PES] >>238 丁寧にありがとうございます。 すみませんが、明日というか今日の早朝から数日間家を空けるので、 再開は週明けからになると思います。 戻って来たらアドバイスいただいたことを試してみたいと思います。
240 名前:login:Penguin mailto:sage [05/03/17 17:53:11 ID:MYoA17yN] rpm自体のバージョンが古くて%check非対応とかの予感。
241 名前:login:Penguin mailto:sage [05/03/18 12:19:57 ID:x5kfc3Qj] >>231 rpm2cpio hoge.src.rpm | cpio -idm
242 名前:235 mailto:sage [05/03/20 09:10:36 ID:7RtkTiX5] >>240 $ rpm -qa | grep rpm rpm-build-4.1-1.06 rpmdb-redhat-8.0-0.20020910 rpmlint-0.60-0.fdr.1.rh80 rpm-python-4.1-1.06 rpm-4.1-1.06 redhat-rpm-config-8.0-1 rpm-devel-4.1-1.06 rpm404-python-4.0.4-8x.27 librpm404-4.0.4-8x.27 librpm404-devel-4.0.4-8x.27 rpm2html-1.7-8 古すぎますかね?
243 名前:240 mailto:sage [05/03/20 13:26:29 ID:0berZzSr] 4.1 -> 4.2: - add %check scriptlet to run after %install (#64137). ということで、%checkは4.2以降の機能。
244 名前:235 mailto:sage [2005/03/21(月) 21:29:58 ID:NVWhmt+W] >>243 ありがとうございます。 なるほど。 こちらの使っている環境は Redhat8 なんですが、 download.fedora.us/fedora/redhat/8.0/i386/RPMS.os/ にある rpm は、 >>242 で書いたように rpm-4.1-1.06 で打ち止めのようです。 download.fedora.us/fedora/redhat/9/i386/RPMS.os/ にある Redhat9 用の rpm-4.2-0.69 あたりを 強引に突っ込んでも問題出ないんでしょうかねぇ、、、
245 名前:login:Penguin mailto:sage [皇紀2665/04/01(金) 22:13:55 ID:jmD04yJB] >>235 他のプログラムをrpm化するときに、同じようなtmp〜のようなエラーが出ていた。 rpm化は諦めて、手動インストールしようとドキュメントを読んでいたら、他のrpmが必要だということで、 そのrpm(openssl-devel-0.9.7a-33.12.i386.rpm他)をインストールして、手動インストールしてみた。 で、その直後にもう一度rpm化を試したら今度は通った!! だから、そのtmp〜っていうエラーは依存関係の問題かもしれないので、 よくドキュメントを読んでみては?
246 名前:login:Penguin mailto:sage [2005/06/26(日) 00:24:36 ID:/USjl/Oi] php-4.3.9-3.6.src.rpm のspecを利用してphp-4.3.11.tar.gzを インストールしようと思います。 rpm -i php-4.3.9-3.6.src.rpm SOURCE/ へ php-4.3.11.tar.gz を移動 php.spec のバージョンの書き換え php.spec のpatchの無効化 rpmbuild -ba php.spec 上記でrpmのビルドを行いましたが、ビルドでエラーになります。 patch を無効化したことがまずいのでしょうか
247 名前:login:Penguin mailto:sage [2005/06/26(日) 01:20:11 ID:eav5hmc+] >>246 >ビルドでエラーになります。 ただ今エスパー氏は不在。
248 名前:246 mailto:sage [2005/06/26(日) 01:49:03 ID:/USjl/Oi] php-4.3.9-3.6.src.rpm の patch は php-4.3.11.tar.gz に適用できないんでしょうか。
249 名前:login:Penguin mailto:sage [2005/06/26(日) 02:27:42 ID:ZWBgDAYC] >>248 そもそもphp-4.3.11のmakeは通るの? そこでコケるのならくだ質とか使ってるディストリのスレで訊いたほうがいい。 つか、php-4.3.11のsrpmならググれば結構引っかかるけどな… それを自環境に合わせて修正するのじゃダメなのか
250 名前:login:Penguin mailto:sage [2005/06/26(日) 02:56:15 ID:eav5hmc+] >>248 まず「php-4.3.9-3.6.src.rpm」といってもモノはひとつではない。 patchといっても1つじゃなくて20個ぐらいあるだろ? 全部はphp-4.3.11.tar.gzには当たらない というかphp-4.3.11では既に不要なpatchがいっぱいある筈。
251 名前:login:Penguin mailto:sage [2005/06/26(日) 02:57:56 ID:eav5hmc+] あと>>247 の意味を理解して欲しいのだが。
252 名前:login:Penguin mailto:sage [2005/06/26(日) 15:12:45 ID:+cLoHgEN] すみません。 Centos4をつかってます。 rpm.pbone.net/ で探しましたが、php-4.3.11のCentパッケージは ありませんでした。 php-4.3.11.tar.gzをmakeしては通ります。しかしspecと手動makeでは ./configureの指定がだいぶ異なります。 Centのspecではbuild()と関数化して行っているようです。 いままでmake か checkinstallを使用してインストールを 行っていたのですが、インストール先をredhatにあわせたほうが良いので rpmに挑戦したのです。 エラー内容ですが、 creating reloadable object files... creating a temporary reloadable object file: ext/domxml/.libs/ext/domxml/domxml.la-1.o /usr/bin/ld: cannot open output file ext/domxml/.libs/ext/domxml/domxml.la-1.o: No such file or directory make: *** [ext/domxml/domxml.la] エラー 1 domxml.la-1.oは作られていないようなんです。
253 名前:login:Penguin mailto:sage [2005/06/26(日) 16:02:02 ID:JD/WWY4F] >>252 fedoraのじゃダメかね php-4.3.11 ttp://download.fedora.redhat.com/pub/fedora/linux/core/updates/3/SRPMS/
254 名前:login:Penguin mailto:sage [2005/06/26(日) 17:46:23 ID:+cLoHgEN] >>253 ためしに、fedora3をダウンロードしてspecを確認しました。 そしたら、RHEL(Centos)と違う部分がありました (たとえば下) PEARのパッケージです。 Source20: pear.php.net/get/DB-1.7.5.tgz Source21: pear.php.net/get/HTTP-1.3.5.tgz Source22: pear.php.net/get/Mail-1.1.4.tgz Source23: pear.php.net/get/XML_Parser-1.2.6.tgz Source24: pear.php.net/get/Net_Socket-1.0.6.tgz Source25: pear.php.net/get/Net_SMTP-1.2.6.tgz また、素朴な疑問です。 php-4.3.11 は普通のmake & installできますが なぜspecでは php-4.2.2-lib64.patch こんなに古いパッチを当てるのでしょうか。 このような指定が数箇所あります。 いまビルド中です。
255 名前:login:Penguin mailto:sage [2005/06/26(日) 19:58:24 ID:JD/WWY4F] PHPのことはくだ質かCentスレで。 要らないパッケージの部分はコメントアウトすればいいんでない? %files <パッケージ名> のセクションを見れば、そのパッケージの構成が分かるから、 そこを見ながら%setup〜%installから要らない部分を削っていく。 ファイルの配置は rpmbuild -bi でbuildroot以下に仮インストールできるから、 それでconfigure のオプションや make install に渡す環境変数を調整していく。 ビルドし直すまでもない修正のときは--nobuiidを付ける。 俺の場合はこんな感じで作業してるけど。
256 名前:login:Penguin [2005/08/15(月) 09:44:17 ID:Dh2nyB7V] php-4.3.11のrpmを作成したくspecファイルについてお聞きしたいのですが、 php-imapパッケージが生成されずに困っています。 行頭には以下の記述があるのですが、どうも with_imapが0に設定されているようなのです。 %define contentdir /var/www %define with_oci8 %{?_with_oci8:1}%{!?_with_oci8:0} %define with_mssql %{?_with_mssql:1}%{!?_with_mssql:0} %define with_mhash %{?_with_mhash:1}%{!?_with_mhash:0} %define with_imap %{?_with_imap:1}%{!?_with_imap:0} この部分がマクロであることは分かるのですが、_with_imapがどのように判断されて1か0かに 設定されているのかがよく分かりません。 勝手に1に設定しちゃってもいいものなんでしょうか? お分かりになる方がいらっしゃればよろしくお願いします。 ちなみにimap関係のパッケージは以下のものが既にインストールされています。 imap-2001a-10 imap-devel-2001a-10
257 名前:login:Penguin mailto:sage [2005/08/15(月) 11:02:42 ID:Dh2nyB7V] 自己レスです。 rpmbuild --define "_with_imap 1" で作成できました。 お騒がせしました。
258 名前:login:Penguin [2005/08/15(月) 21:37:10 ID:xQpAXLUC] ただリビルドするだけの時に--defineを使うのは正しいのか? rpmbuildのヘルプにあるのは--with=とか--without=だけど。 まあ俺はwithoutじゃなくてspec書き換えてるけど…
259 名前: ◆/UXtw/S..2 mailto:sage [2005/08/16(火) 15:47:59 ID:Vn0puH61] >>258 rpmbuild のヘルプをちゃんと読んだか? Options implemented via popt alias/exec: --dbpath=DIRECTORY use database in DIRECTORY --with=<option> enable configure <option> for build --without=<option> disable configure <option> for build popt による alias と書いてあるだろ。正しいも正しくないも、 やってることは一緒なわけだが。popt が分からなかったら、 とりあえず /usr/lib/rpm/rpmpopt-<rpmのバージョン> でも読んでおけ。
260 名前:login:Penguin [2005/10/21(金) 15:09:28 ID:ugQ65p6N] yoper linuxのサイトにspecのひながたとrpmbuildの スクリプトがある。これはすごい簡単。suseで インストールのディレクトリを/usr/src/package/RPMS/i686 に指定してまとめてインスコできるか試してます
261 名前:login:Penguin mailto:sage [2006/06/11(日) 22:38:14 ID:cW+uyL68] %prep %setup %patch を飛ばして %build からテストしたいのですが、可能ですか?
262 名前:login:Penguin mailto:sage [2006/06/11(日) 22:42:16 ID:UdaIvYnC] short-circuit
263 名前:login:Penguin [2006/07/06(木) 03:11:44 ID:sbcTXFsT] www.linux.or.jp/JF/JFdocs/RPM-HOWTO-6.html
264 名前:login:Penguin mailto:sage [2006/07/06(木) 07:53:46 ID:jwQED/TG] 誰か CentOS4.3 用 Apache2.2 系の RPM 作成をお願いしまーす。
265 名前:login:Penguin mailto:sage [2006/07/06(木) 15:25:43 ID:5XYo67aq] >>264 バーカ
266 名前:login:Penguin mailto:sage [2006/12/12(火) 18:31:21 ID:lKiUJVj/] rpmでパッケージできるSourceの最大サイズはどこかに書いてある? 電子辞書データを自分専用にrpm化しておきたいのだけど、2GBまでなら大丈夫かな?