თქვენი დისტრიბუცია პაკეტს შლის, მენიუ ჩანაწერს კარგავს, და გვირაბი მაინც ამოდის შემდეგი გადატვირთვის შემდეგ. კომერციული VPN კლიენტი ტოვებს ნაწილებს, რომლებსაც პაკეტების მენეჯერი არასოდეს არ უთვალთვალებია, ამიტომ სუფთა წაშლა არ არის იგივე, რაც სუფთა მანქანა. ამ ნაწილებიდან ოთხი ხსნის თითქმის ყველა მოჩვენებით კავშირს: ერთეული, კავშირის პროფილი, პრივილეგირებული დამხმარე და გამყიდველის რეპოზიტორი. წაიკითხეთ ოთხივე, სანამ რამეს წაშლით, შემდეგ თითოეული წაშალეთ იმ კომპონენტის მეშვეობით, რომელიც მას ფლობს.

რაც წამშლელმა ვერასოდეს ჩაწერა

პაკეტების მენეჯერი შლის მხოლოდ იმ ფაილებს, რომლებიც მან თავად ჩაწერა, და სხვა არაფერს. მას არ აქვს ჩანაწერი კავშირის პროფილზე, რომელიც კლიენტმა მუშაობის დროს შექმნა, დაყენების შემდეგ ჩართულ ერთეულზე, ან დამხმარეზე, რომელმაც თავი დაარეგისტრირა, სანამ გაზრდილი უფლებებით მუშაობდა. თითოეული მათგანი სხვადასხვა ქვესისტემას ეკუთვნის და თითოეულს შეუძლია პაკეტს ერთი ან რამდენიმე გადატვირთვით გადაურჩეს. სწორედ ეს ხარვეზი ხსნის, რატომ შეიძლება გვირაბი ჯანმრთელი იყოს, მაშინ როცა მისი შემქმნელი პროგრამა უკვე წავიდა.

ნარჩენს ყოველთვის ჰყავს მფლობელი, იქნება ეს systemd, NetworkManager, რეპოზიტორის კონფიგურაცია თუ მომხმარებლის ავტოგაშვების ჩანაწერი. სწორედ მფლობელის პირველად პოვნა უშლის ხელს გასუფთავებას ნახევრად კონფიგურირებულ მანქანად იქცეს. ფაილების პირდაპირ წაშლა ჩვეულებრივ მუშაობს მანამ, სანამ მფლობელი მათ ხელახლა შექმნის, ამიტომ ქვემოთ მოცემული ბრძანებები მოთხოვნებით იწყება.

ოთხი მფლობელი, თავიდან მხოლოდ კითხვა

დაიწყეთ მოთხოვნებით და არა წაშლით, და ჩაიწერეთ ზუსტი სახელები, რომლებიც დაბრუნდება. გამყიდველები ხშირად მეტაპაკეტის გვერდით ვერსირებულ პაკეტს აწვდიან, ამიტომ ერთი პროდუქტი ორი სახელით შეიძლება გამოჩნდეს. სახელი, რომელიც ორივე სიაში გვხვდება, ერთი პროდუქტია ორი მფლობელით და ორივე უნდა მოიხსნას. პირველი პარტია მოიცავს პაკეტებს და ერთეულებს, სადაც ნარჩენების უმეტესობა ჩანს.

dpkg -l | grep -i acmevpn
systemctl list-unit-files | grep -i acmevpn
systemctl list-units --type=service --state=running | grep -i acmevpn

მეორე პარტია მოიცავს იმ ორ კომპონენტს, რომლებიც გასუფთავებას ყველაზე ხშირად გადაურჩება, კერძოდ, კავშირის პროფილს და გამყიდველის რეპოზიტორს. წაიკითხეთ UUID სვეტი და არა სახელი, რადგან დუბლირებული სახელები ხშირია და წაშლის ბრძანება იდენტიფიკატორს მოელის. რეპოზიტორის ხაზი ღირს წაკითხვად მაშინაც, როცა დღეს არ აშორებთ, რადგან მკვდარი გამყიდველის ჰოსტმა თვეების შემდეგ შეიძლება დაუკავშირებელი ინსტალაცია გააფუჭოს. არც ერთი სია არაფერს ცვლის და სწორედ ამიტომ ირთვება ისინი პირველად.

nmcli -f NAME,UUID,TYPE connection show
nmcli connection show --active
grep -ril acmevpn /etc/apt/sources.list.d/ /etc/apt/sources.list

პროცესი, რომელიც გასუფთავების შემდეგ ჯერ კიდევ ცოცხალია, ან აქტიური ერთეულია, ან სხვა პროგრამის შვილი. წაიკითხეთ პროცესების ცხრილი და მისი მშობლების ჯაჭვი, სანამ ბრალს დასდებთ სერვისს, რომელიც აღარ არსებობს. მომხმარებლის ავტოგაშვების ჩანაწერებსაც იგივე შემოწმება სჭირდება და ისინი მხოლოდ ახალ შესვლის გარსში ჩნდებიან, არა root სესიაში.

