Enquanto os pacotes deb são criados com os binários, o pacote RPM é criado com o código fonte. Na própria execução do comando o código é compilado. Este código tem q estar compactado em tar.bz2
Primeiro, temos que ter instalado o "rpmbuild", segue a linha
urpmi rpm-build
Como no caso do deb, temos que criar um arquivo de configurações, mas para o rpm ele é um pouco mais complexo. O nome dele deve ser terminado com .spec. Chamei o meu de calcula.spec
#
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# norootforbuild
Name: libcalcula
Summary: Ferramenta para calcular alguns numeros
Version: 1.0.2
Release: 0
License: GPL
Group: Calc
Url: http://slothsalvation.blogger.com.br
Vendor: Luiz
Packager: Luiz
#PreReq:
#Provides:
#BuildRequires:
Source: %{name}-%{version}.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
AutoReqProv: on
%description
Ferramenta para calcular alguns numeros
%prep
%setup
%build
#%make
make -j `/usr/bin/getconf _NPROCESSORS_ONLN`
%install
#makeinstall
make install DESTDIR=%{buildroot}
%clean
#rm -rf %{buildroot}
#rm -rf $RPM_BUILD_ROOT
%post
%postun
%files
%defattr(-,root,root)
#doc ChangeLog README COPYING
#binaries
%{_libdir}/%{name}.so*
%{_libdir}/%{name}.a
%{_libdir}/%{name}.la
%changelog
#* Fri Jan 14 2011 luiz@machine
Aqui fiz uso de algumas macros para caso eu mude algo, não precisar mudar em todo o arquivo, além de ficar mais fácil de entender que nome vai aonde.Como pode ser visto na Linha do Source, usei o nome do tar como %{name}-%{version}.tar.bz2, que no meu caso seria libcalcula-1.0.2.tar.bz2.
Algo que se deve destacar é com relacao ao comando make, usei "make -j `/usr/bin/getconf _NPROCESSORS_ONLN`" para que seja feita uma busca do número de processadores na máquina, e utilizar todos na compilação.
Agora temos que criar uma estrutura onde os arquivos serão compilados, vou criar eles na pasta temp.
O próprio rpm tem algumas funcionalidades que podemos usar, como no caso esta linha, ela me retorna o caminho do source que o rpm vai usar
export SOURCEDIR=$(rpm --define "_topdir %{_tmppath}/libcalcula" --eval %{_sourcedir})Agora podemos criar a estrutura de pastas.
mkdir -p $SOURCEDIR mkdir -p $SOURCEDIR/../SPECS mkdir -p $SOURCEDIR/../BUILD mkdir -p $SOURCEDIR/../BUILDROOT mkdir -p $SOURCEDIR/../RPMS/i586Devemos entao copiar o arquivo spec para dentro da pasta SPECS
cp calcula.spec $SOURCEDIR/../SPECS
Agora usamos o comando rpmbuild dessa maneira para que ele compile e crie o pacote
rpmbuild --define "_topdir %{_tmppath}/libcalcula" -bb $SOURCEDIR/../SPECS/calcula.specCom isso temos o pacote compilado e pronto dentro da pasta
ls $SOURCEDIR/../RPMS/i586
Nenhum comentário:
Postar um comentário