Зошто apt-cache за вашиот VPN пакет прикажува инсталирано (нема)
Инсталирано (нема) значи дека VPN пакетот не е инсталиран, а не дека недостасува. Прочитајте ги редовите за кандидатот, закотвувањето и архитектурата пред да ги уредите изворите.
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 пред да пренесува сообраќај.