Linux: apt / dnf / pacman sıradan çıxıb — səbəblər və həll yolları

Linux sistemlərində apt, dnfpacman proqramların quraşdırılması və yenilənməsi üçün əsas mexanizmlərdir. Onlar “sıradan çıxmış” kimi görünəndə problem təkcə yeni proqram quraşdıra bilməmək olmur; təhlükəsizlik yeniləmələri də dayana bilər və sistemin saxlanması xeyli çətinləşər. Ən çox rast gəlinən səbəblər bunlardır: yarımçıq qalan yeniləmələr, nasaz mirror-lar, uyğunsuz paket bazası, imza yoxlamasının uğursuz olması, pozulmuş asılılıqlar və ya qalmış lock faylları. Ən vacib məqam cache və konfiqurasiya fayllarını kor-koranə silmək deyil, əvvəlcə həqiqətən hansı hissənin zədələndiyini başa düşməkdir.

Bəzən elə görünür ki, paket meneceri özü pozulub, amma əsl səbəb şəbəkə, DNS, repository sazlaması və ya diskdə boş yerin az olması olur. Buna görə də ilkin diaqnostika problemin rabitədə, repository-də, lokal bazada, yoxsa asılılıqlarda olduğunu ayırd etməklə başlamalıdır.

Tez-tez görünən əlamətlər

  • apt update, dnf update və ya pacman -Syu səhvlə dayanır
  • Həll olunmayan asılılıqlar və ya “broken packages” barədə mesajlar görünür
  • GPG və ya imza xətalarına görə repository-lər istifadə olunmur
  • Baza lock vəziyyətində olur və paket əməliyyatları işləmir
  • Mirror-lar 404 və ya timeout qaytarır
  • Yarımçıq qalan yeniləmədən sonra paket əməliyyatları normal işləməyir
  • Bəzi kitabxana yeniləmələrindən sonra paket meneceri özü açılmır

Əvvəlcə nə yoxlanmalıdır

İlk addım problemin həqiqətən paket meneceri ilə bağlı olub-olmadığını, yoxsa şəbəkə və DNS-dən qaynaqlandığını müəyyən etməkdir.

ping -c 4 8.8.8.8
ping -c 4 google.com
ip addr
ip route

Əgər şəbəkə və ya DNS özü problemlidirsə, apt, dnf və ya pacman xətaları sadəcə onun nəticəsi ola bilər. Əksinə, adi şəbəkə işləyir, amma yalnız paket əməliyyatları uğursuz olur, onda repository-lər, açarlar, lock-lar, cache, baza və asılılıqlar üzərinə fokuslanmaq lazımdır.

apt / dnf / pacman üçün ümumi səbəblər

1. Yarımçıq qalan yeniləmə

Ən çox rast gəlinən səbəblərdən biri yeniləmənin ortada dayanmasıdır. Elektrik kəsilməsi, terminalın bağlanması, SSH bağlantısının qırılması və ya qrafik mühitin donması paket bazasını və ya bəzi paketləri yarımçıq vəziyyətdə qoya bilər.

Belə hallarda faylları dərhal silmək əvəzinə, əvvəlcə yarımçıq qalan vəziyyəti düzgün tamamlamağa çalışmaq lazımdır.

2. Qalmış lock faylları

Paket menecerləri eyni anda bir neçə əməliyyatı bloklamaq üçün lock istifadə edir. Əgər başqa proses hələ də işləyirsə və ya crash-dən sonra yalnız lock qalıbsa, sistem paket menecerinin artıq istifadədə olduğunu göstərəcək.

Ancaq lock fayllarını səbəbi anlamadan silmək düzgün deyil. Əvvəlcə əlaqəli proseslərin həqiqətən dayanıb-dayanmadığı yoxlanmalıdır.

ps aux | grep -E 'apt|dpkg|dnf|yum|pacman'

3. Repository konfiqurasiyasının pozulması

Üçüncü tərəf repository-ləri, köhnə PPA-lar, artıq işləməyən mirror-lar və ya distributiv yenilənməsindən qalan köhnə sazlamalar paket mənbələrini etibarsız edə bilər. Tipik əlamətlər 404, Release file-in olmaması və metadata yükləmə səhvləridir.

4. GPG açarı və imza problemləri

Repository-lər adətən kriptoqrafik yoxlamadan keçir. Əgər açar vaxtı keçibsə, import edilməyibsə, açar idarəetmə üsulu dəyişibsə və ya lokal keyring zədələnibsə, paket meneceri təhlükəsizlik səbəbilə dayanacaq.

5. Pozulmuş asılılıqlar

Asılılıqlar çox vaxt uyğun olmayan paket versiyalarını zorla quraşdıranda, fərqli repository-ləri qarışdıranda, partial update etdikdə və ya sistem kitabxanalarını əllə dəyişəndə pozulur. Bu, xüsusilə pacman əsaslı sistemlərdə təhlükəlidir, amma apt və dnf də mənbələr nizamsız qarışdırıldıqda tez qeyri-sabit olur.

6. Zədələnmiş cache və ya metadata

Yarımçıq yüklənmiş paketlər, köhnə metadata və ya zədələnmiş sinxronizasiya bazaları paket siyahılarının düzgün oxunmamasına və quraşdırmaların uğursuz olmasına səbəb ola bilər.

7. Diskdə boş yerin azlığı

Tez-tez gözdən qaçan səbəblərdən biri boş yerin kifayət etməməsidir. Əgər /var və ya /boot kimi bölmələr doludursa, faylların çıxarılması və yazılması yarımçıq qala və paket sistemi zədələnmiş vəziyyətdə qala bilər.