სამი ზმნა, რომლებიც ურთიერთშემცვლელი არ არის

შეჩერება ამთავრებს მიმდინარე გაშვებას, გამორთვა შლის ჩატვირთვის ბმულებს, და ნიღაბი ერთეულს /dev/null-ისკენ მიმართავს. მხოლოდ მესამე ასევე ბლოკავს გააქტიურებას სოკეტის, ტაიმერის ან დამოკიდებულების მეშვეობით, რაც მას სამიდან ყველაზე ძლიერად აქცევს. თანმიმდევრობა მნიშვნელოვანია, სანამ ჯერ კიდევ წყვეტთ, რა უყოთ მანქანას. ნიღაბი ამ გადაწყვეტილების დროს სწორი მდგომარეობაა, რადგან ის ხმამაღლა ვარდება, ვიდრე შემდეგ ჩატვირთვაზე ჩუმად გაეშვას.

გადააყენებამდე მოხსენით ნიღაბი, თორემ ახალი პაკეტი გატეხილად გამოჩნდება იმ მიზეზით, რომელიც არავის ჩაუწერია. იგივე სიფრთხილე ეხება შეფუთვის განსხვავებებს: ერთი აწყობა აწვდის ერთეულს, რომლის შეჩერებაც შეიძლება, მეორე კი საერთოდ არ ტოვებს სერვისს. სანამ ზმნას აირჩევთ, დაადგინეთ რომელი შეფუთვა გაქვთ, რადგან გასუფთავების გზა მათ შორის განსხვავდება.

ნიშნებით არასწორ პროფილს შლით

წაშალეთ პროფილი ჩაწერილი UUID-ით და არასოდეს ნიშნით. keyfile საქაღალდე ასევე შეიცავს მანქანის ყველა Wi-Fi და Ethernet პროფილს, ამიტომ ფართო დამთხვევა შლის იმას, რაც ჯერ კიდევ გჭირდებათ. ხელით წაშლილი keyfile შეიძლება ხელახლა შექმნას იმ პოლიტიკამ, რომელიც მას ფლობს, რაც წაშლას არაეფექტურად აჩენს.

nmcli connection delete uuid <uuid>

თუ ეს პროფილი თქვენთან დარჩენილი ერთადერთი ასლია, ჯერ გაიტანეთ კარიბჭე და იდენტობა, რადგან ლოკალური წაშლა სერვერზე არაფერს აუქმებს. რეპოზიტორი იმავე წესს მიჰყვება: მოხსენით გამყიდველის ერთადერთი ფაილი და მისი გასაღების რგოლი, შემდეგ განაახლეთ პაკეტების სიები და ხელახლა სცადეთ ის ინსტალაცია, რომელიც ნამდვილად გინდოდათ. მოძველებული მესამე მხარის ჩანაწერის დატოვებამ შეიძლება ძველი დამოკიდებულება მიამაგროს ან საერთოდ არ უპასუხოს. ორივე მოხსნა პატარაა და ნებისმიერი მათგანი შეიძლება გაუქმდეს თქვენს შენახულ ასლში.

რა მუშაობს კვლავ გადატვირთვის შემდეგ

გამარჯვების გამოცხადებამდე გადატვირთეთ, შემდეგ კი ეძებეთ არტეფაქტები და არა აპლიკაცია. გვირაბის ინტერფეისი, მოძველებული გაყოფილი მარშრუტი და ძველი კლიენტის მიერ დატოვებული ყოველი ბმულის DNS თითოეულს თავისი ბრძანება სჭირდება. სამივე შეიძლება გადაურჩეს გასუფთავებას, რომელმაც ყველა პაკეტი წარმატებით წაშალა.

ip link
ip route
resolvectl status

გახსენით ასევე ახალი შესვლის გარსი, რადგან ავტოგაშვების ჩანაწერი მხოლოდ იქ ირთვება. შემდეგ წაიკითხეთ /etc/NetworkManager/dispatcher.d/ სკრიპტის საძიებლად, რომელიც კავშირს აწევს ყოველ ჯერზე, როცა ინტერფეისი მდგომარეობას ცვლის, რაც ხსნის უკან სერვისის გარეშე დაბრუნებულ გვირაბს. თუ რაღაც ჯერ კიდევ გარეთ რეკავს, მიჰყევით პროცესს მის მშობლამდე, ნაცვლად იმისა, რომ ფაილები წაშალოთ სიმპტომის შეწყვეტამდე. მანქანის გასუფთავება და ანგარიშის გაუქმება ცალკე საქმეებად რჩება და მხოლოდ ერთი მათგანია დასრულებული, როცა გადატვირთვა მშვიდად გამოიყურება.

დაკავშირებული სტატიები