作成したソースをrpmパッケージに作成したいが、特殊な環境のため位置から設定しないといけないため詰んでおります。
環境
CentOS7
root権限が使えない(sudo yumなどが使用できない)
-> このため、ネット上にあるrpmbuildコマンドなどの操作ができない状態です。
やりたいこと
テスト用に以下のCのソースを~/test配下にインストールしたい。
hello.c
C
1#include <stdio.h> 2 3int main(int argc, char *args[]) 4{ 5 printf("Hello, world!\n"); 6 return 0; 7}
すなわち以下のようなことをしたい。(あくまでrpm作成練習用なので意味はほとんどないですが...)
$ rpm -ihv xxx.rpm $~/test/hello Hello, world!
どなたか、rpmパッケージを作ったことのないド素人にわかりやすく教えてくださいませんか。
仮想CentOS環境下にrpmbuildを入れてやってみた
指摘されたように、yumが使える環境でrpmを自作してみたのですが、rpmパッケージは作成できたものの、インストールの設定がわからず何も起きなかったのでどうしたら良いかアドバイスください。
ディレクトリ構成
ユーザ:rpmbuilder
[rpmbuild実行前]
~/rpmbuild
|_SOUSES
| |_hello-.1.0.tar.gz (hello, Makefile)
|
|_SPEC
| |__sample.spec
以下設定ファイル等です。
# Makefile (hello-1.0.tar.gz内) install: @[ -d $(DESTDIR) ] || mkdir -p $(DESTDIR) @tar cf - -C dest . | tar xfp - -C $(DESTDIR) # ~/.rpmmacros %_topdir %{getenv:HOME}/rpmbuild %_tmppath %{getenv:HOME}/tmp # ~/rpmbuild/SPEC/sample.spec ### basic info Name: hello Version: 1.0 Release: 1 Summary: sample hello world program License: GPL2 ### build info Source0: %{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root ### description %description sample code ### script %prep rm -rf %{buildroot} %setup -q %build %install make DESTDIR=%{buildroot} install %files
[rpmbuild -bb sample.spec実行後]
~/rpmbuild
|_SOUSES
| |_hello-.1.0.tar.gz
|
|_SPEC
| |__sample.spec
|
|_BUILD
| |_hello-.1.0
| |_debugfiles.list
| |_debuglinks.list
| |_debugsources.list
| |_dest
| |_elfbins.list
| |_hello
| |_Makefile
|_BUILDROOT
|_RPMS
| |_x86_64
| |_hello-1.0-1.x86_64.rpm
| |_hello-debuginfo-1.0-1.x86_64.rpm
|_SRPMS
~/tmp/rpm-tmp.0MSvL3
分かっていること
%setupまでにSOURCES以下のアーカイブを一度BUILD内で展開してビルド(今回は無し)していること
分からないこと
- BUILDROOTの意味(バカすぎて調べてもよくわからず...): 具体的には、buildrootに仮想的にインストールされるという説明があったのですが、どういうことなのかわかっていません。
- BUILDROOTの書き方がなぜ以下のような書き方なのかがわからない
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
- _tmppath
- install の箇所(一番大事なとこ)の設定方法: 今回はtar.gzを展開して~/test配下にhello(実行可能ファイル)を置きたい
一応rpm作成はエラーなくできているのですが、やりたいことが出来ていないspecファイルなのでrpm -ivh hello-1.0-1.x86_64.rpmで何も起きない状態です。指摘修正をお願いできないでしょうか?
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。