|
|
Bu makalenin farkl� dillerde bulundu�u adresler: English Castellano ChineseGB Deutsch Francais Italiano Nederlands Turkce Polish |
Mario M. Knopf (homepage) Yazar hakk�nda: Mario Linux, network ve g�venlikle ilgili konularla �al��may� sever. T�rk�e'ye �eviri: ONUR YILMAZ <onur2029(at)yahoo.com> ��erik: |
CheckInstall�zet:
Checkinstall tar.gz kaynak sayfalar�ndan otomatik olarak
RPM/Debian yada Slackware paketleri olu�turan bir yaz�l�md�r. Bu,
neredeyse herhangi bir kaynak kodu tar.gz paketinin, "temiz"
kurulumunu ve kald�r�lmas�n� sa�lar.
|
Test etmek istedi�imiz bir program sadece tar.gz kaynak kodu olarak mevcuttur (rpm yada Debian paketi olarak de�il) ve bu s�k kar��la��lan bir durumdur. Bu gibi bir durumda, kaynak paketini indirirsiniz, onu a�ars�n�z ve elle derlersiniz. Buraya kadar her �ey yolunda. Fakat program� silmek isterseniz ne olur?
Program� kald�rmak i�in Makefile sadece birka� durumda uygun yordam(routine) i�erir. Tabii program� ge�ici bir dizine kurmak ve sonraki bir kald�rma i�in kurulum taraf�ndan yarat�lm�� yada de�i�tirilmi� t�m dosyalar� ka��da d�kmek olas�l��� da vard�r. E�er programlar s�kl�kla kaynaklardan derleniyorsa, bu ac� verici ve uzun bir s�re�tir. CheckInstall arac� ( [1] Felipe Eduardo Sánchez Díaz Durán taraf�ndan yaz�lan) bu problemi ��zer.
Kural olarak GNU Autoconf uyumlu program�, yayg�n olarak
bilinen bir komut s�ras� alt�nda derler ve kurars�n�z.
./configure && make && make
install.
configure kabuk beti�i �e�itli sistem-ba��ml� de�i�kenler
i�in do�ru de�erleri tahmin etmeye �al���r. Bu de�erler daha sonra
derleme s�ras�nda kullan�l�r. configure derleme i�in gerekenlerin
tamamlan�p tamalanmad���n� kontrol eder ve tahmin etti�i de�erleri paketin
her dizininde Makefile yaratmak i�in kullan�r. Bunun d���nda
configure beti�i ilave dosyalar �retir. �zet olarak bunlar:
configure beti�i tamamland�ktan sonra, paketi derlemek i�in make yazars�n�z. Bu �al��t�r�labilir binary(ikilik d�zende) dosyalar� �retir. make'in hemen ard�ndan make check ile kendi testlerini(kontrollerini) �al��t�rma olas�l��� da vard�r. Fakat bu iste�e ba�l� bir ad�md�r; ��nki paket bu i�lemi desteklemelidir. E�er make i�ini ger�ekle�tirirse, make install komutuyla derlenmi� olan program�n�z� kurabilirsiniz. -bu ad�m i�in imtiyazl� kullan�c� haklar�na sahip olman�z gerekecek. (root olmal�s�n�z) Program ba�ar�l� bir �ekilde kurulduktan sonra, program�n binary ve nesne dosyalar�n� kaynak kodu dizininden make clean yazarak silebilirsiniz. E�er configure taraf�ndan yarat�lm�� dosyalar� da silmek isterseniz, make distclean yaz�n. Fakat son anlatt���m iki ad�m make check gibi se�meli ve normalde geli�tirme ve test s�ras�nda geli�tirici taraf�ndan kullan�l�yor. Ayn� zamanda hard disk kapasitesini tasarruflu kullanmak isteyen yada dizin yap�s�n� temiz tutmak isteyen kullan�c� taraf�ndan da kullan�labilir. Bunun d���nda make distclean, paketi bir ba�ka bilgisayar i�in derlemeyi, m�mk�n hale getirir.
GNU Autoconf hakk�nda detayl� bilgi Online-Manual(elkitab�)'da bulunabilir. [2]. Temel ba�lang�� bilgilerinin yan�s�ra, kendi configure betiklerini yapma, M4 'te programlama ve kendi makrolar�n�z� yaratma konular�yla GNU Build System (GNU Sistem Yap�s�) hakk�nda daha fazlas�n� ��renebilirsiniz.
Daha �nce de belirtti�im gibi, kaynak kodundan GNU Autoconf uyumlu program kurmak i�in komut s�ras� �uydu:
./configure && make && make install
Bu noktada CheckInstall kullanman�n zaman�d�r. Bu make install 'u kendi komutu checkinstall ile de�i�tirmek anlam�na gelir. Di�er iki komut bundan etkilenmiyor ve normal olarak eskisi gibi kullan�l�yor. Bu y�zden CheckInstall ile yeni komut s�ras� ��yle:
./configure && make && checkinstall
Fakat checkinstall komutu yinede make install 'u �ntan�ml� olarak ba�lat�r ve kurulum taraf�ndan yap�lan t�m yazma olaylar�n� izler. CheckInstall bunun i�in, ilk olarak Pancrazio de Mauro taraf�ndan yaz�lm�� olan, Installwatch [3] program�n� kullan�r. make install ba�ar�yla tamamland�ktan sonra, CheckInstall bir Slackware-, Debian- yada RPM-Paketi yarat�r ve bu paketi �ntan�ml� paket y�neticisiyle kurar. Paketin bir kopyas�n� o anki kaynak dizininde yada standart depolama dizininde b�rak�r. �stelik yap�land�rma(konfig�rasyon) dosyas�ndaki PAK_DIR de�i�kenini de�i�tirerek �ntan�ml� depolama dizini de�i�tirmek de m�mk�nd�r. Bu paket, olas� paket ba��ml�l�klar� d���n�lerek, a� i�indeki di�er makinelere de kurulabilir. B�ylece kaynak paketinden her seferinde tekrar tekrar derlememi� oluruz.
CheckInstall sadece make install 'dan yararlanmaz. Di�er kurulum komutlar�yla da �al���r. �rne�in; kurulum beti�i setup.sh ise, komut tak�m� ��yle olur:
./configure && make && checkinstall setup.sh
CheckInstall 'u �e�itli se�eneklerle ba�latma imkan� vard�r. S�radaki komut var olan t�m se�enekleri �e�itli alt b�l�mlere ( Install options, Scripting options, Info display options, Package tuning options, Cleanup options ve About CheckInstall ) ayr�lm�� olarak g�sterir:
# checkinstall -h
E�er CheckInstall bu se�eneklerden biriyle ba�larsa, yap�land�rma dosyas�ndaki (checkinstallrc) de�erleri ge�ersiz k�lacakt�r.
Fakat CheckInstall 'unda limitleri var. Statik olarak ba�lanm�� programlar� i�leyemez; ��nki Installwatch kurulum s�reci boyunca de�i�en olaylar� izleyemez. Genel olarak iki tip program k�t�phanesi vard�r: statik yada dinamik ba�l� k�t�phaneler. Bunlar include-talimat�yla programa t�mle�tirilir. Statik olarak ba�l� programlar t�m gerekli k�t�phane fonksiyonlar�na sahiptirler ve �al��t�rma esnas�nda bunlar� RAM'e y�klememelidirler. Ayr�ca hedef sisteme ger�ekten kurulan k�t�phanelerden ba��ms�zd�rlar. ��nki derleme esnas�nda bir s�zde Linker(ba�lay�c�) k�t�phaneleri �al��t�r�labilir programa g�mm��t�r.
CheckInstall zaten uzun bir s�re i�in b�y�k da��t�mlar�n yaz�l�m havuzlar�n�n bir par�as�d�r ve kendi paket y�netim sistemiyle kurulabilir. Bunun d���nda uygun tar paketlerini yada �e�itli da��t�mlar i�in �nceden in�a edilmi� paketleri proje websitesinden indirebilirsiniz.[4]
CheckInstall 'un kurulumu olduk�a basit ve birka� ad�mda �al���yor. -fakat ba�ar�l� bir CheckInstall kurulumu i�in paradoksal olarak CheckInstall 'a ihtiyac�n�z olacak. Zorunlu komut make install 'dan sonra checkinstall yazabilirsiniz. Bu derlenmi� programdan uygun �al��t�r�labilir paketi yarat�r. �imdi bu paketi paket y�neticinizle kurabilirsiniz ve tabii ki program� temiz bir �ekilde kald�rmak da m�mk�n hale gelir. Fakat CheckInstall paketi yaratmadan �nce, kulland���n�z paket y�neticisiyle ilgili bir soruya cevap vermelisiniz ve bilgi alanlar�n�n do�rulu�unu kontrol etmelisiniz. Onlar daha sonra paket ba�l���nda g�r�n�yor.
Yeni beta s�r�m�n�( checkinstall-1.6.0beta4.tgz ) kurma y�ntemi s�radaki kod kutusunda g�steriliyor. Bu CheckInstall, Installwatch ve makepak 'i (makepkg 'nin de�i�tirilmi� versiyonu) kuracak. E�er yeni s�r�mdeki de�i�iklikleri merak ediyorsan�z, Release Notes 'a [5] (s�r�m notlar�) yada Changelog 'a [6] bir g�z at�n.
$ tar xzf checkinstall-1.6.0beta4.tgz $ cd checkinstall-1.6.0beta4 checkinstall-1.6.0beta4 $ make [...] checkinstall-1.6.0beta4 $ su Password: checkinstall-1.6.0beta4 # make install [...] checkinstall-1.6.0beta4 # checkinstall checkinstall 1.6.0beta4, Copyright 2002 Felipe Eduardo Sanchez Diaz Duran This software is released under the GNU GPL. Please choose the packaging method you want to use. Slackware [S], RPM [R] or Debian [D]? R ************************************* *** RPM package creation selected *** ************************************* This package will be built according to these values: 1 - Summary: [ CheckInstall installations tracker, version 1.6.0beta4 ] 2 - Name: [ checkinstall ] 3 - Version: [ 1.6.0beta4 ] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ Applications/System ] 7 - Architecture: [ i386 ] 8 - Source location: [ checkinstall-1.6.0beta4 ] 9 - Alternate source location: [ ] 10 - Provides: [ checkinstall ] 11 - Requires: [ ] Enter a number to change any of them or press ENTER to continue: Installing with make install... ========================= Installation results ========================= [...] ========================= Installation successful ====================== Copying documentation directory... ./ ./NLS_SUPPORT ./README ./FAQ ./TODO ./CREDITS ./INSTALL ./Changelog ./BUGS ./installwatch-0.7.0beta4/ ./installwatch-0.7.0beta4/README ./installwatch-0.7.0beta4/TODO ./installwatch-0.7.0beta4/VERSION ./installwatch-0.7.0beta4/INSTALL ./installwatch-0.7.0beta4/CHANGELOG ./installwatch-0.7.0beta4/BUGS ./installwatch-0.7.0beta4/COPYING ./RELNOTES ./COPYING Copying files to the temporary directory...OK Striping ELF binaries and libraries...OK Compressing man pages...OK Building file list...OK Building RPM package...OK NOTE: The package will not be installed Erasing temporary files...OK Writing backup package...OK Deleting temp dir...OK **************************************************************** Done. The new package has been saved to /usr/src/redhat/RPMS/i386/checkinstall-1.6.0beta4-1.i386.rpm You can install it in your system anytime using: rpm -i checkinstall-1.6.0beta4-1.i386.rpm **************************************************************** checkinstall-1.6.0beta4 # cd /usr/src/redhat/RPMS/i386/ i386 # rpm -i checkinstall-1.6.0beta4-1.i386.rpm i386 #
Debian tabanl� da��t�m kullan�c�lar�, paketi dpkg -i ile kurabilir. Slackware kullan�c�lar� bunun i�in installpkg 'yi kullanabilir.
Paket y�neticinizin sorgulama fonksiyonunu kullanarak, bu durumda RPM, paketin veritaban�na do�ru bir �ekilde t�mle�ip t�mle�medi�ini ��renebilir ve paket ba�l���n�n ek bilgi sahas�n� g�r�nt�leyebilirsiniz.
$ rpm -qi checkinstall Name : checkinstall Relocations: (not relocatable) Version : 1.6.0beta4 Vendor : (none) Release : 1 Build Date : Mo 06 Dez 2004 17:05:45 CET Install Date: Di 07 Dez 2004 01:41:49 Build Host : deimos.neo5k.lan Group : Applications/System Source RPM : checkinstall-1.6.0beta4-1.src.rpm Size : 264621 License : GPL Signature : (none) Packager : checkinstall-1.6.0beta4 Summary : CheckInstall installations tracker, version 1.6.0beta4 Description : CheckInstall installations tracker, version 1.6.0beta4 CheckInstall keeps track of all the files created or modified by your installation script ("make install" "make install_modules", "setup", etc), builds a standard binary package and installs it in your system giving you the ability to uninstall it with your distribution's standard package management utilities.
�yi a��klamal� metin dosyas�n� ( /usr/lib/local/checkinstall/checkinstallrc ) CheckInstall 'un �ntan�ml� davran���n� de�i�tirmek i�in oynayabilirsiniz.
CheckInstall her ba�lat�l��ta hangi paket tipini �retece�ini sordu�undan, bu de�eri INSTYPE '� ayarlayarak kal�c� olarak eklemek ak�ll�ca olacakt�r. Ayr�ca INSTALL, PAK_DIR ve RPM_FLAGS ( alternatif olarak DPKG_FLAGS ) de�i�kenlerine bakmak iyi bir fikir. Son iki de�i�kenle se�imlik kurulum noktalar� belirleyebilirsiniz ve PAK_DIR '� de�i�tirerek paket kopyas� i�in ba�ka bir dizin belirtebilirsiniz. INSTALL size paketi yaratma ve/veya paketi kurma aras�nda karar verme imkan� sunar.
$ cat /usr/lib/local/checkinstall/checkinstallrc #################################################################### # CheckInstall configuration file # ######################################## #################################################################### # These are default settings for CheckInstall, modify them as you # # need. Remember that command line switches will override them. # #################################################################### # Debug level # 0: No debug # 1: Keep all temp files except the package's files # 2: Keep the package's files too DEBUG=0 # Location of the "installwatch" program INSTALLWATCH_PREFIX="/usr/local" INSTALLWATCH=${INSTALLWATCH_PREFIX}/bin/installwatch # Location of the makepkg program. "makepak" is the default, and is # included with checkinstall. If you want to use Slackware's native "makepkg" # then set this to "makepkg" MAKEPKG=/sbin/makepkg # makepkg optional flags. These are recommended if running a newer Slackware # version: "-l y -c n" MAKEPKG_FLAGS="-l y -c n" # Is MAKEPKG running interactively? If so, you might want # to see what it's doing: SHOW_MAKEPKG=0 # Where will we keep our temp files? BASE_TMP_DIR=/var/tmp ## Don't set this to /tmp or / !! # Where to place the installed document files DOC_DIR="" # Default architecture type (Leave it empty to allow auto-guessing) ARCHITECTURE="" # Default package type. Leave it empty to enable asking everytime # S : Slackware # R : RPM # D : Debian INSTYPE="R" # Storage directory for newly created packages # By default they will be stored at the default # location defined for the package type PAK_DIR="" # RPM optional flags RPM_FLAGS=" --force --nodeps --replacepkgs " # dpkg optional flags DPKG_FLAGS="" ## These are boolean. Set them to 1 or 0 # Interactively show the results of the install command (i.e. "make install")? # This is useful for interactive installation commands SHOW_INSTALL=1 # Show Slackware package installation script while it runs? Again, useful if # it's an interactive script SHOW_SLACK_INSTALL=0 # Automatic deletion of "doc-pak" upon termination? DEL_DOCPAK=1 # Automatic deletion of the spec file? DEL_SPEC=1 # Automatic deletion of "description-pak"? DEL_DESC=1 # Automatically strip all ELF binaries? STRIP_ELF=1 # Automatically strip all ELF shared libraries? # Note: this setting will automatically be set to "0" if STRIP_ELF=0 STRIP_SO_ELF=1 # Automatically search for shared libraries and add them to /etc/ld.so.conf? # This is experimental and could mess up your dynamic loader configuration. # Use it only if you know what you are doing. ADD_SO=0 # Automatically compress all man pages? COMPRESS_MAN=1 # Set the umask to this value CKUMASK=0022 # Backup files overwritten or modified by your install command? BACKUP=1 # Write a doinst.sh file that installs your description (Slackware)? AUTODOINST=1 # Are we going to use filesystem translation? TRANSLATE=1 # Reset the owner/group of all files to root.root? RESET_UIDS=0 # Use the new (8.1+) Slackware description file format? NEW_SLACK=1 # Comma delimited list of files/directories to be ignored EXCLUDE="" # Accept default values for all questions? ACCEPT_DEFAULT=0 # Use "-U" flag in rpm by default when installing a rpm package # This tells rpm to (U)pdate the package instead of (i)nstalling it. RPM_IU=U # Inspect the file list before creating the package CK_INSPECT=0 # Review the .spec file before creating a .rpm REVIEW_SPEC=0 # Review the control file before creating a .deb REVIEW_CONTROL=0 # Install the package or just create it? INSTALL=0
CheckInstall Linux y�netimini daha kolay yapmam�z� sa�layan m�kemmel bir ara�. �zellikle programlar s�k s�k kaynaklar�ndan derlenmeliyse CheckInstall size, sisteminizin kararl�l���n� bozmadan, programlar�n�z� temiz bir �ekilde kald�rma imkan� verir. Bunun d���nda olu�turulan bu paketleri ba�ka makinalarada da tekrar tekrar derlemeye gerek kalmaks�z�n kurabilirsiniz. - tabii ki olas� paket ba��ml�l�klar�n� d���nmek zorundas�n�z. Fakat bu genellikle �zde� makinalar i�in �ok b�y�k problem de�ildir.
[1] http://asic-linux.com.mx/~izto/checkinstall/
[Home of CheckInstall]
[2] http://www.gnu.org/software/autoconf/manual/autoconf-2.57/autoconf.html
[GNU Autoconf Online Manual]
[3] http://asic-linux.com.mx/~izto/checkinstall/installwatch.html
[Installwatch]
[4] http://asic-linux.com.mx/~izto/checkinstall/download.php
[CheckInstall Downloads]
[5] http://asic-linux.com.mx/~izto/checkinstall/docs/RELNOTES
[Release Notes]
[6] http://asic-linux.com.mx/~izto/checkinstall/docs/Changelog
[Changelog]
G�rsely�re sayfalar�n�n bak�m�, LinuxFocus Edit�rleri taraf�ndan yap�lmaktad�r
© Mario M. Knopf "some rights reserved" see linuxfocus.org/license/ http://www.LinuxFocus.org |
�eviri bilgisi:
|
2005-01-14, generated by lfparser version 2.50