apt purge தொகுப்பு போய்விட்டது என்கிறது, இருப்பினும் ஒவ்வொரு தொடக்கத்திலும் ஒரு சுரங்கப்பாதை மீண்டும் எழுகிறது. journal வளர்கிறது, வழிகள் திரும்பி வருகின்றன, மேலும் இயந்திரம் எதுவும் அகற்றப்படாதது போல நடந்துகொள்கிறது. விற்பனையாளரின் நிறுவி, தொகுப்பு மேலாளர் ஒருபோதும் பதிவு செய்யாத கோப்புகளை எழுதலாம், எனவே தொகுப்பை நீக்குவதும் தயாரிப்பை நீக்குவதும் வெவ்வேறு வேலைகள். கீழேயுள்ள runbook இரண்டு பதிவுகளையும் பிரித்து நீக்குதலை வேண்டுமென்றே முடிக்கிறது.

இரண்டு நிறுவிகள், இரண்டு வெவ்வேறு பதிவுகள்

Debian தொகுப்புகள் கோப்புப் பட்டியலை வைத்திருக்கின்றன, purge அந்தப் பட்டியல் குறிப்பிடுவதையும் தொகுப்பு உள்ளமைவையும் மட்டுமே நீக்குகிறது. shell நிறுவி அல்லது .run தொகுப்பு அத்தகைய பட்டியலை வைத்திருக்காது; அது விரும்பிய இடத்தில் எழுதுகிறது, பொதுவாக /opt, /usr/local மற்றும் /etc/systemd/system இல். அந்தப் பாதைகள் எதுவும் எந்தத் தொகுப்பின் கோப்புப் பட்டியலிலும் தெரிவதில்லை, எனவே dpkg அவற்றை அறியாது, அறிக்கையும் செய்யாது. இறுதியில் ஒரே கோப்பு முறையில் இரண்டு நிறுவல் உரிமையாளர்கள் இருப்பர், அவர்களில் ஒருவர் மட்டுமே கணக்கு வைக்கிறார்.

நீக்கும் முன் அந்தக் குறிப்பிட்ட பாதையைப் பற்றி dpkg-ஐக் கேளுங்கள். அது மறுக்கும் பாதை நீங்கள் அகற்றுவதற்கானது, அதே பதில் பின்னர் வரும் மேம்படுத்தல் அதைத் திருப்பிக் கொண்டுவருமா என்பதையும் சொல்லும்.

dpkg -S /etc/systemd/system/acmevpn.service
systemctl list-unit-files | grep -i acmevpn

unit மற்றும் அதன் wants இணைப்பு தனிக் கோப்புகள்

செயல்படுத்துவது நிறுவுவதிலிருந்து வேறுபட்ட செயல். unit அதன் [Install] பிரிவில் இலக்கு உறவுகளை அறிவிக்கிறது, systemctl enable அந்த அறிவிப்புகளை ஒவ்வொரு இலக்கின் .wants/ அடைவில் குறியீட்டு இணைப்புகளாக மாற்றுகிறது. இப்போது இரண்டு பாதைகள் உள்ளன: unit கோப்பு, மற்றும் அதை துவக்க இலக்குக்கு இழுக்கும் இணைப்பு. கோப்பை மட்டும் நீக்கினால் இணைப்பு எதையும் சுட்டாது, இது துவக்கத்தில் புகாரை உருவாக்குகிறது; இணைப்பை மட்டும் நீக்கினால் unit பெயரால் இயக்கக்கூடியதாக இருக்கும். இரண்டும் போக வேண்டும்.

அவற்றை வரிசையாக அகற்றி பின்னர் மீண்டும் ஏற்றுங்கள், systemd பழைய வரையறைகளை நினைவகத்தில் வைத்திருப்பதை நிறுத்த.

systemctl disable --now acmevpn.service
systemctl show -p FragmentPath -p ExecStart acmevpn.service
sudo rm /etc/systemd/system/acmevpn.service
sudo rm /etc/systemd/system/multi-user.target.wants/acmevpn.service
systemctl daemon-reload

இடத்தை ஊகிக்காமல் FragmentPath படியுங்கள், ஏனெனில் விற்பனையாளர் /etc க்கு பதிலாக /usr/lib/systemd/system அல்லது /lib/systemd/system இல் எழுதியிருக்கலாம். எதிர்பார்த்த நகலை நீக்கினால் செயலில் உள்ளது இயங்கிக்கொண்டே இருக்கும், அடுத்த மீள்ஏற்றம் வரை சரிசெய்தல் வெற்றிகரமாகத் தெரியும். மீள்ஏற்றம் முடிந்ததும் unit கோப்புகளை மீண்டும் பட்டியலிட்டு, பெயர் இனி தெரியவில்லை என்பதை உறுதிப்படுத்துங்கள்.

இந்த அமைப்பை உயிரோடு வைத்திருக்கும் பைனரியைக் கண்டறியுங்கள்

