---
title: 'Depo Yapılandırması'
source: 'https://academia.sh/tr/kurslar/linuxa-giris/depo-yapilandirmasi'
course: "Linux'a Giriş"
language: tr
updated: '2026-08-17T18:09:56+00:00'
license: 'CC BY-SA 4.0'
---

# Depo Yapılandırması

Depo tanımının bileşenleri, imzalı dizin ve paket özetlerinden oluşan güven zinciri, anahtar parmak izinin doğrulanması ve depo önceliğinin sonuçları.

Önceki iki ders paketlerin "depodan" geldiğini söyledi ama deponun ne olduğunu tanımlamadı.
Depo bir dosya sunucusundan ibaret değildir; olsaydı, indirilen paketin doğru paket olduğunu
söyleyecek hiçbir şey bulunmazdı.

Bu ders deponun yapısını ve üzerine kurulu güven zincirini ele alır. Zincir, dosya aktarımı
dersindeki özet doğrulamasının ve şifreli kabuk dersindeki parmak izi onayının birleşimidir;
ikisi de burada tek bir düzenekte buluşur.

## Depo Tanımı

Sisteme bir depo tanıtmak, ona en az şu bilgileri vermektir:

| Alan | Anlamı |
|---|---|
| Adres | Dosyaların indirileceği temel konum |
| Yayın | Deponun hangi sürüm dalını sunduğu |
| Bileşen | Depo içindeki alt bölüm (örneğin özgür yazılım ayrımı) |
| Mimari | Hangi işlemci ailesi için paket isteneceği |
| Anahtar | Deponun imzalarını doğrulayacak açık anahtar |

Tanımlar `/etc` altında, dizin hiyerarşisi dersinde anlatılan "yapılandırma metin
dosyalarında durur" ilkesine uygun biçimde tutulur. Adlandırma ve söz dizimi paket
yöneticisi ailesine göre değişir, alanlar değişmez.

Adres alanının bir sonucu, aynı içeriğin birden çok sunucudan sunulabilmesidir: **yansılar**.
Yansı, deponun birebir kopyasını taşıyan bağımsız bir sunucudur ve indirmeyi hızlandırmak
için kullanılır. Yansının içeriğini doğrulamak, aşağıdaki zincirin var olma nedenidir; aksi
hâlde her yansıya ayrı ayrı güvenmek gerekirdi.

## Güven Zinciri

Depo iki tür dosya sunar: paketlerin kendisi ve bir **dizin dosyası**. Dizin, her paketin
adını, sürümünü, bağımlılıklarını ve **içerik özetini** taşır. Dizin dosyası ise imzalanır.

Zincir üç halkadır:

1. Açık anahtar, depoyu yöneten tarafın kimliğini temsil eder ve sisteme bir kez tanıtılır.
2. Dizin dosyasının imzası bu anahtarla doğrulanır; imza geçerliyse dizinin içeriği
   değiştirilmemiştir.
3. İndirilen her paketin özeti, dizindeki değerle karşılaştırılır; eşleşiyorsa paket
   değiştirilmemiştir.

Tek bir imza, binlerce paketi dolaylı olarak kapsar. Paketlerin ayrı ayrı imzalanması
gerekmez; özetleri imzalı bir dosyada durduğu için yeterlidir.

Zincir küçük ölçekte kurulup doğrulanabilir. Aşağıdaki depo iki paket, bir dizin dosyası,
dizinin imzası ve deponun açık anahtarından oluşur:

```
$ ls
DIZIN  DIZIN.asc  cizim-2.0.pkg  depo-anahtari.asc  rapor-1.4.pkg
```

## Anahtarın Tanıtılması

İlk adım anahtarı incelemektir. Anahtarın kimliği, **parmak izi** denen sabit uzunluktaki
özetiyle temsil edilir:

```
$ gpg --show-keys --with-fingerprint depo-anahtari.asc
gpg: directory '/home/ogrenci/.gnupg' created
gpg: keybox '/home/ogrenci/.gnupg/pubring.kbx' created
pub   ed25519 2026-07-26 [SC]
      E31E 9629 AEBE 63E9 0EEB  EDEE A258 E130 F14C ACAA
uid                      Depo Bakimcisi <bakim@ornek>
```

Bu noktada kritik bir adım vardır ve atlanması zincirin tamamını anlamsızlaştırır: parmak
izi, anahtarın indirildiği kanaldan **bağımsız** bir kaynakla karşılaştırılmalıdır. Anahtarı
deponun kendisinden indirip yine deponun söylediği parmak iziyle doğrulamak, hiçbir şey
doğrulamaz.

Aynı sorun şifreli kabuk dersinde sunucu parmak izinde de vardı ve çözümü aynıdır: ilk
karşılaşmada kimlik başka bir kanaldan teyit edilir, sonrasında değişiklik otomatik
yakalanır.

Teyitten sonra anahtar sisteme alınır:

```
$ gpg --import depo-anahtari.asc
gpg: /home/ogrenci/.gnupg/trustdb.gpg: trustdb created
gpg: key A258E130F14CACAA: public key "Depo Bakimcisi <bakim@ornek>" imported
gpg: Total number processed: 1
gpg:               imported: 1
```

## Zincirin Doğrulanması

Dizinin imzası anahtarla sınanır:

```
$ gpg --verify DIZIN.asc DIZIN
gpg: Signature made Sun Jul 26 19:37:53 2026 UTC
gpg:                using EDDSA key E31E9629AEBE63E90EEBEDEEA258E130F14CACAA
gpg: Good signature from "Depo Bakimcisi <bakim@ornek>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: E31E 9629 AEBE 63E9 0EEB  EDEE A258 E130 F14C ACAA
```

