/[ddp]/manuals/trunk/apt-howto/apt-howto.tr.sgml
ViewVC logotype

Contents of /manuals/trunk/apt-howto/apt-howto.tr.sgml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3479 - (show annotations) (download) (as text)
Wed Aug 10 22:46:31 2005 UTC (7 years, 9 months ago) by kov
File MIME type: text/x-sgml
File size: 62033 byte(s)
	* (ca, de, es, ja, ko, pl, ru, tr):
	- reverted copyright notice back to english so it correctly
	  states the current state of afairs (GPL)
1 <!doctype debiandoc system>
2 <debiandoc>
3
4 <book>
5
6 <title>APT NASIL</title>
7
8 <author>
9 <name>Gustavo Noronha Silva</name> <email>kov@debian.org</email>
10 </author>
11 <author>
12 <name>Çeviri: Murat Demirten</name> <email>murat@debian.org</email>
13 </author>
14
15 <version>1.8.3 - Aralık 2002</version>
16
17 <abstract>
18 Bu doküman Debian paket yönetim uygulaması APT hakkında genel kullanım bilgileri
19 vermeyi amaçlamaktadır. APT'nin amacı Debian kullanıcılarının hayatını kolaylaştırmak
20 ve sistemin yönetiminin daha iyi, anlaşılır şekilde yapılabilmesini sağlamaktır.
21 APT Debian dağıtımı olarak kullanıcıları daha çok desteklemek amacıyla,
22 Debian projesi için geliştirilmiştir.
23 </abstract>
24
25 <copyright>
26 <copyrightsummary>
27 Copyright &copy; 2001, 2002, 2003, 2004 Gustavo Noronha Silva
28 </copyrightsummary>
29 <p>
30 This manual is free software; you may redistribute it and/or modify it
31 under the terms of the GNU General Public License as published by the
32 Free Software Foundation; either version 2, or (at your option) any
33 later version.
34 </p>
35
36 <p>
37 This is distributed in the hope that it will be useful, but without
38 any warranty; without even the implied warranty of merchantability or
39 fitness for a particular purpose. See the GNU General Public License
40 for more details.
41 </p>
42
43 <p>
44 A copy of the GNU General Public License is available as
45 /usr/share/common-licenses/GPL in the Debian GNU/Linux distribution or
46 on the World Wide Web at the GNU General Public Licence. You can also
47 obtain it by writing to the Free Software Foundation, Inc., 59 Temple
48 Place - Suite 330, Boston, MA 02111-1307, USA.
49 </p>
50 </copyright>
51
52 <toc>
53
54 <chapt>Başlarken
55 <p>
56 Önce .tar.gz vardı. Kullanıcılar GNU/Linux sistemlerinde kullandıkları her programı
57 derlemek zorundaydılar. Debian geliştirimi sırasında, kurulu paketlerin
58 yönetimini sağlayacak bir sistemin zorunluluğu hemen görüldü. Bu amaçla geliştirilen
59 sisteme
60 <prgn>dpkg</prgn> adı verildi. Sonuçta GNU/Linux dünyası, RedHat'in kendi paket
61 yönetim sistemini geliştirmesinden biraz önce, dpkg ile tanıştı.
62 <p>
63 Hemen ardından GNU/Linux sisteminin geliştiricilerinin kafasında yeni bir ikilem oluştu.
64 Paketlerin hızlı, pratik ve verimli bir yöntemle kurulabilmesini, paket bağımlılıkları
65 yönetimi ve paket güncellemeleri sırasında konfigürasyon dosyalarının güncellenmesini
66 sağlayacak bir araca ihtiyaç vardı. Gene Debian projesi kapsamında ilk ürün ortaya çıktı:
67 APT (Advanced Packaging Tool). Apt daha sonra Connectiva tarafından rpm paketler ile
68 kullanılmak üzere port edildi ve bazı dağıtımlar tarafından da kullanılmaya başlandı.
69
70 <p>
71 Bu dokümanda Connectiva APT portu olan apt-rpm'den bahsedilmemekle birlikte, dokümana
72 eklenti amacıyla bu konuda da bir şeyler gönderebilirsiniz.
73 <p>
74 Bu döküman bir sonraki Debian sürümü olacak <tt>Sarge</tt> temel alınarak yazılmıştır.
75 </chapt>
76 <chapt id="basico">Temel Konfigürasyon
77 <sect id="sources.list">/etc/apt/sources.list dosyası
78 <p>
79 APT paketlerin bulunduğu kaynaklara nasıl erişebileceğinin bilgisini
80 <tt>/etc/apt/sources.list</tt> dosyasında saklar.
81 <p>
82 Dosya içindeki girdilerin biçimi aşağıdaki gibidir:
83
84 <p>
85 <example>
86 deb http://host/debian sürüm bölüm1 bölüm2 bölüm3
87 deb-src http://host/debian distribution section1 section2 section3
88 </example>
89
90 <p>
91 Elbette yukarıda verdiğimiz örnek kullanılabilir değildir. Her satırın ilk kelimesi
92 mutlaka <tt>deb</tt> veya <tt>deb-src</tt> olmak zorundadır. Bu ifadeler arşivin
93 tipini belirler: derlenmiş ve kullanıma hazır duruma getirilmiş, binary paketler (<tt>deb</tt>)
94 veya programın asıl kaynak kodu + Debian paketi için yapılan eklentilerden oluşan halini
95 içeren paketler (<tt>deb-src</tt>).
96 <p>
97 Öntanımlı Debian sources.list dosyasının biçimi genellikle aşağıdaki gibi olacaktır:
98 <p>
99 <example>
100 # See sources.list(5) for more information, especialy
101 # Remember that you can only use http, ftp or file URIs
102 # CDROMs are managed through the apt-cdrom tool.
103 deb http://http.us.debian.org/debian stable main contrib non-free
104 deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
105 deb http://security.debian.org stable/updates main contrib non-free
106
107 # Uncomment if you want the apt-get source function to work
108 #deb-src http://http.us.debian.org/debian stable main contrib non-free
109 #deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
110 </example>
111
112 <p>
113 En temel Debian kurulumu için ihtiyaç duyulan satırlar bunlardır. Birinci <tt>deb</tt>
114 satırı resmi Debian arşivini gösterirken, ikincisi non-US arşivini ve üçüncüsü ise
115 Debian güvenlik güncellemelerini içeren arşivi göstermektedir.
116 <p>
117 Sondaki iki satır yorum haline getirilmiş olup (satır başındaki `#' karakteri ile)
118 apt-get tarafından yoksayılmaktadır. Buradaki <tt>deb-src</tt> satırları Debian kaynak
119 paketlerini göstermektedirler. Eğer sıklıkla program kaynak kodlarını test veya yeniden derleme
120 amaçlı olarak indiriyorsanız satırları aktif hale getirmelisiniz.
121 <p>
122 <tt>/etc/apt/sources.list</tt> dosyası çeşitli tiplerde satırlar içerebilir.
123 APT uygulaması <tt>http</tt>, <tt>ftp</tt>, <tt>file</tt> (yerel dosyalar, örneğin bağlı
124 durumdaki bir ISO9660 dosya sistemi) ve <tt>ssh</tt> arşiv tiplerini tanıyabilmektedir.
125 <p>
126 <tt>/etc/apt/sources.list</tt> dosyasında değişiklik yaptıktan sonra <tt>apt-get update</tt>
127 komutunu çalıştırmayı unutmayınız. Bu komutla APT'nin dosyada belirtmiş olduğunuz arşivlerdeki
128 güncel paket listesini edinmesini sağlamış olursunuz.
129 </sect>
130
131 <sect id="dpkg-scanpackages">APT'nin yerel olarak kullanımı
132 <p>
133 Bazen APT tarafından kurulmasını istediğiniz onlarca paketiniz olabilir. Bunların hepsini birden
134 sisteminizdeki kopyasından kurulumunu isterseniz aşağıdaki adımları izlemelisiniz.
135 <p>
136 Öncelikle bir dizin yaratıp içerisinde sizdeki .deb paketlerini atınız.
137 Örnek olarak:
138 <p>
139 <example>
140 # mkdir /root/debs
141 </example>
142 <p>
143 Paketlerin control dosyalarında belirtilen tanımlamalarının üzerine kendi tanımlamalarınızı
144 <tt>override</tt> dosyası kullanarak yapabilirsiniz. Bu dosya içerisinde paketle birlikte gelen
145 bazı seçenekleri aşağıdaki gibi tanımlayabilirsiniz:
146 <p>
147 <example>
148 paket öncelik bölüm
149 </example>
150 <p>
151 paket, paketin ismini belirtir; öncelik değeri sırasıyla düşük, orta ve yüksek anlamında
152 low, medium ve high olabilir; bölüm ise paketin ait olduğu bölümü gösterir.
153 Dosya adının mutlaka böyle olması gerekmez, başka bir dosya kullanıp
154 <prgn>dpkg-scanpackages</prgn>'a parametre olarak verebilirsiniz.
155 Eğer bir <tt>override</tt> dosyası yazmak istemiyorsanız <prgn>dpkg-scanpackages</prgn> programını
156 çağırırken <file>/dev/null</file>'u kullanabilirsiniz.
157 <p>
158 Halen /root dizini içerisindeyken aşağıdaki komutu çalıştırın:
159 <p>
160 <example>
161 # dpkg-scanpackages debs <var>dosya</var> | gzip &gt; debs/Packages.gz
162 </example>
163 <p>
164 Yukarıdaki satırda <var>dosya</var> olarak girilen dosya, <tt>override</tt> dosyasıdır.
165 Bu komut APT tarafından kullanılmak üzere, paketler hakkında çeşitli bilgiler içeren
166 <file>Packages.gz</file> dosyasını üretir. Paketleri kullanmak için son olarak aşağıdaki satırı
167 <file>sources.list</file> dosyanıza ekleyin:
168
169 <p>
170 <example>
171 deb file:/root debs/
172 </example>
173 <p>
174 Bu eklentiden sonra artık APT uygulamasını yeni arşivinizle birlikte kullanabilirsiniz.
175 Ayrıca isterseniz kaynak paketler için de yerel bir arşiv oluşturabilirsiniz. Bunun için
176 izlemeniz gereken yol yukarıdaki ile hemen hemen aynıdır. Dikkat etmeniz gereken nokta,
177 <tt>.orig.tar.gz</tt>, <tt>.dsc</tt> ve <tt>.diff.gz</tt> dosyalarını da dizin içerisine
178 kopyalamanız ve <tt>Packages.gz</tt> dosyası yerine <tt>Sources.gz</tt> dosyasını
179 oluşturmanız gerektiğidir. Kullanacağınız program ise <prgn>dpkg-scansources</prgn> olacaktır.
180 Örnek:
181 <p>
182 <example>
183 # dpkg-scansources debs | gzip &gt; debs/Sources.gz
184 </example>
185 <p>
186 Dikkat ettiyseniz <prgn>dpkg-scansources</prgn> uygulaması parametre olarak bir
187 <tt>override</tt> dosyasına ihtiyaç duymamaktadır. <file>sources.list</file> dosyanıza
188 eklemeniz gereken satır ise aşağıdadır:
189 <p>
190 <example>
191 deb-src file:/root debs/
192 </example>
193 </sect>
194
195 <sect id="netselect">sources.list dosyası için en iyi yansıya karar verme: netselect, netselect-apt
196 <p>
197 Yeni Debian kullanıcılarının kararsız oldukları noktalardan biri <tt>sources.list</tt>
198 dosyasına hangi Debian yansısını eklemeleri gerektiğidir. En iyi yansıya karar vermek için
199 pek çok yöntem mevcuttur. Deneyimli kullanıcılar bir betik programı yazarak yansılar ile aradaki
200 iletişim hızını ölçebilirler. Bu işi sizin için büyük ölçüde yapacak bir program mevcuttur:
201 <strong>netselect</strong>.
202 <p>
203 netselect programını bildiğimiz yöntemle kuralım:
204 <p>
205 <example>
206 # apt-get install netselect
207 </example>
208 <p>
209 Parametre vermeden programı çalıştırdığımızda bir yardım sayfası gözükecektir.
210 Programı birbirinden boşluk karakteri ile ayrılmış yansı adresleriyle çalıştırırsanız
211 geriye bir skor ve yansı adresi döndürecektir. Buradaki değer yaklaşık olarak ping zamanını, ve
212 ilgili yansıya kaç adımda ulaşılabilindiği bilgisiyle hesaplanmıştır.
213 Eğer parametre olarak verdiğiniz tüm yansılara ait skorları görmek isterseniz programı -vv seçeneği
214 ile çalıştırabilirsiniz. Örnek:
215 <p>
216 <example>
217 # netselect ftp.debian.org http.us.debian.org ftp.at.debian.org download.unesp.br ftp.debian.org.br
218 365 ftp.debian.org.br
219 #
220 </example>
221 <p>
222 Bu çıktının anlamı, netselect programına parametre olarak verdiğimiz yansılar arasından en uygununun
223 <tt>ftp.debian.org.br</tt> olduğu ve bu yansı için elde edilen skor değerinin 365 olduğudur.
224 (Bu değer herkes için farklı olacaktır!).
225 <p>
226 Şimdi netselect tarafından en hızlı olarak belirtilen yansıyı
227 <tt>/etc/apt/sources.list</tt> dosyanıza (bkz. <ref id="sources.list">) ekleyebilir ve ardından
228 <ref id="apt-get"> kısmındaki yönergeleri takip edebilirsiniz.
229 <p> <strong>Not:</strong> Debian tam yansı listesine
230 <url id="http://www.debian.org/mirror/mirrors_full" name="http://www.debian.org/mirror/mirrors_full">
231 adresinden erişebilirsiniz.
232 <p>
233 0.3 versiyonundan itibaren netselect paketi
234 <strong>netselect-apt</strong> betiğini de içermektedir. Bu betik yukarıdaki işlemleri
235 otomatik olarak yapmaktadır. Dağıtım olarak ne kullanmak istediğinizi belirtmeniz durumunda
236 (öntanımlı olarak stable - kararlı) yansılar arasından sizin için en iyileri seçilecek ve bu karar
237 doğrultusunda <tt>sources.list</tt> dosyanız oluşturulacaktır. Aşağıdaki örnek kullanım ile
238 kararlı dağıtım için bir sources.list dosyası üretilmektedir:
239 <p>
240 <example>
241 # ls sources.list
242 ls: sources.list: Böyle bir dosya ya da dizin yok
243 # netselect-apt stable
244 (...) Bir miktar bekliyoruz
245 # ls -l sources.list
246 sources.list
247 #
248 </example>
249 <p>
250 <strong>Unutmayın:</strong> <tt>sources.list</tt> dosyası bulunduğunuz dizin altında oluşturulacaktır.
251 Bu dosyayı kullanmak istiyorsanız <tt>/etc/apt</tt> dizini altına taşımalısınız.
252 <p>
253 Ardından <ref id="apt-get"> kısmındaki yönergeleri izleyebilirsiniz.
254 </sect>
255
256 <sect id="cdrom">sources.list dosyasına CD-ROM ekleme
257 <p>
258 Eğer paketlerin kurulumu veya güncellemesi için halihazırda elinizde bulunan bir CD-ROM'u kullanmak
259 istiyorsanız bunu <tt>sources.list</tt> dosyanıza eklemelisiniz. Bunun için CD-ROM'u takıp
260 <prgn>apt-cdrom</prgn> programını örnekteki gibi çalıştırın:
261 <p>
262 <example>
263 # apt-cdrom add
264 </example>
265
266 <p>
267 CD-ROM bağlanacak ve eğer geçerli bir Debian CD'si ise üzerindeki paketlere ait bilgiler
268 okunacaktır. Eğer CD-ROM ayarlamalarınız biraz standart dışı ise aşağıdaki seçenekleri de
269 kullanabilirsiniz:
270 <p>
271 <example>
272 -h - program yardımı
273 -d dizin - CD-ROM bağlama noktası
274 -r - Tanınmış bir CD-ROM'u yeniden adlandır
275 -m - Bağlama işlemini gerçekleştirme
276 -f - Hızlı mod, paket dosyalarını kontrol etme
277 </example>
278
279 <p>
280 Örneğin:
281 <p>
282 <example>
283 # apt-cdrom -d /home/kov/mycdrom add
284 </example>
285
286 <p>
287 Ayrıca sources.list dosyanıza eklemeden CD-ROM'u tanıma işlemini yapabilirsiniz:
288 <p>
289 <example>
290 # apt-cdrom ident
291 </example>
292
293 <p>
294 Not: Bu program CD-ROM aygıtınıza ait ayarların <tt>/etc/fstab</tt> dosyasında düzgün olarak
295 yapılmış olduğu durumda çalışacaktır.
296 </sect>
297
298 </chapt>
299
300 <chapt id="apt-get">Paketlerin yönetimi
301 <sect id="update">Paket listesini güncelleme
302 <p>
303 Paket yönetim sistemi kurulu paketler, kurulu olmayan paketler, kurulabilir paketler vb. hakkında
304 bilgileri kendi özel veritabanında tutmaktadır. <prgn>apt-get</prgn> programı bu veritabanını
305 kullanarak istenilen paketin nasıl kurulacağını, başka hangi paketlerin daha kurulması gerektiğini
306 öğrenir.
307 <p>
308 Bu listeyi güncellemek için <prgn>apt-get update</prgn> komutunu kullanmalısınız.
309 Bu komut <tt>/etc/apt/sources.list</tt> dosyanıza bakar ve belirtilen arşivlerden güncel paket
310 listesini indirir; ayrıntılı bilgi için bkz. <ref id="sources.list">.
311 <p>
312 Paket güncellemeri ve güvenlikle ilgili güncellemelerden sizin ve sisteminizin haberdar olabilmesi
313 için bu komutu düzenli aralıklarla çalıştırmakta fayda vardır.
314 </sect>
315
316 <sect id="install">Paket kurma
317 <p>
318 Sonunda sabırsızlıkla beklediğiniz bölüme geldik! Artık sources.list dosyanız hazır ve paket listeniz
319 güncel durumda. Tek yapmanız gereken kuracağınız paketi belirtmek. Örneğin:
320 <p>
321 <example>
322 # apt-get install xchat
323 </example>
324
325 <p>
326 APT hemen kendi veritabanını tarayarak bu paketin en son versiyonunu bulacak ve <tt>sources.list</tt>
327 dosyanızda belirtilen arşivden indirmeye başlayacaktır. Bu paketin başka paketlere de bağımlı olması
328 durumunda - ki örneğimizde de öyle - aynı adımları bağımlılık yaratan paketler için de yapacaktır.
329 Aşağıdaki örneğe bakınız:
330
331 <p>
332 <example>
333 # apt-get install nautilus
334 Reading Package Lists... Done
335 Building Dependency Tree... Done
336 The following extra packages will be installed:
337 bonobo libmedusa0 libnautilus0
338 The following NEW packages will be installed:
339 bonobo libmedusa0 libnautilus0 nautilus
340 0 packages upgraded, 4 newly installed, 0 to remove and 1 not upgraded.
341 Need to get 8329kB of archives. After unpacking 17.2MB will be used.
342 Do you want to continue? [Y/n]
343 </example>
344
345 <p>
346 <package>nautilus</package> paketi bazı kütüphane paketlerine bağımlı durumdadır. Eğer bağımlılık
347 yaratan paketleri de komutumuza eklemiş olsaydık APT devam etmek istiyor musunuz? sorusunu sormayacak
348 ve hemen paketleri indirmeye başlayacaktı.
349 <p>
350 Bunun anlamı APT'nin sadece komut satırında belirtilmeyen ancak gereken paketleri de kurmak istediği
351 zaman onay isteyeceğidir.
352 <p>
353 Aşağıdaki apt-get seçenekleri işinize yarayabilir:
354 <p>
355 <example>
356 -h Yardım ekranı.
357 -d Sadece indir , kurulumu yapma
358 -f Bütünlük kontrolü başarısız olsa da devam etmeye çalış
359 -s Hiçbir eylem yapma, sadece olayı simüle et
360 -y Tüm sorulara Evet cevabı verdiğimi farzet
361 -u İşlem sonucunda güncellenecek olan paketleri listele
362 </example>
363
364 <p>
365 Birden fazla paket kurulmak üzere tek satırda seçim yapılabilir. Gerekli paketler
366 indirilir ve <tt>/var/cache/apt/archives</tt> dizini altına ilerideki kurulumlarda
367 da kullanılmak üzere kaydedilir.
368 <p>
369 Aynı komut satırında kaldırılmasını istediğiniz paketleri de belirtebilirsiniz.
370 Bunun için kaldırmak istediğiniz paketin ismini sonuna bir '-' karakteri ekleyerek yazmanız
371 yeterli:
372 <p>
373 <example>
374 # apt-get install nautilus gnome-panel-
375 Reading Package Lists... Done
376 Building Dependency Tree... Done
377 The following extra packages will be installed:
378 bonobo libmedusa0 libnautilus0
379 The following packages will be REMOVED:
380 gnome-applets gnome-panel gnome-panel-data gnome-session
381 The following NEW packages will be installed:
382 bonobo libmedusa0 libnautilus0 nautilus
383 0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
384 Need to get 8329kB of archives. After unpacking 2594kB will be used.
385 Do you want to continue? [Y/n]
386 </example>
387
388 <p>
389 Paket kaldırmayla ilgili bilgiler için <ref id="remove"> kısmına bakınız.
390 <p>
391 Eğer herhangi bir şekilde kurulu bir paketin dosyalarına zarar verdiyseniz veya sadece
392 kurulu bir paketin yeniden indirilip tekrar kurulmasını istiyorsanız
393 <tt>--reinstall</tt> seçeneğini örnekteki gibi kullanmalısınız.
394
395 <p>
396 <example>
397 # apt-get --reinstall install gdm
398 Reading Package Lists... Done
399 Building Dependency Tree... Done
400 0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1 not upgraded.
401 Need to get 0B/182kB of archives. After unpacking 0B will be used.
402 Do you want to continue? [Y/n]
403 </example>
404
405 <p>
406 Bu yardım belgesinin yazımında APT versiyonu 0.5.3 idi. Eğer sisteminizde bu veya
407 daha üst versiyon APT varsa ek bazı fonksiyonlara sahipsiniz: paketleri belirli bir
408 dağıtım arşivinden <tt>apt-get install paket/dağıtım</tt> komutu ile kurabilir veya
409 <tt>apt-get install paket=versiyon</tt> komutu ile spesifik bir versiyonunu kurabilirsiniz.
410 Örneğin:
411 <p>
412 <example>
413 # apt-get install nautilus/unstable
414 </example>
415
416 <p>
417 komutu siz `stable' dağıtımla çalışıyor olsanız bile nautilus paketini `unstable' dağıtımından
418 kuracaktır. Dağıtım alanı için kabul edilen değerler <tt>stable</tt>, <tt>testing</tt>, ve
419 <tt>unstable</tt>'dır.
420 <p>
421 Hedef dağıtım seçerken <tt>-t</tt> anahtarını da kullanabilirsiniz, bu durumda <prgn>apt-get</prgn>
422 bağımlılıkları bu dağıtıma göre düzenleyecektir.
423 <p>
424 <em>ÖNEMLİ</em>: `unstable' dağıtım yeni Debian paketlerinin upload edildiği yerdir.
425 Çok sık güncellen bu arşiv yeni başlayanlar veya sisteminde kararlılık arayanlar tarafından
426 <em>kullanılmamalıdır</em>.
427 <p>
428 `testing' dağıtımı `unstable' dağıtımdan kararlılık anlamında çok daha iyidir, ancak kritik sistemlerde
429 mutlaka kararlı dağıtım kullanılmalıdır.
430 </sect>
431
432 <sect id="remove">Paket kaldırma
433 <p>
434 Bir paketi artık kullanmak istemiyorsanız APT ile sisteminizden paketi kaldırabilirsiniz.
435 Bunun için <tt>apt-get remove package</tt> komutunu vermeniz yeterli olacaktır. Örneğin:
436
437 <p>
438 <example>
439 # apt-get remove gnome-panel
440 Reading Package Lists... Done
441 Building Dependency Tree... Done
442 The following packages will be REMOVED:
443 gnome-applets gnome-panel gnome-panel-data gnome-session
444 0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
445 Need to get 0B of archives. After unpacking 14.6MB will be freed.
446 Do you want to continue? [Y/n]
447 </example>
448
449 <p>
450 Yukarıda da görüldüğü üzere APT kaldırılan pakete bağımlı olan paketler üzerinde de işlem
451 yapmaktadır. Yukarıdaki soruyu onayladığınızda listelenen tüm paketler kaldırılacaktır. APT
452 kullanarak bir paketi, o pakete bağımlı olan diğer paketleri kaldırmadan kaldırmanın :) bir yolu yoktur.
453 <p>
454 <prgn>apt-get</prgn>'in yukarıdaki gibi çalıştırılması sonrasında listelenen paketler sistemden
455 kaldırılacak ancak paketlere ait konfigürasyon dosyaları -eğer varsa- sistemde kalacaktır.
456 Konfigürasyon dosyaları ile birlikte paketleri tamamen kaldırmak için aşağıdaki komutu çalıştırın:
457
458 <p>
459 <example>
460 # apt-get --purge remove gnome-panel
461 Reading Package Lists... Done
462 Building Dependency Tree... Done
463 The following packages will be REMOVED:
464 gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
465 0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
466 Need to get 0B of archives. After unpacking 14.6MB will be freed.
467 Do you want to continue? [Y/n]
468 </example>
469
470 <p>
471 Burada isminden sonra '*' karakteri olan paketlere ait konfigürasyon dosyalarının da kaldırılacağını
472 anlıyoruz.
473 <p>
474 Kurulum <tt>install</tt> yönteminde olduğu gibi kaldırma <tt>remove</tt> işleminde de
475 aynı satırda kurmak istediğiniz paketleri belirtebilirsiniz. Bunun için kurulmasını istediğiniz paketin
476 sonuna <tt>'+'</tt> karakteri eklemeniz gereklidir.
477
478 <p>
479 <example>
480 # apt-get --purge remove gnome-panel nautilus+
481 Reading Package Lists... Done
482 Building Dependency Tree... Done
483 The following extra packages will be installed:
484 bonobo libmedusa0 libnautilus0 nautilus
485 The following packages will be REMOVED:
486 gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
487 The following NEW packages will be installed:
488 bonobo libmedusa0 libnautilus0 nautilus
489 0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
490 Need to get 8329kB of archives. After unpacking 2594kB will be used.
491 Do you want to continue? [Y/n]
492 </example>
493
494 <p>
495 <prgn>apt-get</prgn> burada kaldırma işleminin yanı sıra kurulmasını istediğimiz paketi ve
496 gerektirdiği diğer paketlerle birlikte listeler.
497 </sect>
498
499 <sect id="upgrade">Paket güncelleme
500 <p>
501 Paket güncellemeleri APT'nin çok başarılı olduğu bir işlemdir.
502 Tek bir <tt>apt-get upgrade</tt> komutu ile tüm paketlerin güncellenmesi sağlanabilmektedir.
503 Bu komutu, sisteminizdeki paketleri kullandığınız dağıtımdaki programların güncel sürümlerine
504 yükseltmek veya tümüyle yeni bir Debian sürümüne yükseltme yapmak amacıyla kullanabilirsiniz.
505 Dağıtım yükseltmeleri için önerilen yol <tt>apt-get dist-upgrade</tt> kullanılmasıdır;; ayrıntılar için
506 <ref id="dist-upgrade"> kısmına bakınız.
507
508 <p>
509 Komutun <tt>-u</tt> seçeneği ile çalıştırılması oldukça yararlıdır.
510 Bu seçeneğin kullanımıyla APT güncellenecek paketleri listeler.
511 APT paketlerin en son versiyonlarını indirecek ve gereken sırada kurulumu gerçekleştirecektir.
512 Böylesi bir güncelleme yapmadan önce <tt>apt-get update</tt> komutu ile paket listenizi de
513 güncellemeniz önemlidir. Aşağıdaki örneğe bakalım:
514 <p>
515 <example>
516 # apt-get -u upgrade
517 Reading Package Lists... Done
518 Building Dependency Tree... Done
519 The following packages have been kept back
520 cpp gcc lilo
521 The following packages will be upgraded
522 adduser ae apt autoconf debhelper dpkg-dev esound esound-common ftp indent
523 ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0 libesd0-dev
524 libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev liborbit0
525 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit procps psmisc
526 29 packages upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
527 Need to get 5055B/5055kB of archives. After unpacking 1161kB will be used.
528 Do you want to continue? [Y/n]
529 </example>
530
531 <p>
532 İşlem oldukça basittir. İlk bir kaç satırda <tt>apt-get</tt> bazı programların sistemde
533 tutulmaya devam edileceğini <tt>kept back</tt> söylemektedir. Bunun anlamı, listelenen programların
534 yeni versiyonları olmasına rağmen herhangi bir nedenden ötürü sisteminize kurulamayacak olmasıdır.
535 Büyük olasılıkla ilgili paketler, paket listenizde yer almayan paketlerin veya paket versiyonlarının
536 kurulmasını gerektirmekte, bu işlem yapılamayacağı için de paketler güncellenmemektedir. İkinci olası
537 neden, paketin yeni versiyonunun sisteminizde daha önce olmayan yeni bir pakete bağımlı olmadır.
538 <p>
539 Birinci senaryo için kesin bir çözüm yoktur. İkinci durumda problem yaratan paketi <tt>apt-get install</tt>
540 komutu ile kurarak sorunu çözebilirsiniz. Daha temiz bir yöntem ise <tt>dist-upgrade</tt> kullanmaktır,
541 bu sayede sistemde daha önce olmayan yeni paketler de kurulacaktır, bkz. <ref id="dist-upgrade">.
542 </sect>
543
544 <sect id="dist-upgrade">Yeni bir sürüme güncelleme
545 <p>
546 APT'nin bu özelliği sayesinde bir defada tüm sisteminizi yeni bir Debian sürümüne ister
547 internet üzerinden isterse varolan bir CD üzerinden yükseltebilirsiniz.
548 <p>
549 Ayrıca bu yöntem kurulu paketler arasındaki paket bağımlılıklarında değişmeler olduğunda da kullanılır.
550 <tt>apt-get upgrade</tt> ile yapılan güncellemelerde bu tür paketlere dokunulmaz.
551 <p>
552 Örnek olarak, Debian 0 sürümünü kullandığınızı düşünün, ve 3. sürümü içeren
553 bir CD edinmiş olun. APT'yi kullanarak sisteminizi bu CD üzerinden yeni sürüme güncelleyebilirsiniz.
554 Bunu yapmak için öncelikle <prgn>apt-cdrom</prgn> ile (bkz. <ref id="cdrom">) ile CD'yi
555 <tt>/etc/apt/sources.list</tt> dosyanıza ekleyin ve ardından <tt>apt-get dist-upgrade</tt>
556 komutunu çalıştırın.
557 <p>
558 Unutmayın, APT her zaman paketin güncel versiyonunu arar. Eğer <tt>/etc/apt/sources.list</tt> dosyanızda
559 belirtilen arşivlerde bir paketin CD üzerindekinden daha yeni bir versiyonu var ise güncelleme
560 sırasında bu versiyon kullanılacaktır.
561 <p>
562 <ref id="upgrade"> kısmındaki örneğimizde bazı paketlerin güncelleme sırasında korunduğunu
563 <tt>kept back</tt> görmüştük. Bu problemi şimdi <tt>dist-upgrade</tt> ile çözebiliriz:
564
565 <p>
566 <example>
567 # apt-get -u dist-upgrade
568 Reading Package Lists... Done
569 Building Dependency Tree... Done
570 Calculating Upgrade... Done
571 The following NEW packages will be installed:
572 cpp-2.95 cron exim gcc-2.95 libident libopenldap-runtime libopenldap1
573 libpcre2 logrotate mailx
574 The following packages have been kept back
575 lilo
576 The following packages will be upgraded
577 adduser ae apt autoconf cpp debhelper dpkg-dev esound esound-common ftp gcc
578 indent ipchains isapnptools libaudiofile-dev libaudiofile0 libesd0
579 libesd0-dev libgtk1.2 libgtk1.2-dev liblockfile1 libnewt0 liborbit-dev
580 liborbit0 libstdc++2.10-glibc2.2 libtiff3g libtiff3g-dev modconf orbit
581 procps psmisc
582 31 packages upgraded, 10 newly installed, 0 to remove and 1 not upgraded.
583 Need to get 0B/7098kB of archives. After unpacking 3118kB will be used.
584 Do you want to continue? [Y/n]
585 </example>
586
587 <p>
588 Görüldüğü gibi paketler hem güncellenecek hem de yeni bağımlılıklar için yeni paketler de kurulacaktır.
589 Ancak lilo paketi halen sistemde korunmaya devam etmektedir <tt>kept back</tt>. Muhtemelen
590 bağımlılık dışında daha ciddi bir problemi vardır. Problemin ne olduğunu aşağıdaki komutla
591 görebiliriz:
592 <p>
593 <example>
594 # apt-get -u install lilo
595 Reading Package Lists... Done
596 Building Dependency Tree... Done
597 The following extra packages will be installed:
598 cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
599 logrotate mailx
600 The following packages will be REMOVED:
601 debconf-tiny
602 The following NEW packages will be installed:
603 cron debconf exim libident libopenldap-runtime libopenldap1 libpcre2
604 logrotate mailx
605 The following packages will be upgraded
606 lilo
607 1 packages upgraded, 9 newly installed, 1 to remove and 31 not upgraded.
608 Need to get 225kB/1179kB of archives. After unpacking 2659kB will be used.
609 Do you want to continue? [Y/n]
610 </example>
611
612 <p>
613 Yukarıdaki belirtildiği üzere, lilo paketi <package>debconf-tiny</package>
614 paketi ile çakışmaktadır. Bunun anlamı, debconf-tiny paketi kaldırılmadan lilo paketinin
615 yüklenemeyeceği ve güncellenemeyeceğidir.
616 <p>
617 Korunan veya kaldırılan paketlerle ilgili daha detaylı bilgi almak için komutu aşağıdaki gibi
618 kullanabilirsiniz:
619
620 <p>
621 <example>
622 # apt-get -o Debug::pkgProblemResolver=yes dist-upgrade
623 Reading Package Lists... Done
624 Building Dependency Tree... Done
625 Calculating Upgrade... Starting
626 Starting 2
627 Investigating python1.5
628 Package python1.5 has broken dep on python1.5-base
629 Considering python1.5-base 0 as a solution to python1.5 0
630 Holding Back python1.5 rather than change python1.5-base
631 Investigating python1.5-dev
632 Package python1.5-dev has broken dep on python1.5
633 Considering python1.5 0 as a solution to python1.5-dev 0
634 Holding Back python1.5-dev rather than change python1.5
635 Try to Re-Instate python1.5-dev
636 Done
637 Done
638 The following packages have been kept back
639 gs python1.5-dev
640 0 packages upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
641 </example>
642
643 <p>
644 Burada açıkça görüldüğü gibi python1.5-dev paketi kurulamayacaktır çünkü python1.5 paketine
645 bağımlıdır. python1.5 kurulamadığı için python1.5-dev paketi de kurulamamaktadır.
646 </sect>
647
648 <sect id="clean">Kullanılmayan paket dosyalarını temizleme: apt-get clean ve autoclean
649 <p>
650 Bir paket kuracağınız zaman APT gerekli dosyaları /etc/apt/sources.list dosyanızda belirtilen
651 host'lardan alır ve yerel bir dizin (<file>/var/cache/apt/archives/</file>) altında saklar.
652 Ardından kurulumu buradaki dosyalar üzerinden gerçekleştirir, bkz. <ref id="install">.
653 <p>
654 Zamanla dosyaların tutulduğu yerel dizinin boyutları artmaya ve gereksiz yer kaplamaya
655 başlar. APT bu dizini temizlemek için bir takım fonksiyonlara sahiptir:
656 <prgn>apt-get</prgn>'in <tt>clean</tt> ve <tt>autoclean</tt> seçenekleri.
657 <p>
658 <prgn>apt-get clean</prgn> lock dosyaları haricinde <file>/var/cache/apt/archives/</file> ve
659 <file>/var/cache/apt/archives/partial/</file> dizinlerindeki tüm dosyları siler.
660 Sonuç olarak, eğer bir paketi yeniden kurmak isterseniz (--reinstall) APT gerekli dosyalara
661 artık sahip olmadığından, yeninden indirecektir.
662 <p>
663 <prgn>apt-get autoclean</prgn> ise sadece artık indirilmesi mümkün olmayan dosyaları siler.
664 <p>
665 Aşağıdaki örnek apt-get autoclean özelliğinin nasıl çalıştığını gösteriyor:
666
667 <p>
668 <example>
669 # ls /var/cache/apt/archives/logrotate* /var/cache/apt/archives/gpm*
670 logrotate_3.5.9-7_i386.deb
671 logrotate_3.5.9-8_i386.deb
672 gpm_1.19.6-11_i386.deb
673 </example>
674
675 <p>
676 /var/cache/apt/archives altında <package>logrotate</package> paketi için 2 dosya ve
677 <package>gpm</package> paketi için de bir 1 dosya bulunmaktadır.
678
679 <p>
680 <example>
681 # apt-show-versions -p logrotate
682 logrotate/stable uptodate 3.5.9-8
683 # apt-show-versions -p gpm
684 gpm/stable upgradeable from 1.19.6-11 to 1.19.6-12
685 </example>
686
687 <p>
688 <prgn>apt-show-versions</prgn> çıktısına baktığımızda
689 <file>logrotate_3.5.9-8_i386.deb</file> dosyasının <package>logrotate</package> paketi için
690 güncel versiyon olduğunu görüyoruz. Bu durumda <file>logrotate_3.5.9-7_i386.deb</file>
691 dosyası hiç bir işe yaramamaktadır. Ayrıca <file>gpm_1.19.6-11_i386.deb</file> dosyası da,
692 indirilebilecek daha güncel bir versiyonu olduğu için işe yaramamaktadır.
693
694 <p>
695 <example>
696 # apt-get autoclean
697 Reading Package Lists... Done
698 Building Dependency Tree... Done
699 Del gpm 1.19.6-11 [145kB]
700 Del logrotate 3.5.9-7 [26.5kB]
701 </example>
702
703 <p>Sonuçta, <tt>apt-get autoclean</tt> ile sadece eski ve işe yaramayacak dosyaların kaldırılmasını
704 sağlamış olduk, bkz. <ref id="apt-show-versions">.
705 </sect>
706
707 <sect id="dselect-upgrade">APT ile dselect kullanımı
708 <p>
709 <prgn>dselect</prgn>, kurulum için Debian paketleri seçebileceğiniz bir programdır.
710 Kullanımı oldukça karışık ve zor olduğundan yeni kullanıcılar bazen program içerisinde
711 yönlerini kaybedebilirler.
712 <p>
713 dselect'in özelliklerinden biri, Debian paketlerinin "şiddetle önerilen" ve "tavsiye edilen" paketlere
714 ait bilgilerini işleyebilmesidir ("recommending" ve "suggesting").
715 Programı çalıştırmak için root iken <tt>dselect</tt> komutunu verin.
716 Erişim yöntemleri menüsünden 'apt' seçimini yapın. Mutlaka gerekli olmamakla birlikte, eğer bir
717 CDROM kullanmıyor ve paket indirmek istiyorsanız erişim yöntemi olarak 'apt' kullanmalısınız.
718 <p>
719 dselect kullanımı hakkında ayrıntılı bilgi almak isterseniz dselect dokümantasyonunun
720 bulunduğu <url id="http://www.debian.org/doc/ddp" name="http://www.debian.org/doc/ddp"> adresini
721 ziyaret edebilirsiniz.
722 <p>
723 dselect ile seçimlerinizi yaptıktan sonra, aşağıdaki komutu çalıştırın:
724 <p>
725 <example>
726 # apt-get -u dselect-upgrade
727 </example>
728
729 <p>
730 Örnek:
731 <p>
732 <example>
733 # apt-get -u dselect-upgrade
734 Reading Package Lists... Done
735 Building Dependency Tree... Done
736 The following packages will be REMOVED:
737 lbxproxy
738 The following NEW packages will be installed:
739 bonobo console-tools-libs cpp-3.0 enscript expat fingerd gcc-3.0
740 gcc-3.0-base icepref klogd libdigest-md5-perl libfnlib0 libft-perl
741 libgc5-dev libgcc300 libhtml-clean-perl libltdl0-dev libsasl-modules
742 libstdc++3.0 metamail nethack proftpd-doc psfontmgr python-newt talk tidy
743 util-linux-locales vacation xbill xplanet-images
744 The following packages will be upgraded
745 debian-policy
746 1 packages upgraded, 30 newly installed, 1 to remove and 0 not upgraded.
747 Need to get 7140kB of archives. After unpacking 16.3MB will be used.
748 Do you want to continue? [Y/n]
749 </example>
750
751 <p>
752 Şimdi bu ekran çıktısını aynı sistemdeki apt-get dist-upgrade çıktısı ile karşılaştıralım:
753 <p>
754 <example>
755 # apt-get -u dist-upgrade
756 Reading Package Lists... Done
757 Building Dependency Tree... Done
758 Calculating Upgrade... Done
759 The following packages will be upgraded
760 debian-policy
761 1 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
762 Need to get 421kB of archives. After unpacking 25.6kB will be freed.
763 Do you want to continue? [Y/n]
764 </example>
765
766 <p>
767 Görüldüğü gibi dselect ile yapılan güncellemede yukarıdaki listede olmayan paketler de
768 yüklenmek üzere seçilmiştir. Çünkü güncellenecek olan paketlerin "şiddetle önerilen" ve
769 "tavsiye edilen" paketler alanları da incelenmiş, bu paketler listeye dahil edilmiştir.
770 Dselect APT ile birlikte kullanıldığında oldukça güçlü bir araçtır.
771 </sect>
772
773 <sect id="default-version">Karışık bir sistem nasıl kurulur?
774 <p>
775 Kullanıcılar sıklıkla testing dağıtımını da kullanırlar, çünkü testing dağıtımı, kararsız dağıtımdan
776 çok daha kararlı bir yapıya sahiptir ve kullanılabilir durumdadır. Bazı kullanıcılar ise
777 sistemlerindeki bazı paketlerin son versiyonlarını kullanmak isterler. Bu durumda testing/unstable
778 karışımı bir sistem oluşabilir. Gene aynı şekilde başka nedenlerden ötürü stable/testing karışımı
779 bir dağıtım da oluşturulabilir.
780 <p>
781 Bunu yapabilmek için aşağıdaki satırı <file>/etc/apt/apt.conf</file> dosyanıza ekleyin:
782
783 <p>
784 <example>
785 APT::Default-Release "testing";
786 </example>
787 <p>
788 Ardından, unstable dağıtımdan bir paket yüklemek istediğinizde
789 <tt>-t</tt> seçeneğini kullanın:
790
791 <p>
792 <example>
793 # apt-get -t unstable install <var>paket_adı</var>
794 </example>
795
796 <p>
797 Kullanacağınız her bir dağıtım için <file>/etc/apt/sources.list</file> dosyasına gerekli
798 kayıtları girmelisiniz. Bu örnekte dosyada <tt>unstable</tt> ve <tt>testing</tt> dağıtımı
799 için gerekli kayıtlar olmalıdır. Bu kayıtlar olmadan APT, ilgili dağıtımdaki bir pakete
800 ait bilgiye sahip olamaz.
801
802 </sect>
803
804 <sect id="apt-show-versions">Sadece belirli bir Debian versiyonuna sahip paketleri güncelleme
805
806 <p>
807 <prgn>apt-show-versions</prgn> programı, karışık bir sistem kullanan kullanıcıların sistemlerini
808 güncellemelerinde daha güvenli bir ortam sunar. Örneğin aşağıdaki gibi sadece sisteminizdeki
809 unstable paketleri güncelleyebilirsiniz:
810 <p>
811 <example>
812 # apt-get install `apt-show-versions -u -b | grep unstable`
813 </example>
814 </sect>
815
816 <sect id="pin">Belirli bir versiyona sahip paketlerin kurulu olarak kalmasını sağlama (ileri düzey)
817 <p>
818 Bazen çeşitli nedenlerden ötürü bir paketin mutlaka belirli bir versiyonu ile çalışmanız gerekebilir.
819 Güncelleme yaptığınızda ise paket yeni versiyonu ile değiştirileceğinden sorun çıkacaktır.
820 Örneğin sisteminizi Debian 3.0 sürümüne güncellemiş fakat belirli bir paketin Debian 2.2
821 sürümündeki halini kullanmaya devam etmek istiyor olabilirsiniz. Bu problemi çözmek için
822 paketlerinizi "pin"leyebilirsiniz.
823 <p>
824 Bu özelliği kullanmak oldukça kolaydır, tek yapmanız gereken
825 <tt>/etc/apt/preferences</tt> dosyasını düzenlemekten ibaret.
826 <p>
827 Dosyanın formatı şu şekildedir:
828 <p>
829 <example>
830 Package: &lt;paket_adı&gt;
831 Pin: &lt;pin tanımlaması&gt;
832 Pin-Priority: &lt;pin önceliği&gt;
833 </example>
834 <p>
835 Örnek olarak, <package>sylpheed</package> paketinin 0.4.99 versiyonunu korumak isterseniz aşağıdaki
836 kayıtı buraya ekleyebilirsiniz:
837 <p>
838 <example>
839 Package: sylpheed
840 Pin: version 0.4.99*
841 </example>
842 <p>
843 Buradaki <tt>*</tt> kullanımına dikkat! Bu karakter ile girdiğimiz pin değerinin tüm 0.4.99
844 ile başlayan versiyonlar için geçerli olduğunu belirtebiliyoruz.
845 Bu sayede program versiyonunun yanı sıra paketin Debian paket versiyonunun değişmesi durumunda da koyduğunuz
846 kurallar geçerli olur, örneğin 0.4.99-1 versiyonu ile 0.4.99-10 versiyonu.
847 <p>
848 <tt>Pin-Priority</tt> alanı seçime bağlıdır, girilmediği takdirde öntanımlı değeri 989'dur.
849 <p>
850 Şimdi de pin önceliklerinin nasıl çalıştığına bakalım. 0 değerinden daha küçük bir önceliğin
851 anlamı paketin hiç bir zaman kurulamayacağıdır. 0 ile 100 arasındaki öncelikler paketin kurulmadığını
852 ve erişilebilir yeni versiyonu olmadığını belirtir. 100 öncelik değeri kurulu olan pakete tanımlanır,
853 paketin kurulu versiyonu yeni bir versiyon ile değiştirilebilir, fakat yeni versiyonun 100'den daha
854 büyük bir önceliğe sahip olması gereklidir.
855 <p>
856 Öncelik değeri 100'den büyükse paket kurulmalıdır. Tipik olarak paketin kurulu versiyonu sadece
857 daha yeni bir versiyona güncelleme ile değişir. Böyle bir önceliğe sahip paket, daha düşük
858 versiyonu ile değiştirilemez (downgrade). Örneğin, eğer sylpheed 0.5.3 versiyonu kurulu ve
859 sylpheed 0.4.99 versiyonu için önceliği 999 olan bir pin tanımlı ise, 0.4.99 paketi bu pin
860 dolayısıyla <em>kurulamayacaktır</em>. Bir paketin eski versiyonları ile değiştirilebilir olmasını
861 pin değerleri de gözönüne alınarak sağlamak için ("downgradable") öncelik değeri 1000'den büyük
862 hale getirilmelidir.
863 <p>
864 Bir pin değeri paketin <tt>versiyonu</tt>, <tt>sürümü</tt> ve <tt>adına</tt> göre verilebilir.
865 <p>
866 Yukarıda gördüğümüz gibi <tt>versiyona</tt> pin değeri vermede versiyon numaraları ve özel karakterler
867 kullanılır.
868 <!-- what's available? standard shell globs? ?*[] or more? -->
869 <p>
870 <tt>Sürüme</tt> pin değeri verme işlemi APT'nin kullandığı arşivlerdeki veya CD'deki Release
871 dosyası ile ilişkilidir. Eğer kullandığınız arşivler Release dosyasını sağlamıyorsa bu
872 özellik kullanılamaz. Release dosyanızın içeriğini <tt>/var/lib/apt/lists/</tt> dizini altından
873 görebilirsiniz. Sürüm için kullanılabilecek parametreler
874 <tt>a</tt> (arşiv), <tt>c</tt> (components, bölüm), <tt>v</tt> (versiyon),
875 <tt>o</tt> (origin, kaynak) ve <tt>l</tt> (label, etiket) tir.
876 <p>
877 Örnek:
878 <p>
879 <example>
880 Package: *
881 Pin: release v=2.2*,a=stable,c=main,o=Debian,l=Debian
882 Pin-Priority: 1001
883 </example>
884 <p>
885 Bu örnekte Debian 2.2* versiyonlarını (2.2r2, 2.2r3 vb.), <tt>kararlı, stable</tt> arşivi
886 <tt>main</tt> bölümü (<tt>contrib</tt> veya <tt>non-free</tt> de olabilirdi), kaynak ve etiket olarak
887 Debian'ı seçtik. Kaynak (o=) Release dosyasını kimin ürettiğini belirtir, etiket (l=) ise
888 dağıtımın ismidir (Debian dağıtımı için etiket Debian iken Progeny için Progeny'dir). Örnek
889 bir Release dosyasının içeriği aşağıdadır:
890 <p>
891 <example>
892 $ cat /var/lib/apt/lists/ftp.debian.org.br_debian_dists_potato_main_binary-i386_Release
893 Archive: stable
894 Version: 2.2r3
895 Component: main
896 Origin: Debian
897 Label: Debian
898 Architecture: i386
899 </example>
900 </sect>
901 </chapt>
902
903 <chapt id="helpers">Yardımcı araçlar
904 <sect id="equivs">Kendi derlediğim paketleri nasıl kuracağım: equivs
905 <p>
906 Bazen bir programın belirli bir versiyonunu kullanmak zorunda kalabiliriz. Bu versiyona ait
907 bir Debian paketi mevcut değil ise, programı kaynak koddan derleyerek kendimiz kurarız.
908 Fakat paket yönetim sistemi bu durumda şaşırabilir.
909 Mesela kullandığınız mail sunucu yazılımının yeni bir versiyonunu derlediğinizi düşünün.
910 Burada problem yok, ancak pek çok Debian paketi sistemde bir MTA (Mail Transport Agent) yazılımı
911 olmasını gerektirir. Mail sunucunuzu kendiniz derleyerek kurduğunuz için paket yönetim sistemi
912 bundan haberdar değildir ve bağımlılık hataları oluşur.
913 <p>
914 Burada <package>equivs</package> programı devreye girmektedir. Programı kurmak için aynı isimli
915 paketi sisteminize kurmalısınız. Bu program ile boş bir paket yaratıp, bağımlılık problemlerini
916 çözebilir ve paket yönetim sisteminin içini rahatlatabilirsiniz.
917 <p>
918 Başlamadan önce hatırlatmak isteriz ki, Debian için zaten paketi hazırlanmış bir programı farklı
919 derleme seçenekleriyle derlemenin daha güvenli ve uygun yolları vardır. Eğer ne yaptığınızı
920 tam olarak bilmiyorsanız equivs kullanmayınız. Ayrıntılı bilgi için bkz. <ref id="sourcehandling">.
921
922 <p>
923 MTA örneğimize kaldığımız yerden devam edelim. Yeni derlemiş olduğunuz <prgn>postfix</prgn> programını
924 sisteminize kurdunuz ve ardından <package>mutt</package> paketini kurmak istediniz. Fakat
925 <package>mutt</package> paketinin başka bir MTA kurulmasını gerektirdiğini gördünüz ama zaten
926 sisteminizde bir MTA var !
927 <p>
928 Herhangi bir dizine geçip (örneğin <file>/tmp</file>) aşağıdaki komutu çalıştırın:
929
930 <p>
931 <example>
932 # equivs-control <var>isim</var>
933 </example>
934
935 <p>
936 <var>isim</var> değerini oluşturmak istediğiniz control dosyasının adı ile değiştiriniz.
937 Ardından dosya aşağıdaki şekilde oluşturulacaktır:
938
939 <p>
940 <example>
941 Section: misc
942 Priority: optional
943 Standards-Version: 3.0.1
944
945 Package: &lt;enter package name; defaults to equivs-dummy&gt;
946 Version: &lt;enter version here; defaults to 1.0&gt;
947 Maintainer: &lt;your name and email address; defaults to username&gt;
948 Pre-Depends: &lt;packages&gt;
949 Depends: &lt;packages&gt;
950 Recommends: &lt;packages&gt;
951 Suggests: &lt;package&gt;
952 Provides: &lt;(virtual)package&gt;
953 Architecture: all
954 Copyright: &lt;copyright file; defaults to GPL2&gt;
955 Changelog: &lt;changelog file; defaults to a generic changelog&gt;
956 Readme: &lt;README.Debian file; defaults to a generic one&gt;
957 Extra-Files: &lt;additional files for the doc directory, comma separated&gt;
958 Description: &lt;short description; defaults to some wise words&gt;
959 long description and info
960 .
961 second paragraph
962 </example>
963
964 <p>
965 Bu dosyayı kendi isteğimize göre değiştirebiliriz. Tüm alanları açıklamaya şimdilik burada gerek
966 yok, hemen amacımızı gerçekleştirelim:
967
968 <p>
969 <example>
970 Section: misc
971 Priority: optional
972 Standards-Version: 3.0.1
973
974 Package: mta-local
975 Provides: mail-transport-agent
976 </example>
977
978 <p>
979 Evet, hepsi bundan ibaret. <package>mutt</package> paketi sistemde <package>mail-transport-agent</package>
980 paketi olmasını gerektirir. Bu sanal bir pakettir ve tüm MTA'lar tarafından sağlanır.
981 Aynı davranış için paket ismi olarak doğrudan <package>mail-transport-agent</package> seçebilirdik,
982 ancak sanal paket kavramını ve Provides alanını kullanarak bunu gerçekleştirdik.
983 <p>
984 Şimdi yapmanız gereken paketi oluşturmaktır:
985 <p>
986 <example>
987 # equivs-build <var>isim</var>
988 dh_testdir
989 touch build-stamp
990 dh_testdir
991 dh_testroot
992 dh_clean -k
993 # Add here commands to install the package into debian/tmp.
994 touch install-stamp
995 dh_testdir
996 dh_testroot
997 dh_installdocs
998 dh_installchangelogs
999 dh_compress
1000 dh_fixperms
1001 dh_installdeb
1002 dh_gencontrol
1003 dh_md5sums
1004 dh_builddeb
1005 dpkg-deb: building package `<var>isim</var>' in `../<var>isim</var>_1.0_all.deb'.
1006
1007 The package has been created.
1008 Attention, the package has been created in the current directory,
1009 </example>
1010
1011 <p>
1012 Ve sonra üretilen <tt>.deb</tt> paketini sisteminize kurmalısınız.
1013 <p>
1014 Gördüğünüz gibi <prgn>equivs</prgn> programının kullanılabileceği pek çok durum vardır.
1015 Örneğin <tt>favorilerim</tt> adlı bir paket oluşturabilir ve bu paketin sıklıkla kullandığınız
1016 paketlere bağımlı olmasını sağlayabilirsiniz (Depends alanı ile). Ardından bu paketi sisteminize
1017 kurup, bağımlılık verdiğiniz diğer tüm paketlerin de kurulmasını sağlamış olursunuz.
1018 <p>
1019 Örnek control dosyaları için
1020 <file>/usr/share/doc/equivs/examples</file> dizini altına bakabilirsiniz.
1021 </sect>
1022
1023 <sect id="localepurge">Kullanılmayan yerelleştirme dosyalarını kaldırma: localepurge
1024 <p>
1025 Çoğu Debian kullanıcısı sadece bir tip yerel dosyası kullanır. Örneğin bir Türk genellikle
1026 <tt>tr_TR</tt> yerelini kullanır ve hemen hiç bir zaman <tt>es</tt> kullanma ihtiyacı hissetmez.
1027 <p>
1028 <package>localepurge</package> paketi bu kullanıcılar için oldukça faydalıdır.
1029 Kullanmadığınız yerellerin sisteminizden kaldırılmasını ve yenilerinin de kurulmamasını sağlayarak
1030 disk üzerinde size yer kazandırır. Yapmanız gerekeni biliyorsunuz:
1031 <tt>apt-get install localepurge</tt>
1032 <p>
1033 Paketin ayarlamaları oldukça kolaydır, debconf tarafından ilgili sorular size yöneltilecektir.
1034 Ancak ilk soruya cevap verirken dikkatli olun, yanlış bir seçim sonucu kullandığınız yerel
1035 dosyalarının silinmesine neden olabilirsiniz. Bu durumda tek çözüm, ilgili yerel dosyalarını
1036 içeren paketleri sisteminize yeniden kurmak olacaktır.
1037 </sect>
1038
1039 <sect id="helper-show-versions">Güncellenebilir paketleri nasıl öğrenebilirim?
1040 <p>
1041 <prgn>apt-show-versions</prgn> programı sisteminizde güncellenmeye müsait olan paketler hakkında
1042 faydalı bilgiler sunar. <tt>-u</tt> seçeneği ile güncellenebilir paketlerin listesini
1043 alabilirsiniz:
1044
1045 <p>
1046 <example>
1047 $ apt-show-versions -u
1048 libeel0/unstable upgradeable from 1.0.2-5 to 1.0.2-7
1049 libeel-data/unstable upgradeable from 1.0.2-5 to 1.0.2-7
1050 </example>
1051 </sect>
1052
1053 </chapt>
1054
1055 <chapt id="search">Paketler hakkında bilgi toplama
1056 <p>
1057 Paketler hakkında bilgi toplamak için APT sisteminin üzerinde çalışan programlar bulunmaktadır.
1058 <p>
1059 Fakat burada amacımız APT ile aynı bilgilere nasıl erişebileceğinizi sizlere anlatmaktır.
1060 Mesela, kurmak istediğiniz programın paket adını nasıl öğrenebiliriz?
1061 <p>
1062 Bu amaç için birkaç yardımcı araca sahibiz. Önce <tt>apt-cache</tt> ile başlayalım.
1063 Bu program APT sistemi tarafından kendi özel veritabanını yönetmede kullanılır.
1064 Şimdi pratik kullanımda uygulanmasına geçelim.
1065
1066 <sect id="cache">Paket isimlerini keşfetme
1067 <p>
1068 Örneğin, eski iyi günleri hatırladınız, Atari 2600 günlerinizi... Ve bir Atari emülator programı
1069 kurmak için APT'yi kullanmak istiyorsunuz ancak kurmanız gereken paketin ismini bilmiyorsunuz.
1070 Yapmanız gereken:
1071
1072 <p>
1073 <example>
1074 # apt-cache search atari
1075 atari-fdisk-cross - Partition editor for Atari (running on non-Atari)
1076 circuslinux - The clowns are trying to pop balloons to score points!
1077 madbomber - A Kaboom! clone
1078 tcs - Character set translator.
1079 atari800 - Atari emulator for svgalib/X/curses
1080 stella - Atari 2600 Emulator for X windows
1081 xmess-x - X binaries for Multi-Emulator Super System
1082 </example>
1083
1084 <p>
1085 Gördüğünüz gibi arama sonucumuzda birkaç paket kısa açıklamalarıyla birlikte listelendi. Herhangi biri
1086 hakkında daha ayrıntılı bilgi almak istersek kullanacağımız komut:
1087
1088 <p>
1089 <example>
1090 # apt-cache show stella
1091 Package: stella
1092 Priority: extra
1093 Section: non-free/otherosfs
1094 Installed-Size: 830
1095 Maintainer: Tom Lear &lt;tom@trap.mtview.ca.us&gt;
1096 Architecture: i386
1097 Version: 1.1-2
1098 Depends: libc6 (&gt;= 2.1), libstdc++2.10, xlib6g (&gt;= 3.3.5-1)
1099 Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb
1100 Size: 483430
1101 MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5
1102 Description: Atari 2600 Emulator for X windows
1103 Stella is a portable emulator of the old Atari 2600 video-game console
1104 written in C++. You can play most Atari 2600 games with it. The latest
1105 news, code and binaries for Stella can be found at:
1106 http://www4.ncsu.edu/~bwmott/2600
1107 </example>
1108
1109 <p>
1110 Bu defaki ekran çıktısında paket hakkında daha ayrıntılı bilgi var ve bu bilgiler doğrultusunda
1111 paketi kurmak isteyip istemediğimize karar verebiliriz. Eğer paket sisteminizde kurulu fakat
1112 yeni bir versiyonu mevcut ise, her iki versiyon hakkındaki bilgiler listelenecektir. Örnek:
1113
1114 <p>
1115 <example>
1116 # apt-cache show lilo
1117 Package: lilo
1118 Priority: important
1119 Section: base
1120 Installed-Size: 271
1121 Maintainer: Russell Coker &lt;russell@coker.com.au&gt;
1122 Architecture: i386
1123 Version: 1:21.7-3
1124 Depends: libc6 (&gt;= 2.2.1-2), debconf (&gt;=0.2.26), logrotate
1125 Suggests: lilo-doc
1126 Conflicts: manpages (&lt;&lt;1.29-3)
1127 Filename: pool/main/l/lilo/lilo_21.7-3_i386.deb
1128 Size: 143052
1129 MD5sum: 63fe29b5317fe34ed8ec3ae955f8270e
1130 Description: LInux LOader - The Classic OS loader can load Linux and others
1131 This Package contains lilo (the installer) and boot-record-images to
1132 install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
1133 .
1134 You can use Lilo to manage your Master Boot Record (with a simple text screen)
1135 or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
1136
1137 Package: lilo
1138 Status: install ok installed
1139 Priority: important
1140 Section: base
1141 Installed-Size: 190
1142 Maintainer: Vincent Renardias &lt;vincent@debian.org&gt;
1143 Version: 1:21.4.3-2
1144 Depends: libc6 (&gt;= 2.1.2)
1145 Recommends: mbr
1146 Suggests: lilo-doc
1147 Description: LInux LOader - The Classic OS loader can load Linux and others
1148 This Package contains lilo (the installer) and boot-record-images to
1149 install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
1150 .
1151 You can use Lilo to manage your Master Boot Record (with a simple text screen)
1152 or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
1153 </example>
1154
1155 <p>
1156 Burada ilk sırada yeni versiyona ait bilgiler, ikinci sırada ise zaten sisteminizde kurulu olan
1157 versiyona ait bilgiler listelenir. Bir paket hakkında daha genel bilgi edinmek için aşağıdaki
1158 komutu kullanabilirsiniz:
1159
1160 <p>
1161 <example>
1162 # apt-cache showpkg penguin-command
1163 Package: penguin-command
1164 Versions:
1165 1.4.5-1(/var/lib/apt/lists/download.sourceforge.net_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/status)
1166
1167 Reverse Depends:
1168 Dependencies:
1169 1.4.5-1 - libc6 (2 2.2.1-2) libpng2 (0 (null)) libsdl-mixer1.1 (2 1.1.0) libsdl1.1 (0 (null)) zlib1g (2 1:1.1.3)
1170 Provides:
1171 1.4.5-1 -
1172 Reverse Provides:
1173 </example>
1174
1175 <p>
1176 Bir paketin bağımlı olduğu paketlerin listesini almak için:
1177
1178 <p>
1179 <example>
1180 # apt-cache depends penguin-command
1181 penguin-command
1182 Depends: libc6
1183 Depends: libpng2
1184 Depends: libsdl-mixer1.1
1185 Depends: libsdl1.1
1186 Depends: zlib1g
1187 </example>
1188
1189 <p>
1190 Özetle, aradığımız paket adını bulmak için bir kaç silaha sahibiz.
1191 </sect>
1192
1193 <sect id="dpkg-search">Paket adlarını bulmak için dpkg kullanma
1194 <p>
1195 Paket adını bulmada diğer bir yöntem de o paket tarafından kullanıldığını bildiğiniz bir dosyadan
1196 hareket etmektir. Örneğin belirli bir <tt>".h"</tt> dosyasını içerdiğini bildiğiniz paketin ismini
1197 aşağıdaki gibi bulabilirsiniz:
1198
1199 <p>
1200 <example>
1201 # dpkg -S stdio.h
1202 libc6-dev: /usr/include/stdio.h
1203 libc6-dev: /usr/include/bits/stdio.h
1204 perl: /usr/lib/perl/5.6.0/CORE/nostdio.h
1205 </example>
1206
1207 <p>
1208 veya:
1209 <p>
1210 <example>
1211 # dpkg -S /usr/include/stdio.h
1212 libc6-dev: /usr/include/stdio.h
1213 </example>
1214
1215 <p>
1216 Eğer sisteminize kurulu bir paketin tam ismini öğrenmek isterseniz aşağıdaki komut
1217 işinizi görecektir:
1218 <p>
1219 <example>
1220 # dpkg -l | grep mozilla
1221 ii mozilla-browse 0.9.6-7 Mozilla Web Browser
1222 </example>
1223 <p>
1224 Bu komut paket isimlerini belirli bir uzunluktan sonra kesmektedir. Yukarıdaki örnekte
1225 paketin tam ismi <tt>mozilla-browser</tt>'dır. Bu problemi gidermek için <tt>COLUMNS</tt>
1226 çevresel değişkenini aşağıdaki gibi ayarlamalısınız:
1227
1228 <p>
1229 <example>
1230 [kov]@[couve] $ COLUMNS=132 dpkg -l | grep mozilla
1231 ii mozilla-browser 0.9.6-7 Mozilla Web Browser - core and browser
1232 </example>
1233
1234 <p>
1235 veya açıklamasından yola çıkarak paket adını elde edebilirsiniz:
1236 <p>
1237 <example>
1238 # apt-cache search "Mozilla Web Browser"
1239 mozilla-browser - Mozilla Web Browser
1240 </example>
1241 </sect>
1242
1243 <sect id="auto-apt">Programları anında kurma
1244 <p>
1245 Bir program derliyorsunuz ve aniden bir hata oluştu! Çünkü program sisteminizde olmayan
1246 bir <tt>.h</tt> dosyasına ihtiyaç duyuyor. <prgn>auto-apt</prgn> programı sizi bu senaryolardan
1247 kurtaracaktır. Gerektiğinde ilgili paketi kurmak isteyip istemediğinizi soracak, derleme işlemini
1248 durduracak ve programı çekip kurduktan sonra derleme işleminin devam etmesini sağlayacaktır.
1249 <p>
1250 Peki nasıl yapacaksınız:
1251
1252 <p>
1253 <example>
1254 # auto-apt run komut
1255 </example>
1256
1257 <p>
1258 Burada komut yerine derleme için kullanacağınız komutu yazmalısınız.
1259 <p>
1260 <example>
1261 # auto-apt run ./configure
1262 </example>
1263
1264 <p>
1265 Ardından gerekli paketleri kurmak isteyip istemediğinizi soracak, apt-get'i çağırarak kurulumları
1266 otomatik olarak gerçekleştirecektir.
1267 <p>
1268 Auto-apt programı efektif olarak çalışabilmek için kendi özel veritabanını tutar. Bu veritabanının
1269 güncel tutulması programın beklenilen davranışı gösterebilmesi açısından önemlidir. Veritabanını
1270 güncellemek için <tt>auto-apt update</tt>, <tt>auto-apt updatedb</tt> ve
1271 <tt>auto-apt update-local</tt> komutlarını çalıştırmalısınız.
1272
1273 </sect>
1274
1275 <sect id="apt-file">Bir dosyanın hangi pakete ait olduğunu bulma
1276 <p>
1277 Bir paketi kurdunuz ancak <prgn>apt-cache</prgn> ile nasıl çağıracağınızı bilmiyorsunuz.
1278 Fakat programın dosya adını biliyorsunuz, veya paketten çıkan başka herhangi bir dosyanın adını
1279 bilmektesiniz. Bu durumda <prgn>apt-file</prgn> programı ile paket adını bulabilirsiniz:
1280 <p>
1281 <example>
1282 $ apt-file search <var>dosya_adı</var>
1283 </example>
1284
1285 <p>
1286 Bu komut aynı <tt>dpkg -S</tt> gibi çalışır ancak ayrıca verdiğiniz dosyayı içermesine rağmen
1287 sisteminizden sonradan kaldırılmış olan paketleri de listeler.
1288 <p>
1289 Bir paketin içeriğini aşağıdaki komutla listeleyebilirsiniz:
1290
1291 <p>
1292 <example>
1293 $ apt-file list <var>paket_adı</var>
1294 </example>
1295
1296 <p>
1297 <prgn>apt-file</prgn> tüm paketler hakkında içerdikleri dosyalara ilişkin kayıtları tutar.
1298 Aynı auto-apt'de olduğu gibi bu veritabanının da zamanla güncellenmesi gereklidir:
1299 <p>
1300 <example>
1301 # apt-file update
1302 </example>
1303
1304 <p>
1305 Öntanımlı olarak <prgn>apt-file</prgn> <prgn>auto-apt</prgn> ile aynı kaynağı kullanır, bkz.
1306 <ref id="auto-apt">.
1307
1308 </sect>
1309
1310 <sect id="apt-listchanges">Paketlerdeki değişikliklerden haberdar olma
1311 <p>
1312 Sisteminize kurulan her paket kendi dokümantasyon dizini altına
1313 (<tt>/usr/share/doc/paket_adı</tt>)
1314 <tt>changelog.Debian.gz</tt> adlı bir dosya atar. Bu dosyada ilk versiyondan son versiyona
1315 kadar paket üzerinde yapılan değişiklikler belirtilir. Bu dosyayı <tt>zless</tt> ile
1316 okuyabilirsiniz
1317 ancak tüm paketleri bu şekilde takip etmek epey güç bir uğraştır.
1318 <p>
1319 Bu işi otomatik hale getirmek için yardımcı bir araç mevcuttur:
1320 <prgn>apt-listchanges</prgn>. Programı kullanmak için önce <package>apt-listchanges</package>
1321 paketini sisteminize kurmalısınız. Kurulum esnasında Debconf tarafından sorulan soruları
1322 istediğiniz
1323 gibi yanıtlayabilirsiniz.
1324 <p>
1325 "Should apt-listchanges be automatically run by apt?" seçeneği oldukça yararlıdır, bu
1326 seçenek
1327 ile paket kurulum ve güncellemelerinde, paketteki değişiklikleri görebilirsiniz.
1328 "Should apt-listchanges prompt for confirmation after
1329 displaying changes?" seçeneği ile değişiklikleri okuduktan sonra programın kurulumu işlemine onay
1330 istenmesini sağlayabilirsiniz. Eğer devam etmek istemediğinizi söylerseniz apt-listchanges
1331 bir hata
1332 kodu döndürür ve apt-get işlemi sonlandırır.
1333 </sect>
1334 </chapt>
1335
1336 <chapt id="sourcehandling">Kaynak paketlerle çalışma
1337 <sect id="source">Kaynak paketleri indirme
1338 <p>
1339 Özgür yazılım dünyasında kaynak kodlar üzerinde çalışma, hata bulma ve düzeltme oldukça
1340 yaygındır.
1341 Bunu yapabilmek için programın kaynak kodlarını indirmeniz gereklidir.
1342 APT sistemi, dağıtım içerisinde yer alan paketlerin kaynak kodlarını, .deb paketi
1343 oluşturulabilmesi için yapılan değişiklikleri de içerecek şekilde indirmenizi sağlayacak
1344 fonksiyonlara sahiptir.
1345
1346 <p>
1347 Debian kaynak paketlerinin kullanılmasının gerektiği diğer bir durum ise, belirli bir
1348 paketin
1349 unstable dağıtımdaki versiyonunu stable dağıtım için yeniden hazırlamak istediğiniz durumdur.
1350 Bir paketi stable dağıtım için oluşturduğunuzda bağımlılıklar da stable dağıtıma göre
1351 düzenlenir.
1352 <p>
1353 Bunun için <tt>/etc/apt/sources.list</tt> dosyanızda ilgili <tt>deb-src</tt> satırlarının
1354 bulunması gereklidir. Ayrıntı için bkz. <ref id="sources.list">.
1355 <p>
1356 Bir kaynak paketi indirmek için aşağıdaki komutu kullanınız:
1357
1358 <p>
1359 <example>
1360 $ apt-get source paket_adı
1361 </example>
1362 <p>
1363 Bu komut üç dosyanın indirilmesini sağlayacaktır: bir <tt>.orig.tar.gz</tt>, bir
1364 <tt>.dsc</tt> ve
1365 bir de <tt>.diff.gz</tt>. Eğer paket Debian'a özgü ise, son iki dosya indirilmez ve dosya
1366 adı
1367 büyük olasılıkla orig ön-ekini içermez.
1368 <p>
1369 <tt>.dsc</tt> dosyası dpkg-source tarafından kaynak paketi <var>paket_adı-versiyon</var>
1370 dizini altına açmak için kullanılır. İndirilen her bir debian kaynak paketi açıldıktan
1371 sonra,
1372 <tt>debian</tt> adında bir dizin içerir. Bu dizinde .deb paketini oluşturmak için yapılan
1373 tüm
1374 değişiklikler bulunmaktadır.
1375 <p>
1376 Kaynak paket indirildikten hemen sonra .deb paketinin oluşturulmasını istiyorsanız
1377 auto-build
1378 seçeneği işinize yarayacaktır. Bunun için komutu <tt>-b</tt> anahtarı ile
1379 aşağıdaki gibi kullanmalısınız:
1380 <p>
1381 <example>
1382 $ apt-get -b source paket_adı
1383 </example>
1384
1385 <p>
1386 Eğer indirdikten hemen sonra yerine daha ileriki zamanlarda .deb paketini oluşturmak
1387 isterseniz
1388 aşağıdaki komutla bunu yapabilirsiniz:
1389
1390 <p>
1391 <example>
1392 $ dpkg-buildpackage -rfakeroot -uc -b
1393 </example>
1394
1395 <p>
1396 Bu komutu kaynak paketin açıldığı dizin içerisindeyken çalıştırmalısınız. İşlem sonunda
1397 üretilen paketi aşağıdaki gibi sisteminize kurabilirsiniz:
1398 <p>
1399 <example>
1400 # dpkg -i <var>paket.deb</var>
1401 </example>
1402
1403 <p>
1404 <prgn>apt-get</prgn>'in <tt>source</tt> fonksiyonu ile diğerleri arasında birtakım farklar
1405 bulunmaktadır. Burada paketin indirilebilmesi için root kullanıcısı olunmasına gerek yoktur,
1406 indirilen paketler o an bulunulan dizin içerisine açılırlar.
1407 </sect>
1408
1409 <sect id="build-dep">Kaynak paketleri derlemek için gerekli paketler
1410 <p>
1411 Doğal olarak derleyeceğiniz programın ihtiyaç duyduğu kütüphanelerin sisteminizde bulunması
1412 zorunludur. Tüm kaynak paketler debian/control dosyalarında 'Build-Depends:' adlı bir alana
1413 sahiptir, bu alanda paketin kaynak koddan derlenebilmesi için ihtiyaç duyduğu paketler belirtilir.
1414 <p>
1415 APT bu paketleri kolayca indirmek ve kurmak için gerekli fonksiyona sahiptir.
1416 <tt>apt-get build-dep paket_adı</tt> komutu ile derlemek istediğiniz paketin
1417 Build-Depends alanında belirtilen paketlerin sisteminize kurulması sağlanır.
1418
1419 <p>
1420 <example>
1421 # apt-get build-dep gmc
1422 Reading Package Lists... Done
1423 Building Dependency Tree... Done
1424 The following NEW packages will be installed:
1425 comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev libgnorba-dev
1426 libgpmg1-dev
1427 0 packages upgraded, 7 newly installed, 0 to remove and 1 not upgraded.
1428 Need to get 1069kB of archives. After unpacking 3514kB will be used.
1429 Do you want to continue? [Y/n]
1430 </example>
1431
1432 <p>
1433 Burada <package>gmc</package> paketinin kaynak halinden derlenebilmesi için gerekli paketler
1434 sisteme kurulmaktadır. Bu komutun kaynak paketi indirmediğini unutmayın, kaynak paketi
1435 <tt>apt-get source</tt> ile ayrıca indirmelisiniz.
1436 <p>
1437 Eğer amacınız belirli bir kaynak paketi derleyebilmek için gereken paketlerin listesini
1438 almak
1439 ise bunun için <tt>apt-cache show</tt> türevi bir komut kullanılır, bkz. <ref id="search">.
1440 <p>
1441 <example>
1442 # apt-cache showsrc <var>paket_adı</var>
1443 </example>
1444
1445 </sect>
1446 </chapt>
1447
1448 <chapt id="erros">Hatalarla başa çıkma
1449 <sect id="erros-comuns">Genel hatalar
1450 <p>
1451 Hatalı durumlar her zaman olabilir, hataların çoğu basit bir şekilde düzeltilebilecek
1452 türdendir.
1453 Aşağıda sıklıkla karşılaşılan hatalar ve çözüm yöntemlerinin bir listesi verilmiştir:
1454 <p>
1455 Eğer <tt>apt-get install paket_adı</tt> komutunun ardından aşağıdaki gibi bir çıktı
1456 aldıysanız...
1457
1458 <p>
1459 <example>
1460 Reading Package Lists... Done
1461 Building Dependency Tree... Done
1462 W: Couldn't stat source package list 'http://people.debian.org unstable/ Packages' (/var/state/apt/lists/people.debian.org_%7ekov_debian_unstable_Packages) - stat (2 No such file or directory)
1463 W: You may want to run apt-get update to correct these missing files
1464 E: Couldn't find package penguineyes
1465 </example>
1466
1467 <p>
1468 <tt>/etc/apt/sources.list</tt> dosyasında yaptığınız son değişiklikten sonra
1469 <tt>apt-get update</tt> komutunu çalıştırmayı unutmuşsunuz demektir.
1470 <p>
1471 Eğer hata aşağıdakine benzer ise:
1472 <p>
1473 <example>
1474 E: Could not open lock file /var/lib/dpkg/lock - open (13 Permission denied)
1475 E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
1476 </example>
1477
1478 <p>
1479 <prgn>apt-get</prgn>'in <tt>source</tt> dışında bir fonksiyonu normal kullanıcı
1480 haklarıyla kullanmaya çalışıyorsunuzdur.
1481 <p>
1482 Benzer bir hatayı, aynı anda birden fazla <prgn>apt-get</prgn> programını çalıştırmanız
1483 durumunda
1484 ya da <prgn>dpkg</prgn> programı işlem yaparken APT kullanmaya çalışmanız durumunda
1485 alabilirsiniz.
1486 Aynı anda kullanılabilecek tek fonksiyon <tt>source</tt>'tır.
1487 <p>
1488 Eğer kurulum işleminiz herhangi bir nedenle yarıda kesilmiş ve ardından hiç bir paketi
1489 kurma ve kaldırma işlemi yapamaz duruma gelmişseniz, aşağıdaki komutlarla APT'nin gerekli
1490 düzeltmeleri yapmasını sağlayabilirsiniz:
1491
1492 <p>
1493 <example>
1494 # apt-get -f install
1495 # dpkg --configure -a
1496 </example>
1497
1498 <p>
1499 Ve bazen yukarıdaki komutları birden fazla defa tekrarlamanız gerekebilir. `unstable'
1500 dağıtımı kullanmaya başlayacak olan kullanıcıların öğrenmesi gereken ilk ders budur.
1501
1502 </sect>
1503
1504 <sect id="help">Nereden yardım bulabilirim?
1505 <p>
1506 Debian paket yönetim sistemi hakkındaki ayrıntılı belgeleri inceleyebilirsiniz.
1507 Programların <tt>--help</tt> ve kılavuz (man) sayfaları da oldukça yararlı bilgiler
1508 içerir. Ayrıca <tt>/usr/share/doc</tt> dizini altındaki her programa ait dokümantasyonu
1509 inceleyebilirsiniz, apt için bu dizin <tt>/usr/share/doc/apt</tt>'dir.
1510 <p>
1511 Eğer aradığınız sorunun cevabını bu dokümanlarda da bulamazsanız cevabı Debian mail
1512 listelerinde aramalısınız. Debian listeleri hakkında ayrıntılı bilgilere
1513 <url id="http://www.debian.org" name="http://www.debian.org"> adresinden ulaşabilirsiniz.
1514 <p>
1515 Belirttiğimiz listeler Debian kullanıcıları içindir, diğer dağıtımları kullananlar,
1516 dağıtımlarının
1517 mail listelerinde kendilerine uygun cevapları bulabilirler.
1518 </sect>
1519 </chapt>
1520
1521 <chapt id="distros">Hangi Linux dağıtımları APT destekliyor?
1522 <p>
1523 Aşağıda APT'yi destekleyen dağıtımların bir listesi yer almaktadır:
1524 <p>
1525 Debian GNU/Linux (<url id="http://www.debian.org" name="http://www.debian.org">)
1526 - APT'nin geliştiriminin yapıldığı ve devam ettiği dağıtımdır.
1527 <p>
1528 Conectiva (<url id="http://www.conectiva.com.br" name="http://www.conectiva.com.br">)
1529 - APT sisteminin rpm ile kullanılabilmesi için çalışan ilk dağıtımdır.
1530 <p>
1531 Mandrake (<url id="http://www.mandrake.com" name="http://www.mandrake.com">)
1532 <p>
1533 PLD (<url id="http://www.pld.org.pl" name="http://www.pld.org.pl">)
1534 <p>
1535 Vine (<url id="http://www.vinelinux.org" name="http://www.vinelinux.org">)
1536 <p>
1537 APT4RPM (<url id="http://apt4rpm.sf.net" name="http://apt4rpm.sf.net">)
1538 <p>
1539 Alt Linux (<url id="http://www.altlinux.ru/" name="http://www.altlinux.ru/">)
1540 <p>
1541 Red Hat (<url id="http://www.redhat.com/" name="http://www.redhat.com/">)
1542 <p>
1543 Sun Solaris (<url id="http://www.sun.com/" name="http://www.sun.com/">)
1544 <p>
1545 SuSE (<url id="http://www.suse.de/" name="http://www.suse.de/">)
1546 <p>
1547 Yellow Dog Linux (<url id="http://www.yellowdoglinux.com/"
1548 name="http://www.yellowdoglinux.com/">)
1549 </chapt>
1550
1551 <chapt id="agradecimentos">Teşekkürler
1552 <p>
1553 Debian-BR ve Debian projesindeki arkadaşlarıma, desteklerini esirgemedikleri için
1554 teşekkürlerimi sunuyorum.
1555 <p>
1556 Ayrıca projemize ve benzer özgür projelere destek veren CIPSGA'ya teşekkür ediyorum.
1557 <p>
1558
1559 Ve özel teşekkürler:
1560 <p>
1561 Yooseong Yang &lt;yooseong@debian.org&gt;
1562 <p>
1563 Michael Bramer &lt;grisu@debian.org&gt;
1564 <p>
1565 Bryan Stillwell &lt;bryan@bokeoa.com&gt;
1566 <p>
1567 Pawel Tecza &lt;pawel.tecza@poczta.fm&gt;
1568 <p>
1569 Hugo Mora &lt;h.mora@melix.com.mx&gt;
1570 <p>
1571 Luca Monducci &lt;luca.mo@tiscali.it&gt;
1572 <p>
1573 Tomohiro KUBOTA &lt;kubota@debian.org&gt;
1574 <p>
1575 Pablo Lorenzzoni &lt;spectra@debian.org&gt;
1576 <p>
1577 Steve Langasek &lt;vorlon@netexpress.net&gt;
1578 <p>
1579 Arnaldo Carvalho de Melo &lt;acme@conectiva.com.br&gt;
1580 <p>
1581 Erik Rossen &lt;rossen@freesurf.ch&gt;
1582 <p>
1583 Ross Boylan &lt;RossBoylan@stanfordalumni.org&gt;
1584 <p>
1585 Matt Kraai &lt;kraai@debian.org&gt;
1586 <p>
1587 Aaron M. Ucko &lt;ucko@debian.org&gt;
1588 <p>
1589 Jon Åslund &lt;d98-jas@nada.kth.se&gt;
1590 </chapt>
1591
1592 <chapt id="novas">Bu dokümanın yeni versiyonları
1593
1594 <p>
1595 Bu doküman <url id="http://www.debian-br.org" name="Debian-BR">
1596 projesi kapsamında üretilmiş olup, tüm Debian kullanıcılarına yardımcı olması amaçlanmıştır.
1597 <p>
1598 Dokümanın yeni versiyonların her zaman Debian Dokümantasyon Projesi sayfalarından
1599 erişebilirsiniz:
1600 <url id="http://www.debian.org/doc/ddp" name="http://www.debian.org/doc/ddp">.
1601 <p>
1602 Her türlü yorum ve görüşlerinizi <email>kov@debian.org</email> adresinden bana
1603 gönderebilirsiniz.
1604 </chapt>
1605
1606 </book>
1607
1608 </debiandoc>

  ViewVC Help
Powered by ViewVC 1.1.5