# Linux'ta apt hatası: "Could not get lock /var/lib/dpkg/lock-frontend"

https://kervanhosting.com/bilgi-bankasi/makale/apt-kilit-hatasi-could-not-get-lock-dpkg-lock-frontend

Yeni bir paket kurmaya çalışırken ekrana şuna benzer bir mesaj düşer:

```
E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 1423 (unattended-upgr)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
```

Bu, başka bir programın paket sistemini şu anda kullandığını ve aynı anda iki işlem yapılamayacağını söyler. Hata mesajının sonundaki parantezde kilidi tutan programın adı yazar; çözüm de o programa göre değişir.

## 1. Önce kilidi kimin tuttuğuna bakın

```
sudo fuser -v /var/lib/dpkg/lock-frontend
ps aux | grep -E "apt|dpkg|unattended" | grep -v grep
```

Çoğu yeni kurulan Ubuntu sunucuda kilidi `unattended-upgr` yani otomatik güvenlik güncellemeleri tutar. Sunucu ilk açıldığında güncellemeleri arka planda kurar ve buna birkaç dakika harcayabilir.

## 2. Genelde yapılacak şey: beklemek

Güncelleme bitene kadar 5 ila 15 dakika bekleyip komutu yeniden deneyin. Bitip bitmediğini şuradan izleyebilirsiniz:

```
sudo tail -f /var/log/unattended-upgrades/unattended-upgrades.log
```

Süreç listede görünmüyorsa kilit çözülmüştür. Komutu tekrar çalıştırın.

## 3. Kilit takıldıysa (süreç yok ama hata sürüyor)

Bu nadiren, bir kurulum yarıda kesildiğinde (bağlantı koptu, sunucu yeniden başladı) olur. Önce hiçbir apt ya da dpkg sürecinin çalışmadığından emin olun, ardından yarım kalan kurulumu tamamlayın:

```
sudo dpkg --configure -a
sudo apt update
```

Çoğu zaman bu komut her şeyi düzeltir. Kilit dosyalarını elle silmeyi (`rm /var/lib/dpkg/lock*`) son çare olarak düşünün; çalışan bir güncellemenin ortasında silerseniz paket veritabanını bozabilirsiniz.

## Kilidi tutan program ne zaman bitti anlarım?

Komutu yeniden denediğinizde hata yerine paket listesi güncelleniyorsa kilit çözülmüştür. İşlem bitmeden başka bir `apt` penceresi açıp komut vermeyin; her deneme yeni bir kilit isteği oluşturur ve bekleyen sıra uzar. Terminalde "Waiting for cache lock" yazıyorsa apt zaten sıranızı bekliyordur, bir şey yapmanıza gerek yoktur.

## 4. Sürekli çıkıyorsa

- Bir betik ya da [cron görevi](https://kervanhosting.com/bilgi-bankasi/makale/zamanlanmis-gorev-cron-nasil-eklenir) düzenli olarak apt çalıştırıyor olabilir. Çakışan saatleri ayırın.
- Başka bir SSH oturumunuzda unuttuğunuz bir `apt` açık olabilir. Orayı kapatın.
- Otomatik güncellemeleri durdurmak istemezsiniz; kapatmak yerine bitmesini beklemek daha güvenlidir. Zamanlamaları [sunucu güncelleme makalesinde](https://kervanhosting.com/bilgi-bankasi/makale/linux-sunucuyu-nasil-guncellerim) anlattık.

## Sık sorulanlar

### Bu hata sunucumda bir sorun olduğu anlamına mı gelir?

Hayır. Çoğu zaman sunucunun kendi bakım işini yaptığını gösterir. Özellikle yeni kurulan sunucuda ilk 10 ila 20 dakika sık görülür.

### Debian'da da aynı mı?

Mesaj aynıdır. Debian'da `unattended-upgrades` kurulu olmayabilir; o zaman kilidi tutan program başka bir apt komutudur.

### `sudo` yazmayı unutursam ne olur?

Farklı bir hata alırsınız: *Permission denied*. Kilit hatasıyla karıştırmayın, komutun başına `sudo` ekleyin.

**İlgili makaleler**

- [Linux sunucuyu nasıl güncellerim?](https://kervanhosting.com/bilgi-bankasi/makale/linux-sunucuyu-nasil-guncellerim)
- [Yeni Linux sunucuda ilk yapılması gerekenler](https://kervanhosting.com/bilgi-bankasi/makale/yeni-linux-sunucuda-ilk-yapilmasi-gerekenler)
- [Zamanlanmış görev (cron) nasıl eklenir?](https://kervanhosting.com/bilgi-bankasi/makale/zamanlanmis-gorev-cron-nasil-eklenir)

*Sorununuz çözülmediyse [destek talebi açın](https://kervanhosting.com/destek-taleplerim). Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.*
