VPN-пакет, які паведамляе Installed: (none), не знік; ён проста не ўсталяваны. Радок, які вырашае, ці можаце вы яго ўсталяваць, — гэта Candidate, і APT выводзіць яго з індэксаў, назвы suite, архітэктуры і любых правілаў піна, што дзейнічаюць. Большасць паведамленняў пра зніклы VPN-пакет аказваюцца праблемай кандыдата, а не праблемай пакетавання. Прачытайце абодва радкі, перш чым крануць хоць адзін запіс крыніц.

Я спачатку правяраю кандыдата, бо гэта каштуе адной каманды і адсякае палову звычайных здагадак.

Што вам кажа вывад apt-cache policy

apt-cache policy чытае лакальны кэш пакетаў, а не сетку. Ён друкуе ўсталяваную версію, версію-кандыдат і табліцу кожнага індэкса, які прапануе пакет, разам з прывязаным да яго прыярытэтам.

apt-cache policy openvpn
apt-cache madison openvpn
apt list -a network-manager-openvpn

Кандыдат — гэта версія, якую APT выбраў бы зараз. madison пералічвае, што прапануе кожная крыніца, з яе прыярытэтам, і менавіта так вы заўважаеце пакет, які ёсць у індэксе, але прайграе спаборніцтва піна. Дапаможнік apt-cache апісвае абодва як чытанне кэша, таму ні адзін з іх не даказвае, што люстэрка даступнае ў гэты момант.

Калі радок кандыдата пусты або паказвае (none), нішто ў настроеных крыніцах не падыходзіць для гэтай сістэмы ў яе бягучай канфігурацыі.

Чатыры прычыны знікнення кандыдата

На практыцы прычына амаль заўсёды адна з чатырох, і ў кожнай сваё рашэнне.

Назва suite у вашых крыніцах павінна адпавядаць дыстрыбутыву, для якога быў збудаваны пакет. Сістэма Debian bookworm, накіраваная на люстэрка trixie, або выпуск Ubuntu, перайменаваны ў файле sources.list.d падчас абнаўлення, нічога не вырашае для пакетаў, якія ёсць толькі ў іншым suite. Параўнайце lsb_release -cs з полем suite у кожным запісе.

APT бачыць толькі пакеты, збудаваныя для архітэктур, якія ведае dpkg. 32-бітны кантэйнер, вобраз arm64 або ўсталяванне на Raspberry Pi, якое просіць пакет, што пастаўляецца толькі для amd64, атрымлівае пусты кандыдат замест паведамлення пра памылку. dpkg --print-architecture і dpkg --print-foreign-architectures скажуць, у якім наборы вы насамрэч знаходзіцеся.

Кампаненты таксама маюць значэнне. Пакет у contrib або non-free нябачны, калі ўключаны толькі main, і universe у Ubuntu паводзіць сябе гэтак жа. Індэкс існуе, і пакет у ім; проста ваш спіс уключаных кампанентаў яго не змяшчае.

Пін — самы ціхі. Файл у /etc/apt/preferences.d можа абмежаваць пакет ніжэй за парог усталявання, і тады цалкам добры кандыдат знікае з вываду, пакуль індэкс усё яшчэ пералічвае яго. Паколькі policy друкуе прыярытэты побач з кожнай крыніцай, пакет, у якога кожная крыніца мае нізкі нумар піна, — гэта падказка.

Састарэлыя індэксы выглядаюць як адсутныя пакеты

Кэш — гэта здымак. Калі апошні apt update не ўдаўся на адным індэксе, запыты працягваюць адказваць са старэйшай копіі, і пакета, якога вы чакаеце, можа не быць у той копіі.

apt update друкуе памылкі па кожным індэксе, таму чытайце іх, а не пракручвайце адразу да апошняга радка.

Абнаўленне, якое не ўдалося з-за памылкі подпісу, састарэлага файла release або недасяжнага люстэрка, пакідае папярэдні індэкс на месцы. Гэта разумная канструкцыя, бо яна захоўвае працаздольны кэш, калі люстэрка ненадоўга недаступнае. Пабочны эфект у тым, што пошук можа атрымацца, пакуль рэпазіторый не ў сетцы. Гэта таксама азначае, што адсутнасць пакета нічога не даказвае, пакуль вы не даведаецеся, калі індэкс апошні раз загружаўся. Праверце даты файлаў у /var/lib/apt/lists, перш чым вінаваціць назву пакета.

Назавіце пакет, які вам сапраўды патрэбны

OpenVPN — гэта дэман, а тыя часткі, якія людзі звычайна хочуць, — асобныя пакеты.

Рухавік, плагін NetworkManager і рэдактар працоўнага стала — тры пакеты з трыма назвамі, а ў плагіна ёсць варыянт GTK, назва якога адрозніваецца паміж дыстрыбутывамі. apt-cache search --names-only openvpn супастаўляе назвы і прадстаўленыя назвы замест апісанняў, і гэта тое, што вам патрэбна, калі вы прыблізна ведаеце, як гэтая рэч называецца.

Калі назва сапраўды невядомая, адзін раз пашукайце па апісаннях, затым вярніцеся да дакладных назваў. Не дадавайце суфікс -gui, пазычаны з іншага дыстрыбутыва, і не рабіце выснову, што пакета больш не існуе.

Змяняйце крыніцы апошнімі, затым праверце аперацыю

Даданне рэпазіторыя змяняе таго, хто пастаўляе вашы абнаўленні, таму гэта адносіцца да канца расследавання, а не да пачатку.

Перад гэтым пацвердзіце выпуск, архітэктуру, кампанент і стан піна. Запішыце, якія з чатырох вы праверылі, каб наступны чалавек не паўтараў гэты праход. Калі ўсе чатыры правільныя, а кандыдат усё яшчэ адсутнічае, сумленная выснова — гэты выпуск не пастаўляе такі пакет. Астатнія варыянты — backport, пакет ад пастаўшчыка або іншы падтрыманы выпуск, і кожны з іх — свядомы выбар, а не здагадка.

Калі кандыдат усё ж з'явіцца, змадэлюйце перад выкананнем: apt-get install --simulate з назвай пакета пакажа, што будзе падцягнута і што выдалена. Даступнасць пакета, усталяванне і працоўны тунель застаюцца трыма асобнымі этапамі, і тунелю ўсё яшчэ патрэбны яго профіль, уліковыя даныя, маршруты і DNS, перш чым ён пачне перадаваць трафік.

Падобныя артыкулы