# Ubuntu ve Debian'da apt ve dpkg hatalarını düzeltin

> apt ve dpkg hatalarına çözümler: başka işlemin tuttuğu kilit, yarım kalan dpkg, bozuk bağımlılıklar, NO\_PUBKEY, geçersiz Release dosyası ve bekletilen paketler.

Zorluk: Orta

Paket hataları güncellemeleri durdurur, bu yüzden güvenlik açısından önemlidir. Çoğu, sorunu tam olarak adlandıran bir mesaj yazar. Mesajınızı aşağıda bulun, çözümü uygulayın ve `sudo apt update && sudo apt upgrade` ile doğrulayın.

## Başlamadan önce

- SSH üzerinden `sudo` yetkili bir kullanıcıyla çalışın; bkz. [Linux sunucunuza bağlanın](/guides/connect-to-linux-server-ssh).
- Çıktıdaki **ilk** hatayı okuyun: sonraki hatalar çoğu zaman onun sonucudur.
- Önce boş alana bakın, çünkü birçok apt hatası aslında dolu bir disktir: `df -h / /var /boot`. Bir dosya sistemi %100 doluysa önce [disk dolu](/guides/disk-full) rehberi ve `sudo apt clean` ile bunu çözün.

## "Could not get lock /var/lib/dpkg/lock-frontend"

```text
E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 1234 (unattended-upgr)
```

**Neden:** başka bir paket işlemi çalışıyor. Açılıştan hemen sonra bu genellikle otomatik güvenlik güncellemesidir.

**Çözüm:** bitmesini bekleyin. Ne yaptığına bakın:

```bash
ps -o pid,etime,cmd -p 1234
```

Birkaç dakika sonra yeniden deneyin. **Kilit dosyalarını silmeyin.** Kilidi artık hiçbir işlem tutmuyorsa (örneğin bir yükseltme sırasında çökme veya kopan SSH oturumundan sonra) ve apt hâlâ reddediyorsa sonraki bölümle devam edin.

## "dpkg was interrupted, you must manually run 'sudo dpkg --configure -a'"

**Neden:** bir kurulum yarıda kaldı; örneğin SSH bağlantısı koptuğunda.

**Çözüm:** dpkg'nin açılmış her paketin yapılandırmasını tamamlamasını sağlayın, ardından veritabanını denetleyin:

```bash
sudo dpkg --configure -a
sudo dpkg --audit
```

**Doğrulama:** `dpkg --audit` hiçbir şey yazmaz ve `sudo apt update && sudo apt upgrade` sorunsuz çalışır. Uzun yükseltmeler için `tmux` veya `screen` kullanın; böylece kopan bir bağlantı onları yeniden yarıda bırakmaz.

## "Unmet dependencies. Try 'apt --fix-broken install'"

**Neden:** bir paket, bağımlılıklarının tamamı olmadan kuruldu; çoğunlukla indirilmiş bir `.deb` dosyasından.

**Çözüm:** apt'nin bir onarım bulmasına izin verin:

```bash
sudo apt --fix-broken install
```

Onaylamadan önce apt'nin kurmak veya **kaldırmak** istediği paketlerin listesini okuyun. Önemli bir şeyi kaldırmak istiyorsa iptal edin ve bunun yerine soruna yol açan paketi kaldırın (`sudo apt remove paket-adi`).

## "NO_PUBKEY" veya "The following signatures couldn't be verified"

```text
W: GPG error: https://repo.example.com stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0123456789ABCDEF
```

**Neden:** üçüncü taraf bir depo yapılandırılmış, ancak imza anahtarı eksik, süresi dolmuş veya üretici tarafından değiştirilmiş.

**Çözüm:** anahtarı yeniden indirmek için üreticinin güncel kurulum talimatlarını izleyin. Önerilen düzen, anahtarı kendi dosyasında saklar ve depo girdisinde `signed-by` ile belirtir; böylece anahtar yalnızca o depo için güvenilir sayılır:

```bash
sudo install -d -m 0755 /etc/apt/keyrings
ls /etc/apt/sources.list.d/
```

Depo dosyasındaki `signed-by` yolunu, üreticinin oluşturmanızı söylediği anahtar dosyasıyla karşılaştırın. `apt-key` kullanmayın ve üçüncü taraf anahtarları `/etc/apt/trusted.gpg.d/` içine koymayın. Depoyu artık kullanmıyorsanız bunun yerine dosyasını `/etc/apt/sources.list.d/` içinden silin.

## "Release file … is not valid yet"

**Neden:** sunucunun saati geride, bu yüzden deponun imzası gelecekten geliyormuş gibi görünüyor.

**Çözüm:** `timedatectl` çıktısına bakın ve saat eşitlemeyi [ana bilgisayar adı, saat dilimi ve saat eşitleme](/guides/linux-hostname-time-settings) rehberinde anlatıldığı gibi açın, ardından `sudo apt update` komutunu yeniden çalıştırın.

## "changed its 'Suite' value from 'stable' to 'oldstable'"

