Why are my binary files going into the bin/ folder

Greg_Swift at aotx.uscourts.gov Greg_Swift at aotx.uscourts.gov
Thu Jan 8 21:30:55 UTC 2009

> However, when I install the rpm on the destination computer the
> binaries are put in the /bin/ folder
> Why aren’t they going into the /opt/ folder like I wanted?

effectively, because you aren't putting them in /opt, you are putting them
in %{buildroot}/bin.  Once the build is done and the package is
distributed, the %{buildroot} part goes away, and you are left with /bin.

I've posted some helpful packaging links in the past, and I'm sure many
others have as well if you'd like a better understanding.

As for the test of it:

> Summary: XXXX Trading Platform
> %define version 0.0.2

you can just define the version with the Version: entry below, this is

> Name: XXXX
> Version: %{version}
> Release: 0
> Copyright: commercial
> Group: Applications/Financial
a common way of doing Source: is %{name}-%{version}.tar  It can save you
changes when you update versions later.
> Source: XXXX-0.0.2.tar
> #BuildRoot: /home/pkrauss/tempoutput/%{name}
> BuildRoot: /opt/%{name}
> %description
> XXXX Trading Platform
> %prep
> %setup -q
> %build
> %install

#so if you want the below to exist in  /opt/%{name} when installed
implement like this (also you should clean up the directory #before you
start install, and in the %clean section):

#Clean the build root
# make your desired directory structure, the -p creates each level, the
last bit creates all three subdirectories
# you can do them each on their own if you'd really like
mkdir -p $RPM_BUILD_ROOT/opt/%{name}/{bin,scripts,conf}
cp ./binary1 $RPM_BUILD_ROOT/opt/%{name}/bin
cp ./binary2 $RPM_BUILD_ROOT/opt/%{name}/bin
cp ./config1.xml $RPM_BUILD_ROOT/opt/%{name}/conf
cp ./library1.so $RPM_BUILD_ROOT/opt/%{name}/bin

> [ -d $RPM_BUILD_ROOT ] || mkdir $RPM_BUILD_ROOT
> [ -d $RPM_BUILD_ROOT/bin ] || mkdir $RPM_BUILD_ROOT/bin
> [ -d $RPM_BUILD_ROOT/scripts ] || mkdir $RPM_BUILD_ROOT/scripts
> [ -d $RPM_BUILD_ROOT/conf ] || mkdir $RPM_BUILD_ROOT/conf
> cp ./binary1 $RPM_BUILD_ROOT/bin
> cp ./binary2 $RPM_BUILD_ROOT/bin
> cp ./config1.xml $RPM_BUILD_ROOT/conf
> cp ./library1.so $RPM_BUILD_ROOT/bin
> %clean
#like i said before, you should cleanup here:
> %files
#you'll want to list the fill path here:

> /bin/binary1
> /bin/binary2
> /conf/config.xml
> /bin/library1.so



More information about the Rpm-list mailing list