| RPM Oluşturmak | ||
|---|---|---|
| Tarball'dan RPM - gerbv | Mandrake İçin RPM Oluşturmak | Diğer Yöntemler |
RPM Oluşturmak - 050112
![]()
Tanju Taşçılar - tanju@elektronist.com
Registered Linux User #283274
Tarball'dan RPM - muhasebeci
RPM oluşturmak için ele alacağımız sıradaki program bizden biri, muhasebeci. Hızla gelişimini sürdüren muhasebeci programı ülkemizde Linux kullanımının yaygınlaşmasında büyük öneme sahip. Muhasebeci geliştirme ekibine başarılar dileriz. Bu programdan RPM oluşturma sırasında karşılaşacağımız sorunlar ve eksiklikler programın gelişmesinin tamamlanmamış olmasından kaynaklanıyor.
Kullanacağımız paket muhasebeci-0.5-YTL.tar.gz. Bu paketi açıyoruz. Açtığımız tar.gz dosyasına kaynaktan kurulum işlemini uygulamaya başladığımızda automake ile ilgili dosyaların link'ler olarak kaldığını görüyoruz. (sonu @ olan dosyalar)
[tanju@gezgin muhasebeci-0.5-YTL]$ ls ABOUT-NLS* config.status* Makefile news* acconfig.h* config.sub* Makefile.am* NEWS acinclude.m4* configure* Makefile.in pixmaps/ aclocal.m4* configure.in* missing@ po/ authors* COPYING@ mkinstalldirs* readme* AUTHORS data/ muhasebeci.desktop README autogen.sh* depcomp@ muhasebeci.desktop.in* setup-gettext* autom4te.cache/ INSTALL@ muhasebeci.glade SQLChangeLog cachegrind.cmd* install* muhasebeci.gladep src/ ChangeLog* install-sh@ muhasebeci.prj stamp-h1 compile@ intl/ muhasebeci.pws* stamp-h.in* config.guess* libtool* muhasebeci.rapor todo* config.h ltmain.sh muhasebeci.spec* TODO config.h.in m4/ muhasebeci.spec.in* config.log macros/ muhasebeci.sql* |
Bu durumda eğer sisteminizde ilgili sürüm yoksa ./configure adımını bile geçemezsiniz. RPM oluşturacağımız sistemde olan automake-1.8 sürümünün dosyalarını bu linklerin üzerine kopyalayarak sabit hale gelmelerini sağlıyoruz. Bunun dışında bir gariplik daha var ama bu bizim işimizi engellemiyor. Paketi açtığımız yerde muhasebeci-0.5-YTL dizini oluşuyor ama ayrıca bir de mkinstalldirs dosyası da açılan paketten çıkıyor.
[tanju@gezgin muhasebeci]$ ls mkinstalldirs* muhasebeci-0.5-YTL/ muhasebeci-0.5-YTL.tar.gz |
Ayrıca authors, install, news, readme, todo adlı dosyalar hem büyük hem de küçük harfler ile bulunuyor. Bunların küçük harfle olanlarını siliyoruz.
Açtığımız dizinin ismini karşılaştırma için muhasebeci-0.5.5 olarak değiştirip kullanacağız. İkon olarak muhasebeci-0.5.5/pixmaps/muhasebeci-icon.png dosyasını kullanarak gerbv örneğinde olduğu gibi muhasebeci-icons.tar.bz2 dosyasını oluşturup SOURCES alanına kopyalıyoruz. mkinstalldirs dosyasının garip yerinden dolayı muhasebeci-0.5.5 dizini ve mkinstalldirs dosyalarından muhasebeci-0.5.5.tar.bz2 paketini oluşturuyoruz ve bunu da SOURCES alanına kopyalıyoruz.
Aslında paket içinde bir muhasebeci.spec dosyası bulunuyor. Ancak bunu incelediğimizde Mandrake Linux gereklerini yerine getirmediğini görebiliriz. Linkler yerine dosyaları koyduktan sonra bu spec dosyasını kullanarak Mandrake Linux için de RPM oluşturabilirsiniz. Ancak bu Mandrake Linux RPM'leri ile uyumlu olmayacaktır. Mandrake Linux için hiçbir önemi olmayan dosyaları oluşturduğu halde gerekli olan menü dosyalarını ve ikonları oluşturmayacaktır. Bu nedenle kendi spec dosyamızı oluşturacağız.
%define name muhasebeci
%define version 0.5.5
%define release YTLmdk
# Macros for in the menu-file.
%define section More applications/Finances
%define title Muhasebeci
%define Summary Open Source Financial Application
Summary: %Summary
Name: %name
Version: %version
Release: %release
License: GPL
Group: Office
URL: http://muhasebeci.sf.net
Packager: Tanju TASCILAR <tanju@elektronist.com>
# Please add comment with the right url/downloadpage.
Source0: %name-%version.tar.bz2
Source1: %name-icons.tar.bz2
BuildRoot: %_tmppath/%name-buildroot
# Buildrequires:
# Requires:
%description
Muhasebeci uygulaması, Linux altında GPL olarak yazılan bir muhasebe programıdır. Uygulama MySQL veritabanini kullanir
%prep
%setup -q
%setup -q -T -D -a1 # unpack icons
%build
%configure
%make
%install
rm -rf %buildroot
%makeinstall
# Menu
mkdir -p %buildroot/%_menudir
cat > %buildroot/%_menudir/%name << EOF
?package(%name): \
command="%_bindir/%name" \
needs="X11" \
icon="%name.png" \
section="%section" \
title="%title" \
longtitle="%Summary"
EOF
# icon
%__install -D -m 644 %{name}-48.png %buildroot/%_liconsdir/%name.png
%__install -D -m 644 %{name}-32.png %buildroot/%_iconsdir/%name.png
%__install -D -m 644 %{name}-16.png %buildroot/%_miconsdir/%name.png
# Macro for locales
%find_lang %name
%post
%update_menus
%postun
%clean_menus
%clean
rm -rf %buildroot
%files -f %name.lang
%defattr(0755, root, root, 0755)
%_bindir/*
%defattr(0644, root, root, 0755)
%doc COPYING README INSTALL AUTHORS
%_menudir/*
%_miconsdir/*
%_iconsdir/*
%_liconsdir/*
%changelog
|
RPM oluşturmaya çalıştığımızda aşağıdaki hataları elde ediyoruz.
RPM derleme hataları:
Dosya iki kere gösterildi: /usr/share/icons/large/muhasebeci.png
Dosya iki kere gösterildi: /usr/share/icons/mini/muhasebeci.png
Installed (but unpackaged) file(s) found:
/usr/doc/muhasebeci/ABOUT-NLS
/usr/doc/muhasebeci/AUTHORS
/usr/doc/muhasebeci/COPYING
/usr/doc/muhasebeci/ChangeLog
/usr/doc/muhasebeci/INSTALL
/usr/doc/muhasebeci/NEWS
/usr/doc/muhasebeci/README
/usr/doc/muhasebeci/TODO
/usr/share/gnome/apps/Applications/muhasebeci.desktop
/usr/share/pixmaps/muhasebeci/muhasebeci-icon.png |
Bu durumu düzeltebilmek için spec dosyasına %doc bölümünün altına aşağıdaki satırları ekliyoruz.
%doc COPYING README INSTALL AUTHORS /usr/share/gnome/apps/Applications/muhasebeci.desktop /usr/share/pixmaps/muhasebeci/muhasebeci-icon.png /usr/doc/muhasebeci /usr/doc/muhasebeci/ABOUT-NLS /usr/doc/muhasebeci/AUTHORS /usr/doc/muhasebeci/COPYING /usr/doc/muhasebeci/ChangeLog /usr/doc/muhasebeci/INSTALL /usr/doc/muhasebeci/NEWS /usr/doc/muhasebeci/README /usr/doc/muhasebeci/TODO |
Bu sefer işlemin başarıyla tamamlandığını gösteren exit 0 mesajını görüyoruz.
Yazıldı: /home/tanju/rpm/SRPMS/muhasebeci-0.5.5-YTLmdk.src.rpm Yazıldı: /home/tanju/rpm/RPMS/i586/muhasebeci-0.5.5-YTLmdk.i586.rpm %clean icra ediliyor: /bin/sh -e /home/tanju/rpm/tmp/rpm-tmp.26740 + umask 022 + cd /home/tanju/rpm/BUILD + cd muhasebeci-0.5.5 + rm -rf /home/tanju/rpm/tmp/muhasebeci-buildroot + exit 0 [tanju@gezgin SPECS]$ |
Muhasebeci için RPM oluşturduk. Ancak bunu incelediğimizde bazı 'uyumsuzluklar' göreceğiz. Oluşturduğumuz RPM Mandrake Linux'ta çalışacaktır. Ancak Mandrake Linux sistemine gerekli olmayan bazı dosyaların kurulduğunu bazılarının da yanlış yerlere kurulduğunu göreceğiz. Dosya listesini incelediğimizde /usr/doc/muhasebeci dizini altına yerleştirilen dosyaların Mandrake Linux'ta standart olarak /usr/share/doc/muhasebeci-0.5.5 dizinine yerleştirilmesi gerektiğini ve zaten bir kısmının da doğru olarak yerleştiğini görebiliriz. Sorun yaratan dosyalar RPM oluşturulması sırasında Mandrake Linux scriptleri tarafından otomatik olarak yerleştirilmemiş olan dosyalardır. Biraz yukarda bunları files listesine elle eklemek zorunda kalmıştık. Bunun dışında /usr/share/gnome/apps/Applications/muhasebeci.desktop ve /usr/share/pixmaps/muhasebeci/muhasebeci-icon.png dosyalarının da Mandrake Linux için hiçbir işe yaramadığı halde sisteme kurulduğunu görüyoruz. Bunların yerine Mandrake Linux'da menu dosyası ve yukarda hazırladığımız üç ikon kullanılmaktadır. Bunlar da spec dosyamız aracılığı ile doğru olarak yerleştirilmişlerdir.
Sorun yaratan bu dosyaların kullanılmaması için muhasebeci-0.5.5 dizinindeki Makefile.am dosyasını inceleyip değiştirmemiz gerekiyor. Önce aşağıdaki satırda yer alan pixmaps girişini siliyoruz.
SUBDIRS = intl po macros src pixmaps |
Ardından /usr/doc dizinine yerleştirilecek dosyaları belirleyen aşağıdaki satırları ve muhasebeci.desktop dosyasını oluşturan satırları siliyoruz.
muhasebecidocdir = ${prefix}/doc/muhasebeci
muhasebecidoc_DATA = \
README\
COPYING\
AUTHORS\
ChangeLog\
INSTALL\
NEWS\
TODO\
ABOUT-NLS
EXTRA_DIST = $(muhasebecidoc_DATA)
gnomemenudir = $(prefix)/@NO_PREFIX_PACKAGE_MENU_DIR@/Applications
gnomemenu_DATA = muhasebeci.desktop |
Bunun ardından Makefile.am dosyasından Makefile.in dosyasının oluşturulması için automake komutunu kullanıyoruz. Burada po/tr_TR.po dosyasının sorun olduğunu belirten bir mesaj alıyoruz ve bu dosyayı siliyoruz. automake ile işlemi tamamladıktan sonra muhasebeci-0.5.5.tar.bz2 dosyasını yeniden oluşturup SOURCES alanına kopyalıyoruz. Yukarda spec dosyasına elle eklediğimiz satırları silip RPM'i oluşturuyoruz. Artık işlem tamamdır. Bu konuya Yamalar bölümünde yeniden değineceğiz.
| Tarball'dan RPM - gerbv | Ön sayfa | Diğer Yöntemler |
| Mandrake İçin RPM Oluşturmak |
Bu ve ilişkilendirilmiş yazılar GPL lisansına göre yayınlanmaktadır. Bütün hakları yazarına aittir. Yazarının ismi belirtilerek serbestçe dağıtılabilir ve kullanılabilir. Ancak bunların hiçbiri, hiçbir şekilde ve şartta GPL lisansı haricinde kullanılamaz. Burada yer alanları bulundurmaktan, kullanmaktan veya alıntı yapmaktan dolayı hiçbir sunucu, servis veya protokol, yazı veya içeriği üzerinde hak iddia edemez. info@elektronist.com