**Neden:** Debian kaynaklarınız sürüm adı yerine `stable` takma adını kullanıyor ve yeni bir Debian sürümü çıktı. Debian 13 yayımlandığında Debian 12 `oldstable` oldu.

**Çözüm:** sürümünüzde mi kalmak yoksa yükseltmek mi istediğinize karar verin. Kalmak için `/etc/apt/` altındaki dosyalarda `stable` yerine sürüm adınızı (Debian 12 için `bookworm`, Debian 13 için `trixie`) yazın ve `sudo apt update` çalıştırın. Değişikliği bir betikte bir kez kabul etmek için `apt-get` komutunun `--allow-releaseinfo-change` seçeneği vardır. Yükseltmek için bkz. [Ubuntu veya Debian'ı yeni sürüme yükseltme](/guides/upgrade-ubuntu-debian-release).

## apt update çalıştırınca "404 Not Found"

**Neden:** depo artık o adreste değil. Üçüncü taraf bir depoda üretici onu taşımış veya kaldırmıştır. Sistemin kendi depolarında ise sürüm kullanım ömrünün sonuna ulaşmıştır: Ubuntu, kullanım ömrü dolan sürümleri normal arşivden eski sürümler için ayrılmış bir arşiv sunucusuna taşır.

**Çözüm:** üçüncü taraf bir depoda girdisini güncelleyin veya kaldırın. Kullanım ömrü dolmuş bir sürümde kalıcı çözüm desteklenen bir sürümdür: onu adım adım [yükseltin](/guides/upgrade-ubuntu-debian-release) ya da sunucuyu güncel bir imajla yeniden kurup verilerinizi geri yükleyin ([işletim sistemini yeniden kurma](/guides/reinstall-operating-system)).

## "The following packages have been kept back"

**Neden:** Ubuntu'da genellikle bir **aşamalı güncelleme**: yeni sürüm birkaç gün içinde makinelerin giderek artan bir payına sunulur. Paketler, yükseltme başka bir paketi kaldıracağı için veya biri onları `apt-mark hold` ile beklettiği için de geride tutulabilir.

**Çözüm:** paketi kontrol edin:

```bash
apt-cache policy paket-adi
apt-mark showhold
```

`phased` ve bir yüzdeyle işaretlenmiş bir aday sürüm size otomatik olarak ulaşır; mesajı görmezden gelebilirsiniz. Yeni veya kaldırılan bağımlılıklar yüzünden bekletilen bir paket için listeyi inceleyip `sudo apt full-upgrade` çalıştırın. Bilinçli bir beklemeyi `sudo apt-mark unhold paket-adi` ile kaldırın.

## "E: Sub-process /usr/bin/dpkg returned an error code (1)"

**Neden:** bir paketin kendi kurulum veya kaldırma betiği başarısız oldu. Asıl neden bu satırın **üstünde** yazar.

**Çözüm:** orada adı geçen paketin ilk hatasına kadar yukarı kaydırın. Sık nedenler dolu bir disk, yapılandırması yüzünden başlayamayan bir hizmet (`sudo journalctl -xeu hizmet-adi` ile bakın) ve sizin değiştirdiğiniz bir yapılandırma dosyasıdır. Nedeni düzelttikten sonra `sudo dpkg --configure -a` komutunu yeniden çalıştırın.

## Sonraki adımlar

- Güvenlik güncellemeleri sizin müdahaleniz olmadan gelsin: [otomatik güncellemeler](/guides/automatic-updates).
- Eski bir sürüm mü kullanıyorsunuz? [Ubuntu veya Debian'ı yeni sürüme yükseltme](/guides/upgrade-ubuntu-debian-release).

## Sık sorulan sorular

### Kilit dosyalarını silebilir miyim?

Hayır. Kilit, başka bir paket işlemi, çoğunlukla otomatik güvenlik güncellemeleri çalıştığı için vardır. O çalışırken kilidi silmek paket veritabanını bozabilir. Bunun yerine işlemin bitmesini bekleyin.

### Bekletilen (kept back) paketleri görmezden gelmek güvenli mi?

Ubuntu'da genellikle evet: aşamalı güncellemeler yeni sürümü makinelere kademeli olarak dağıtır ve sizinki onu daha sonra otomatik olarak alır. Paket başka bir nedenle bekletiliyorsa apt full-upgrade veya paketi adıyla kurmak sorunu çözer.

### apt update çalıştırınca neden 404 Not Found görüyorum?

Ya üçüncü taraf bir depo taşındı ya da sürüm kullanım ömrünün sonuna ulaştı ve paketleri normal yansılardan kaldırıldı. Desteklenen bir sürüme yükseltin veya sunucuyu güncel bir imajla yeniden kurun.

### apt mi yoksa apt-get mi kullanmalıyım?

İkisi de aynı paket sistemini kullanır. apt terminalde çalışmak içindir, ilerleme ve renk gösterir; apt-get betikler için kararlı bir çıktı verir. Bu rehberdeki çözümler ikisiyle de çalışır.

---

Kaynak: <https://hyperdc.com/tr/guides/products/fix-apt-dpkg-errors>\
Son güncelleme: 2026-10-15