இயக்கப்பட்ட unit, தொகுப்பு தரவுத்தளம் எதை நம்பினாலும் டீமனைத் தொடர்ந்து இயக்குகிறது. அந்த செயல்முறை சுரங்கப்பாதையைத் திரும்பக் கொண்டுவரலாம், வழிகளை மீண்டும் சேர்க்கலாம் அல்லது kill-switch விதியை மீட்டெடுக்கலாம், அமைப்பை ஆய்வு செய்யும் வரை நடத்தை இயற்கைக்கு அப்பாற்பட்டதாகத் தெரியும். ExecStart பாதையைப் பின்பற்றி பைனரி இன்னும் இருக்கிறதா பாருங்கள், ஏனெனில் /opt கீழ் விடப்பட்ட இயக்ககக் கோப்பே இந்த அமைப்புக்குத் தேவையான அனைத்தும். unit-ஐ நீக்குவது திட்டமிட்ட தொடக்கத்தை நிறுத்தும்; அது நிரலை நீக்காது.

நிலை அடைவுகளையும் அதே கவனத்துடன் கையாளுங்கள். கணக்கு டோக்கன்கள், உருவாக்கப்பட்ட சுயவிவரங்கள் மற்றும் தேக்ககப்படுத்தப்பட்ட சேவையகப் பட்டியல்கள் /var/lib கீழ் அல்லது வீட்டு அடைவில் வாழ்கின்றன, அவை சான்றுகள், வீசக்கூடிய தேக்ககம் அல்ல. சேவை நின்றபின் அவற்றை வேண்டுமென்றே அகற்றி, என்ன எடுத்தீர்கள் என்பதைப் பதிவு செய்யுங்கள்.

sudo ls -l /opt/acmevpn /usr/local/bin/acmevpn
sudo find /var/lib -maxdepth 2 -iname "*acme*"
systemctl is-enabled acmevpn.service

துவக்கத்தின் ஒரு உரிமையாளரைத் தேர்ந்தெடுத்து சோதியுங்கள்

மூன்று வேட்பாளர்கள் துவக்கத்தைக் கோரலாம், மூன்றையும் நிறுவினால் இரட்டைப் பாதுகாப்புக்குப் பதிலாகப் போட்டி உருவாகும். டெஸ்க்டாப் தன்னியக்க தொடக்கக் கோப்பு யாராவது உள்நுழைந்த பிறகே இயங்கும், systemd unit முன்னதாக இயங்கும் ஆனால் திரை இல்லாமல் இயங்கும் வாடிக்கையாளர் தேவை, cron @reboot பதிவு பிணைய வாடிக்கையாளருக்குத் தவறாக இருக்கக்கூடிய அட்டவணையில் இயங்கும். விற்பனையாளரின் CLI கூடுதலாக சேவையக வாதம் கேட்கலாம், ஏனெனில் துவக்கத்தில் தொடரும் முந்தைய அமர்வு இல்லை. வாடிக்கையாளர் எப்படி அங்கீகரிக்கிறது என்பதற்குப் பொருந்தும் வேட்பாளரைத் தேர்ந்தெடுத்து, மற்றவற்றை விடுங்கள்.

இயந்திரத்தை மீண்டும் துவக்கி மூன்று சுயாதீன உண்மைகளைப் பார்த்து சோதியுங்கள்: unit நிலை, செயல்முறைப் பட்டியல், மற்றும் நீங்கள் சரிபார்க்கக்கூடிய ஒன்றுக்கான புதிய இணைப்பு. விசை வளையம் அல்லது ஊடாடும் உள்நுழைவு தேவைப்படும் வாடிக்கையாளர் சரியான unit கோப்புடன் கூட துவக்கத்தில் தோல்வியடையும், சேவை நிலையை மட்டும் அல்ல journal-ஐப் படித்தால் அது அதைச் சொல்லும்.

ஒன்று வாடிக்கையாளருக்கு கேள்வியில்லாமல் இயங்கும் சான்றைக் கொடுங்கள், அல்லது உள்நுழைவின் போது அதைத் தொடங்குங்கள். இரண்டும் நியாயமானவை, இரண்டையும் இணைப்பதே ஒரு சுரங்கப்பாதைக்கு அதற்காகச் சண்டையிடும் இரண்டு உரிமையாளர்களைப் பெறும் வழி.

அடுத்த purge எதை எதிர்பார்க்க வேண்டும் என்பதை எழுதுங்கள்

எந்தக் கைமுறை நீக்கத்திற்கும் பின் இரண்டு உண்மைகளைப் பதிவு செய்யுங்கள்: எந்த நிறுவி இந்த அமைப்பை உருவாக்கியது, இப்போது எந்த உரிமையாளர் அதைத் தொடங்குகிறார். அந்தக் குறிப்பு அடுத்த purge-ஐ ஆச்சரியத்திலிருந்து சரிபார்ப்புப் பட்டியலின் ஒரு உருப்படியாக மாற்றுகிறது, மேலும் வேலை செய்த நபரை விட நீண்ட காலம் வாழ்கிறது.

அதைத் தனிப்பட்ட அடைவில் அல்ல, சேவை உள்ளமைவுக்கு அருகில் வைத்து தேதி இடுங்கள், ஏனெனில் விற்பனையாளர் புதுப்பிப்பு நீங்கள் நீக்கிய unit-ஐ மீட்டெடுக்கலாம். சில மாதங்களுக்கு ஒருமுறை systemctl list-unit-files அந்தக் குறிப்புடன் ஒப்பிடுவது, சரிசெய்தல் இன்னும் மலிவாக இருக்கும்போதே மீட்டெடுப்பைப் பிடிக்கும்.

தொடர்புடைய கட்டுரைகள்