Ubuntu güncellemesi sırasında "Unable to mkstemp /tmp/clearsigned.message.pSG4TQ - GetTempFile (28: No space left on device)" hatasıyla karşılaşıldığında hangi adımlar izlenmeli?

Ubuntu işletim sisteminde güncelleme yaparken, bu komutu çalıştırdığımda:

apt-get update

root@server:/tmp# apt-get update
Hit:1 http://de.archive.ubuntu.com/ubuntu jammy InRelease
Err:1 http://de.archive.ubuntu.com/ubuntu jammy InRelease
  Couldn't create temporary file /tmp/apt.conf.HClPnY for passing config to apt-key
Ign:2 https://download.docker.com/linux/ubuntu jammy InRelease
Ign:3 http://de.archive.ubuntu.com/ubuntu jammy-updates InRelease
Err:4 https://download.docker.com/linux/ubuntu jammy Release
  Could not open file /var/lib/apt/lists/partial/download.docker.com_linux_ubuntu_dists_jammy_Release - open (28: No space left on device) [IP: 65.9.66.72 443]
Ign:5 http://de.archive.ubuntu.com/ubuntu jammy-backports InRelease
Err:6 http://de.archive.ubuntu.com/ubuntu jammy-updates Release
  Could not open file /var/lib/apt/lists/partial/de.archive.ubuntu.com_ubuntu_dists_jammy-updates_Release - open (28: No space left on device) [IP: 141.30.62.24 80]
Err:7 http://de.archive.ubuntu.com/ubuntu jammy-backports Release
  Could not open file /var/lib/apt/lists/partial/de.archive.ubuntu.com_ubuntu_dists_jammy-backports_Release - open (28: No space left on device) [IP: 141.30.62.22 80]
Ign:8 https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy InRelease
Ign:9 http://security.ubuntu.com/ubuntu jammy-security InRelease
Err:10 http://security.ubuntu.com/ubuntu jammy-security Release
  Could not open file /var/lib/apt/lists/partial/security.ubuntu.com_ubuntu_dists_jammy-security_Release - open (28: No space left on device) [IP: 185.125.190.83 80]
Err:11 https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy Release
  Could not open file /var/lib/apt/lists/partial/ppa.launchpadcontent.net_ondrej_php_ubuntu_dists_jammy_Release - open (28: No space left on device) [IP: 185.125.190.80 443]
Reading package lists... Error!
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://de.archive.ubuntu.com/ubuntu jammy InRelease: Couldn't create temporary file /tmp/apt.conf.HClPnY for passing config to apt-key
E: The repository 'https://download.docker.com/linux/ubuntu jammy Release' no longer has a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://de.archive.ubuntu.com/ubuntu jammy-updates Release' no longer has a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://de.archive.ubuntu.com/ubuntu jammy-backports Release' no longer has a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://security.ubuntu.com/ubuntu jammy-security Release' no longer has a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy Release' no longer has a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Unable to mkstemp /tmp/clearsigned.message.2LXYm0 - GetTempFile (28: No space left on device)
E: The package lists or status file could not be parsed or opened.

yada: apt-get upgrade

root@server:/tmp# apt-get upgrade
Reading package lists... Error!
E: Unable to mkstemp /tmp/clearsigned.message.aDRnUH - GetTempFile (28: No space left on device)
E: The package lists or status file could not be parsed or opened.

hatası alıyorum. Anladığım kadarıyla disk alanı yetersizliğiyle alakalı bir durum söz konusu fakat bu hatanın çözümü için hangi adımlar izlenmeli? Neleri kontrol etmeliyim veya hangi dosyaları temizlemem gerekiyor ki bu hata ortadan kalksın ve sistem güncellemeleri sorunsuz bir şekilde devam etsin?

“Unable to mkstemp /tmp/clearsigned.message” hatası, genellikle işletim sistemindeki disk alanının tükenmesinden kaynaklanır. Bu sorunu çözmek için birkaç farklı adım atarak disk alanını temizleyebilir ve yeniden güncellemeye çalışabilirsiniz. İşte izlemeniz gereken adımlar:

1. Disk Alanı Kontrolü