df -h
du -sh /var/cache/* 2>/dev/null

apt problemli olduqda nəyə baxmaq lazımdır

Debian / Ubuntu sistemlərində yalnız apt-ə yox, onun altında işləyən dpkg-nin vəziyyətinə də baxmaq vacibdir.

Yarımçıq konfiqurasiya olunmuş paketləri düzəltmək

sudo dpkg --configure -a
sudo apt --fix-broken install

Yarımçıq qalan yeniləmədən sonra bu iki əmr adətən ilk istifadə olunan bərpa addımıdır.

Paket siyahılarını yenidən yükləmək

sudo apt update

Əgər burada 404, imza və ya Release file xətası görünürsə, /etc/apt/sources.list/etc/apt/sources.list.d/ yoxlanmalıdır.

Cache-i təmizləmək

sudo apt clean
sudo apt autoclean

Problem zədələnmiş və ya köhnəlmiş cache-dən qaynaqlanırsa, bu faydalı ola bilər.

dnf problemli olduqda nəyə baxmaq lazımdır

Fedora / RHEL sistemlərində əsas diqqət metadata, tranzaksiya tarixçəsi və repository sazlamalarına verilməlidir.

Metadata-nı yenidən qurmaq

sudo dnf clean all
sudo dnf makecache

Mirror məlumatı və ya metadata zədələnibsə, bu adətən faydalı ilk addımdır.

Asılılıqları və sistemin uyğunluğunu yoxlamaq

sudo dnf check
sudo dnf distro-sync

Bu, sistemin distributivin gözlənilən paket vəziyyəti ilə hələ uyğun olub-olmadığını göstərir.

Tarixçəyə baxmaq

sudo dnf history
sudo dnf history info last

Tarixçə çox vaxt problemin hansı yeniləmədən sonra başladığını göstərir.

pacman problemli olduqda nəyə baxmaq lazımdır

Arch Linux-da əsas diqqət sinxronizasiya bazalarına, açarlara, mirror-lara və partial update olub-olmamasına verilməlidir.

Bazaları yenidən sinxronlaşdırmaq

sudo pacman -Syy

Əgər lokal sinxronizasiya bazası repository ilə uyğun gəlmirsə, bu adətən ilk addımdır.

Tam sistem yeniləməsi

sudo pacman -Syu

Arch sistemlərində partial update-dən qaçmaq lazımdır. Bəzi paketləri yeniləyib digərlərini köhnə saxlamaq sistem uyğunsuzluğunun ən klassik səbəblərindəndir.

Açar problemlərini yoxlamaq

sudo pacman-key --init
sudo pacman-key --populate

Əgər problem imza və ya keyring ilə bağlıdırsa, yenidən qurulma tələb oluna bilər.

Log-lar çox vacibdir

Paket meneceri xətalarında yalnız son sətrə baxmaq kifayət etmir. Log-lar və detallı çıxış bunun imza, asılılıq, şəbəkə və ya baza problemi olduğunu anlamağa kömək edir.

apt / dpkg

sudo tail -n 100 /var/log/apt/history.log
sudo tail -n 100 /var/log/dpkg.log

dnf

sudo dnf history
sudo journalctl -xe --no-pager | tail -n 100

pacman

sudo tail -n 100 /var/log/pacman.log

Praktik yoxlama ardıcıllığı

Addım 1: Şəbəkə və DNS-i yoxlayın

ping -c 4 8.8.8.8
ping -c 4 google.com

Addım 2: Boş disk yerini yoxlayın

df -h

Addım 3: Prosesləri və lock-ları yoxlayın

ps aux | grep -E 'apt|dpkg|dnf|yum|pacman'

Addım 4: Log-ları oxuyun

Əvvəlcə ən son hansı konkret əməliyyatın uğursuz olduğunu başa düşmək lazımdır.

Addım 5: Distribusiyaya uyğun bərpa əmrlərindən istifadə edin

apt üçün adətən dpkg --configure -a, dnf üçün metadata təmizlənməsi, pacman üçün isə tam sinxronizasiya və açar yoxlaması ilə başlamaq lazımdır.

Nələrdən qaçmaq lazımdır

  • Səbəbi anlamadan lock fayllarını silmək
  • Etibarsız mənbələrdən .deb / .rpm / digər paketləri quraşdırmaq
  • Arch sistemlərində təkrar partial update etmək
  • apt ilə dpkg, dnf ilə rpm və ya pacman ilə əl dəyişikliklərini nizamsız şəkildə qarışdırmaq
  • Xətanı anlamadan imza yoxlamasını söndürmək

Problemin təkrar olmaması üçün

  • Yeniləmə zamanı elektrik kəsilməsi və məcburi dayandırmadan qaçın
  • Çox sayda üçüncü tərəf repository əlavə etməyin
  • Böyük yeniləmələrdən əvvəl snapshot və ya backup yaradın
  • Distribusiyanın tövsiyə etdiyi yeniləmə üsuluna əməl edin
  • Xüsusilə Arch sistemlərində partial update-dən uzaq durun

Nəticə

apt, dnf və ya pacman özü sıradan çıxmış kimi görünsə də, həqiqi səbəb çox vaxt şəbəkə, lock-lar, imzalar, asılılıqlar, cache, boş yer və ya repository sazlaması olur. Ən vacibi dərhal silməyə və ya yenidən quraşdırmağa keçmək deyil, əvvəlcə log-lar vasitəsilə problemin hansı səviyyədə yarandığını anlamaqdır. Bundan sonra isə uyğun yanaşma seçilməlidir: apt üçün dpkg bərpası, dnf üçün metadata və tarixçə, pacman üçün tam sinxronizasiya və açar yoxlaması.

Leave a Reply

Sizin e-poçt ünvanınız dərc edilməyəcəkdir. Gərəkli sahələr * ilə işarələnmişdir