Επιδιόρθωση: Δεν ήταν δυνατό το άνοιγμα του αρχείου / var / lib / dpkg / status

Ενδέχεται να λάβετε ένα δυσάρεστο σφάλμα "δεν ήταν δυνατό το άνοιγμα αρχείου / var / lib / dpkg / status" ή κάτι παρόμοιο, αν έχετε στριφογυρίσει γύρω από τον κατάλογο / var / lib / dpkg / και καθαρίζετε τα πράγματα ως χρήστες root. Τα περισσότερα αρχεία που βρίσκονται στο / var, σύμφωνα με το Linux Filesystem Hierarchy Standard, είναι προσωρινά και αλλάζουν κατά τη λειτουργία. Ωστόσο, αυτό δεν σημαίνει ότι πρέπει να καθαριστούν με τον ίδιο τρόπο που πρέπει να εκκαθαριστεί μια προσωρινή μνήμη προγράμματος περιήγησης στο Web.

Επειδή οι περισσότεροι χρήστες Linux δεν έχουν ανάγκη να στριφογυρίζουν εδώ, τα καλά νέα είναι ότι πιθανότατα δεν θα το αποκτήσετε σχεδόν ποτέ. Εκείνοι που βρίσκονται σε διανομές που δεν χρησιμοποιούν apt-get, όπως το Fedora ή το Arch, δεν θα λάβουν ποτέ αυτό το σφάλμα ούτε επειδή είναι απολύτως συγκεκριμένο για αυτόν τον διαχειριστή πακέτων. Ωστόσο, αν το αντιμετωπίζετε, τότε διαβάστε το.

Μέθοδος 1: Η διόρθωση ενός φαινομενικά τυχαίου δεν μπόρεσε να ανοίξει το σφάλμα αρχείου / var / lib / dpkg / status

Εάν αυτό το σφάλμα προκύψει από το μπλε, πληκτρολογήστε ls / var / lib / dpkg / κατάσταση στη γραμμή εντολών και ρίξτε μια ματιά στην έξοδο.

Ίσως θέλετε επίσης να χρησιμοποιήσετε έναν διαχειριστή αρχείων γραφικών στο πρόγραμμα περιήγησης και να ρίξετε μια ματιά.

Βεβαιωθείτε ότι βλέπετε ένα αρχείο κατάστασης στα αποτελέσματα. Συνήθως θα λάβετε μια γραμμή που θα διαβάζει / var / lib / dpkg / status με τίποτα άλλο μετά από αυτήν προτού σας επιστρέψει κατευθείαν στην προτροπή. Εάν συμβαίνει αυτό, τότε έχετε ένα αρχείο εκεί και θα πρέπει να είστε εντάξει. Κλείστε όλα τα προγράμματα στα οποία εργάζεστε μετά την αποθήκευση και, στη συνέχεια, κάντε επανεκκίνηση.

Μόλις δημιουργήσετε αντίγραφα ασφαλείας και λειτουργίας, πληκτρολογήστε sudo apt-get ενημέρωση ακολουθούμενη από sudo apt-get αναβάθμιση στο τερματικό και ακολουθήστε τις οδηγίες. Πιθανότατα θα σας ζητηθεί ο κωδικός πρόσβασης διαχειριστή, αλλά μόλις ενημερωθεί, θα πρέπει να είστε εντάξει. Θα θέλατε να παρακολουθήσετε τυχόν περίεργα σφάλματα.

Εάν το αρχείο δεν ήταν εκεί, τότε θα πρέπει να λάβετε ορισμένες αποφάσεις.

Μέθοδος 2: Αναδημιουργία / var / lib / dpkg / status

Ορισμένοι χρήστες υποστηρίζουν όλα τα σημαντικά δεδομένα τους σε αυτό το σημείο πριν από την επανεγκατάσταση του Linux. Θα μπορούσατε να το κάνετε αυτό, αλλά μπορεί να υπάρχει τρόπος να σώσετε τα πράγματα πρώτα. Υπάρχει ένα αντίγραφο ασφαλείας του / var / lib / dpkg / status που γίνεται αυτόματα και ελπίζουμε ότι δεν έχει περάσει πάρα πολύς χρόνος από τότε που λάβατε το σφάλμα που το προκάλεσε να μην είναι συγχρονισμένο.

Δοκιμάστε να τρέξετε sudo cp / var / lib / dpkg / status-old / var / lib / dpkg / status στο τερματικό. Εάν αυτό δεν σας δώσει σφάλμα, τότε μπορείτε να δείτε εάν αυτό επιλύει το πρόβλημα. Αυτό επαναφέρει το πιο πρόσφατο αντίγραφο ασφαλείας του αρχείου κατάστασης, αλλά δυστυχώς, εάν ήταν πολύ ξεπερασμένο, ίσως να εξακολουθείτε να βρίσκεστε σε ζεστό νερό. Ωστόσο, μπορείτε να κάνετε επανεκκίνηση και στη συνέχεια να εκτελέσετε sudo apt-get ενημέρωση ακολουθούμενη από sudo apt-get αναβάθμιση για να δείτε τι είδους σφάλματα εξάρτησης καταλήγουν για εσάς. Σε ένα σενάριο με την καλύτερη περίπτωση, δεν θα έχετε κανένα και θα μπορείτε απλώς να συνεχίσετε να εργάζεστε ξανά με το σύστημά σας όπως συνήθως.

Θα μπορούσατε επίσης να δοκιμάσετε να δημιουργήσετε ξανά τη λίστα κατάστασης. Τύπος sudo touch / var / lib / dpkg / status για να δημιουργήσετε ένα κενό αρχείο ως ριζικό χρήστη και, στη συνέχεια, δοκιμάστε sudo apt-get εγκατάσταση μακράς λίστας από το τερματικό. Υπάρχουν μερικά σενάρια που το κάνουν αυτό αυτόματα, αλλά αυτό είναι ουσιαστικά το ίδιο πράγμα και έρχεται χωρίς τους κινδύνους να εκτελέσετε ένα ενδεχομένως ξεπερασμένο σενάριο στον υπολογιστή σας. Προειδοποιήστε ότι θα πρέπει να θυμάστε τι έχετε στο σύστημά σας για να λειτουργήσει αυτό και ότι το λογισμικό θα σας ζητήσει να το θυμηθείτε.

Μπορείτε επίσης να δοκιμάσετε ls /var/backups/dpkg.status* και δείτε τι υπάρχουν εκεί που ίσως θέλετε να χρησιμοποιήσετε για αυτό.

Ρίξτε μια ματιά στη λίστα που εμφανίζεται όταν το εκτελείτε. Εάν δείτε ένα που δεν έχει φερμουάρ, δοκιμάστε sudo cp /var/backups/dpkg.status.0 / var / lib / dpkg / κατάσταση και να δούμε αν αυτό διορθώνει τα πράγματα. Θα μπορούσατε πάντα να αντιγράψετε ένα από τα άλλα και να εκτελέσετε την εντολή του gunzip για να το αποσυμπιέσετε. Ωστόσο, λάβετε υπόψη ότι όσο πιο πίσω πηγαίνετε, τόσο μεγαλύτερος είναι ο κίνδυνος ενημέρωσης ενός παρωχημένου αρχείου που θα προκαλούσε σπασμένες εξαρτήσεις