|
To generate an rpm for the eos,is required fundamental changes in directory structure. The parameters for changing the structure can be obtained through the configure file, contained in the source of most packages. Example: Creating RPM for Mysql 1. Download the source from the site. Download the package, unzip it and execute it. /configure –help Something similar to the example below: Fine tuning of the installation directories: –bindir=DIR user executables [EPREFIX/bin] –sbindir=DIR system admin executables [EPREFIX/sbin] –libexecdir=DIR program executables [EPREFIX/libexec] –datadir=DIR read-only architecture-independent data [PREFIX/share] –sysconfdir=DIR read-only single-machine data [PREFIX/etc] –localstatedir=DIR modifiable single-machine data [PREFIX/var] –libdir=DIR object code libraries [EPREFIX/lib] –includedir=DIR C header files [PREFIX/include] –infodir=DIR info documentation [PREFIX/info] –mandir=DIR man documentation [PREFIX/man] These options will be used to change the installing directories to EOS standard: –prefix=/opt/addons/mysql –bindir=/opt/addons/bin/ –sbindir=/opt/addons/sbin –libexecdir=/opt/addons/mysql/libexec/ –datadir=/opt/addons/mysql/share –sysconfdir=/opt/addons/mysql/etc –localstatedir=/opt/addons/mysql/var –libdir=/opt/addons/lib –includedir=/opt/addons/include –infodir=/opt/addons/info –mandir=/opt/addons/man 2 – Inside your RPM structure you will place the zipped package inside directory SOURCE/ 3- Create file .spec Example of SPEC file of mysql: Name: mysql Summary: The MySQL Server Version: 5.0.67 Release: 1 Source0: %{name}-%{version}.tar.gz Group: Addons URL: http://www.mysql.com BuildRoot: %{_tmppath}/%{name}-buildroot Packager: Felipe Santos <
This e-mail address is being protected from spambots. You need JavaScript enabled to view it
> License: GPL %package client Summary: MySQL client Group: Addons %package docs Requires: %{name} = %{version}-%{release} Summary:Documentation of MySQL Group: Addons/Docs %package devel Requires: %{name} = %{version}-%{release} Summary: Headers of MySQL Group: Addons/Devel
%description The MySQL server %description client The MySQL Client
%description docs Documentation of the MySQL Server
%description devel The MySQL headers and build for development including original config files %prep %setup -q mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d/ mkdir -p $RPM_BUILD_ROOT/etc/{logrotate.d,sysconfig} %build ./configure \ –prefix=/opt/addons/mysql \ –localstatedir=/opt/addons/mysql/var/ \ –bindir=/opt/addons/bin \ –sbindir=/opt/addons/sbin \ –libdir=/opt/addons/lib \ –mandir=/opt/addons/man \ –infodir=/opt/addons/info \ –includedir=/opt/addons/include \ –libexecdir=/opt/addons/sbin \ make %install make DESTDIR=$RPM_BUILD_ROOT install mkdir -p $RPM_BUILD_ROOT%{_mysqldir}/etc/ mkdir -p $RPM_BUILD_ROOT%{_mysqldir}/var/logs/
%clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) %exclude /opt/addons/include %exclude /opt/addons/man %exclude /opt/addons/info %exclude /opt/addons/mysql %exclude /opt/addons/bin/msql2mysql %exclude /opt/addons/bin/mysql %exclude /opt/addons/bin/mysql_find_rows %exclude /opt/addons/bin/mysql_tableinfo %exclude /opt/addons/bin/mysql_waitpid %exclude /opt/addons/bin/mysqlaccess %exclude /opt/addons/bin/mysqladmin %exclude /opt/addons/bin/mysqlbinlog %exclude /opt/addons/bin/mysqlcheck %exclude /opt/addons/bin/mysqldump %exclude /opt/addons/bin/mysqlimport %exclude /opt/addons/bin/mysqlshow %exclude /opt/addons/lib/mysql %config(noreplace,missingok) /opt/addons/mysql/etc/my.cnf %config(noreplace,missingok) /etc/sysconfig/mysql %config(noreplace,missingok) /etc/logrotate.d/mysql /* %files client %defattr(755,root,root,-) /opt/addons/bin/msql2mysql /opt/addons/bin/mysql /opt/addons/bin/mysql_find_rows /opt/addons/bin/mysql_tableinfo /opt/addons/bin/mysql_waitpid /opt/addons/bin/mysqlaccess /opt/addons/bin/mysqladmin /opt/addons/bin/mysqlbinlog /opt/addons/bin/mysqlcheck /opt/addons/binmysqldump /opt/addons/bin/mysqlimport /opt/addons/bin/mysqlshow /opt/addons/lib/mysql %files docs %defattr(-,root,root,-) /opt/addons/man /opt/addons/info
%files devel %defattr(-,root,root,-) /opt/addons/include /opt/addons/mysql
%post groupadd mysql -g 47 2> /dev/null useradd -c "MySQL Server" -u 47 -s /sbin/nologin -g mysql -d /opt/addons/var/mysql mysql 2> /dev/null chown mysql:mysql /opt/addons/mysql/var if [ ! -d /var/log/mysql ];then mkdir /var/log/mysql fi if [ -d /opt/addons/var/logs ];then rm -rf /opt/addons/var/logs fi chown mysql:mysql /var/log/mysql if [ ! -d /opt/addons/var ];then mkdir /opt/addons/var chown mysql:mysql /opt/addons/var fi
%postun userdel mysql 2> /dev/null %changelog * Mon Aug 18 2008 Felipe Santos <
This e-mail address is being protected from spambots. You need JavaScript enabled to view it
> - Spec created This is only an example to show how to change the directory structure inside an SPEC, in this case of mysql. Other options can be set on ./configure to add or remove resources in mysql. 4 – After creating Spec and downloading source, execute the command: #rpmbuild -ba SPECS/mysql.spec
|