İki satır ayrı şeyler söyler ve karıştırılmamalıdır. **"Good signature"**, dosyanın bu
anahtarla imzalandığını ve imzadan sonra değişmediğini bildirir — bu, matematiksel bir
doğrulamadır. **Uyarı** ise anahtarın sahibinin gerçekten iddia ettiği kişi olduğuna dair
bir kanıt bulunmadığını söyler; bu, yukarıdaki bağımsız kanal teyidinin yapılmadığı anlamına
gelir. İmza geçerlidir, ama kime ait olduğu ayrı bir sorudur.

Dizin doğrulandıktan sonra paketlerin özetleri sınanır:

```
$ cat DIZIN
3375dab7d8aa59a185e9e8f5e0f4095517d89bdb75245ef22a25966e2e348756  cizim-2.0.pkg
3fe6fac9c36f99b284199580aead74c6c2d33f3a60449954c90dac700ca48e08  rapor-1.4.pkg
$ sha256sum -c DIZIN
cizim-2.0.pkg: OK
rapor-1.4.pkg: OK
```

Zincir tamamlanmıştır: imza dizini, dizin paketleri garanti eder.

## Zincir Neyi Yakalar

Paket dosyası yolda değiştirilirse özet uyuşmaz:

```
$ printf 'zararli icerik\n' > cizim-2.0.pkg
$ sha256sum -c DIZIN
cizim-2.0.pkg: FAILED
rapor-1.4.pkg: OK
sha256sum: WARNING: 1 computed checksum did NOT match
```

Saldırgan bunu aşmak için dizini de değiştirmek zorundadır. Özetler yeniden hesaplandığında
dizin kendi içinde tutarlı hâle gelir:

```
$ sha256sum *.pkg > DIZIN
$ sha256sum -c DIZIN
cizim-2.0.pkg: OK
rapor-1.4.pkg: OK
```

Ama imza artık uymaz:

```
$ gpg --verify DIZIN.asc DIZIN
gpg: Signature made Sun Jul 26 19:37:53 2026 UTC
gpg:                using EDDSA key E31E9629AEBE63E90EEBEDEEA258E130F14CACAA
gpg: BAD signature from "Depo Bakimcisi <bakim@ornek>" [unknown]
```

Zincirin gücü buradadır: dizini değiştirmek için imzalama anahtarı gerekir ve o anahtar
depoda değil, bakımcıdadır. Bu nedenle bir yansının ele geçirilmesi paketleri değiştirmeye
yetmez.

Bu, taşıma katmanındaki şifrelemenin sağlayamadığı bir güvencedir. Şifreli bir indirme,
verinin **yolda** değişmediğini gösterir; sunucudaki içeriğin doğru içerik olduğunu
göstermez. İmza ise içeriğin kaynağını doğrular ve yansılardan geçmiş olması bunu
değiştirmez. İki koruma birbirinin yerine geçmez.

## Depo Eklemek Bir Güven Kararıdır

Sisteme yeni bir depo eklemek, o deponun bakımcısına şu yetkileri vermektir: sisteme paket
kurabilme, kurulum betiklerini kök yetkisiyle çalıştırabilme ve var olan paketleri kendi
sürümleriyle değiştirebilme.

Son madde en az fark edilenidir. Yeni depo, sistem deposundaki bir paketle aynı adı taşıyan
ve daha yüksek sürüm numaralı bir paket sunarsa, yükseltmede o paket sistemin paketinin
yerini alır. Bu nedenle paket yöneticileri **öncelik** düzeneği sunar: her depoya bir ağırlık
verilir ve aynı paketin hangi kaynaktan alınacağı bu ağırlıkla belirlenir.

Uygulamada üç ölçüt izlenir:

**Depo sayısı az tutulur.** Her ek depo, güvenilmesi gereken bir taraf ekler.

**Ek depoların kapsamı daraltılır.** Yalnızca gereken paketlerin o depodan alınması,
öncelik kuralları veya paket adı sınırlamalarıyla sağlanır.

**Anahtarlar depo başına ayrılır.** Tek bir anahtarın tüm depolar için geçerli sayılması,
bir anahtarın ele geçirilmesini tüm depoları ele geçirmeye dönüştürür.

Bir depodan yalnızca birkaç paket gerekiyorsa, deponun tamamını eklemek yerine paket
dosyalarını indirip özetleriyle doğrulamak daha dar bir güven alanı bırakır. Bunun bedeli,
güncellemelerin otomatik gelmemesidir.

## Özet

- Depo tanımı adres, yayın, bileşen, mimari ve doğrulama anahtarından oluşur.
- Depo, paketlerin yanında paket özetlerini taşıyan bir dizin dosyası sunar ve bu dosya
  imzalanır.
- Güven zinciri üç halkadır: anahtar bakımcıyı, imza dizini, dizindeki özetler paketleri
  doğrular.
- Anahtarın parmak izi, anahtarın geldiği kanaldan bağımsız bir kaynakla teyit edilmelidir;
  aksi hâlde zincir kendi kendini doğrular.
- Geçerli imza, dosyanın değişmediğini gösterir; anahtarın sahibinin kim olduğu ayrı bir
  sorudur ve uyarı satırı bunu bildirir.
- Taşıma şifrelemesi verinin yolda değişmediğini, imza ise içeriğin kaynağını doğrular;
  ikisi birbirinin yerine geçmez.

## Sonraki Adım

Sistem tanındı, dosyalar düzenlendi, izinler kuruldu ve yazılım kurma yolu açıldı. Geriye
tek bir eksik kalıyor: bu kursta oluşturulan betik ve yapılandırma dosyaları, terminalden
çıkmadan nasıl düzenlenir? Kursun son dersi terminal metin editörlerini — kip tabanlı ve
kipsiz tasarımları — ele alır ve hangi durumda hangisinin seçileceğini gösterir.
