Адказ на форуме дае поўнае імя файла, і яно выглядае як рашэнне: адзін .deb, адна каманда, гатова. Насамрэч гэты радок кадуе версію пакета, архітэктуру працэсара і набор дыстрыбутыва, супраць якога ён быў сабраны ў дзень напісання паведамлення. Ніводнае з гэтых трох не апісвае аўтаматычна плату на вашым стале. Старое спампоўванне — гэта здымак стану адной машыны, а не план усталявання для вашай.

Што імя файла моўчкі замацоўвае

Чытайце імя накшталт openfortivpn_1.17.0-1_armhf.deb справа налева. Суфікс — гэта архітэктура, для якой сабраны бінарнік, сярэдняе поле — версія upstream і ўпакоўкі, а няяўнае чацвёртае поле — набор бібліятэк дыстрыбутыва, у якім ён сабраны.

На 64-бітнай усталёўцы Raspberry Pi OS сістэмная архітэктура — arm64, таму dpkg -i адхіляе пакет armhf з-за неадпаведнасці архітэктуры. Нават калі multiarch дазваляе ўсталяванне, бінарнік чакае версіі бібліятэк з таго выпуску, супраць якога быў сабраны, а больш новая базавая сістэма можа іх ужо не прадастаўляць. Вынік — усталяваны пакет, у якога выканальны файл не запускаецца, і гэта менавіта тая памылка, якую людзі звычайна памылкова лічаць зламаным самім кліентам.

Тое, што плата — прылада ARM, не робіць пакет ARM прыдатным. Архітэктура — адна вось; выпуск і ABI — дзве іншыя, і яны адмаўляюць незалежна.

Спытайце ў дыстрыбутыва, перш чым шукаць спасылку на спампоўванне

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

cat /etc/os-release
dpkg --print-architecture
apt-cache policy openfortivpn

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

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

Што правярае apt і чаго не атрымлівае спампаваны файл

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

Файл, захаваны са старой HTTP-спасылкі, не мае нічога з гэтага. Ён прыходзіць без ідэнтычнасці рэпазітара, не абнаўляецца, калі дыстрыбутыў выпраўляе кліента, і нішто не фіксуе, хто адказны за яго замену. Гэта ўсё яшчэ можа быць законным выбарам для адміністратара з замацаваным артэфактам, але выбар павінен ісці з уладальнікам, дзесьці запісанай кантрольнай сумай і планам наступнага абнаўлення бяспекі.

Падаўленне памылак подпісу або адключэнне праверкі TLS, каб старая інструкцыя працягвала працаваць, прыбірае адзіную частку працэсу, якая нешта правярала. Замест гэтага аднавіце тую праверку, што не ўдаецца.

Усталюйце кліента, затым асобна адладзьце злучэнне

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

Калі разгортванню сапраўды патрэбна зборка з upstream, выконвайце бягучыя інструкцыі праекта па зборцы і стаўцеся да яе як да праграмы, якую вы цяпер суправаджаеце: пакеты распрацоўкі, pkg-config, загалоўкі бібліятэкі TLS і дэман PPP — рэальныя залежнасці, як і працэдура выдалення, якая спатрэбіцца пазней.

Усталяванне — гэта толькі лакальная стадыя праграмнага забеспячэння. Шлюз павінен прыняць пратакол кліента і паток аўтэнтыфікацыі, кліент павінен давяраць сертыфікату, які прадстаўляе шлюз, а тунелю патрэбны працоўны ўзровень PPP, маршруты і ўладальнік рэзалвера. Завершаная транзакцыя пакета нічога не даказвае пра тое, ці прымае шлюз уліковы запіс або ці дасяжны прыватны дыяпазон. Тэстуйце кожны ўзровень там, дзе ён ламаецца, замест таго каб перазапускаць усталёўнік.

План, які павінен замяніць старое імя файла

Спачатку запішыце ідэнтычнасць платформы: выпуск АС, архітэктуру і спіс крыніц, якія выкарыстоўваюцца. Затым назвіце дазволенае месца, адкуль паходзіць пакет: рэпазітар дыстрыбутыва, рэпазітар пастаўшчыка з замацаваным ключом або зборка, якую вы самі кампілюеце і ўпакоўваеце.

Нарэшце, назвіце суправаджальніка і шлях абнаўлення. Pi, які запускае кліента, якім ніхто не валодае, будзе працаваць да першага абнаўлення бібліятэкі, а потым тую ж тэму форуму знойдзе зноў хтосьці з той жа праблемай.

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

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