VPN пакет који пријављује Installed: (none) не недостаје; он једноставно није инсталиран. Ред који одређује можете ли га инсталирати је Candidate, а APT га изводи из индекса, назива suite, архитектуре и свих pin правила која су на снази. Већина пријава несталог VPN пакета испостави се као проблем кандидата, а не проблем паковања. Прочитајте оба реда пре него што дотакнете иједан унос извора.

Прво проверавам кандидата јер то кошта једну команду и искључује половину уобичајених претпоставки.

Шта вам говори излаз наредбе apt-cache policy

apt-cache policy чита локални кеш пакета, а не мрежу. Исписује инсталирану верзију, верзију кандидата и табелу сваког индекса који нуди пакет, са приоритетом који му је придружен.

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

Кандидат је верзија коју би APT сада изабрао. madison наводи шта сваки извор нуди са својим приоритетом, и тако уочавате пакет који постоји у индексу али губи pin такмичење. Упутство за 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, а Ubuntu universe се понаша исто. Индекс постоји и пакет је у њему; само ваша листа омогућених компоненти га не укључује.

Причвршћивање је оно тихо. Датотека у /etc/apt/preferences.d може ограничити пакет испод прага за инсталацију, и тада сасвим добар кандидат нестаје из излаза док га индекс још увек наводи. Пошто policy исписује приоритете поред сваког извора, пакет чији сваки извор носи низак pin број је знак.

Застарели индекси изгледају као пакети који недостају

Кеш је снимак. Ако је последњи 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 пре него што преноси саобраћај.

Повезани чланци