1.1. Disk Alanını Kontrol Etmek

Öncelikle, mevcut disk alanını görmek için df komutunu kullanabilirsiniz:

df -h

Bu komut, disk bölümlerinin boyutunu, kullanılan ve boş alanlarını ve yüzde olarak doluluk oranını gösterecektir. Özellikle / ve /tmp dizinlerinin doluluk oranlarına dikkat edin.

2. Gereksiz Dosyaları Temizleme

2.1. Paket Önbelleğini Temizlemek

apt-get kullanırken indirilen paketlerin önbelleği, disk alanında yer kaplayabilir. Aşağıdaki komutla bu önbelleği temizleyebilirsiniz:

sudo apt-get clean

Bu komut, indirilen ama kullanılmayan tüm .deb dosyalarını önbellekten temizler.

2.2. Gereksiz Paketleri ve Bağımlılıkları Kaldırmak

Yüklemelerden sonra kullanılmayan ve gereksiz hale gelen paketler ve bağımlılıkları kaldırabilirsiniz:

sudo apt-get autoremove

Bu komut, artık gerekli olmayan paketleri temizler.

3. Dosya Sistemi Temizliği

3.1. Büyük ve Gereksiz Dosyaları Bulmak

Sistemde bulunan büyük dosyaları bulmak ve onları temizlemek, önemli miktarda alan açılmasını sağlayabilir. Aşağıdaki komut, / dizinindeki en büyük dosyaları listeleyecektir:

sudo du -h / | sort -rh | head -n 20

Bu komut, dizindeki (ve alt dizinlerdeki) en büyük 20 dosyayı gösterecektir.

3.2. Eski Log Dosyalarını Temizlemek

Log dosyaları zamanla birikebilir ve alan doldurabilir. Eski log dosyalarını kontrol edin:

cd /var/log
ls -lh

Özellikle büyük boyutlu log dosyalarını boşaltabilirsiniz:

sudo truncate -s 0 <log_dosyası>

4. Temp Dizinini Temizlemek

4.1. Geçici Dosyaların Temizlenmesi

Geçici dosyalar da önemli bir miktarda yer kaplayabilir. Geçici dosyaları /tmp dizininden silmek için aşağıdaki komutları kullanabilirsiniz:

sudo rm -rf /tmp/*

Bu adım, geçici dosyaların tamamını siler ve disk alanının boşalmasına yardımcı olabilir.

5. İşlemi Tekrarlama

Temizlik işlemlerinden sonra apt-get update ve apt-get upgrade komutlarını yeniden çalıştırarak güncellemeyi deneyin:

sudo apt-get update
sudo apt-get upgrade

6. Gelecekteki Disk Sorunlarının Önlenmesi

6.1. Disk Kullanımını İzlemek

Gelecekte bu tür sorunlarla karşılaşmamak için disk kullanımını düzenli olarak izlemek faydalı olabilir. ncdu gibi araçlar disk kullanımı izlemeye yardımcı olabilir:

sudo apt install ncdu
sudo ncdu /

Bu program, disk alanının nasıl kullanıldığını ayrıntılı bir şekilde gösterecektir.

TERİMLER:

mkstemp: Geçici bir dosya açma fonksiyonu olan mkstemp, genellikle yazma yetkisi olan bir dizinde geçici dosya oluşturmak için kullanılır.

apt-get clean: APT paket yöneticisinin temizleme komutu, paket yüklendikten sonra yerel bilgisayara indirilen ancak artık gereksiz olan paket dosyalarını temizler.

du (disk usage): Dosya ve dizinlerdeki disk kullanımı hakkında bilgi sağlar.

Bu sorunu ben de yaşadım, maalesef temp klasörü içerisindeki dosyaları bir türlü silemedim. Çok fazla dosya olduğu için rm -rf işe yaramıyordu. Son çare olarak /tmp klasörünü silip (rm -rf /tmp) tekrar yeniden oluşturarak sorunu çözdüm (mkdir /tmp).

Sonrasında tek yapılması gereken /tmp klasörünün chmod ayarını düzenlemek: chmod 1777 /tmp

Bu şekilde sorunu çözebilirsiniz.