Ֆորումի պատասխանը ձեզ տալիս է ամբողջական ֆայլի անուն, և անունը թվում է լուծումը՝ մեկ .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 շերտ՝ երթուղիներով և resolver-ի սեփականատիրոջով։ Ավարտված փաթեթային գործարքը ոչինչ չի ապացուցում այն մասին, թե արդյոք դարպասը ընդունում է հաշիվը կամ արդյոք մասնավոր տիրույթը հասանելի է։ Ստուգեք յուրաքանչյուր շերտ այնտեղ, որտեղ այն կոտրվում է, փոխարենը նորից գործարկելու տեղադրիչը։

Ծրագիրը, որը պետք է փոխարինի հին ֆայլի անունը

Նախ գրի առեք հարթակի ինքնությունը՝ ՕՀ-ի թողարկում, ճարտարապետություն և օգտագործվող աղբյուրների ցանկ։ Ապա նշեք այն լիազորված վայրը, որտեղից գալիս է փաթեթը՝ լինի դա դիստրիբուտիվի պահոց, ամրագրված բանալիով մատակարարի պահոց, թե ինքներդ կոմպիլացված և փաթեթավորված կառուցում։

Վերջում նշեք պահպանողին և թարմացման ուղին։ Pi-ն, որն աշխատեցնում է կլիենտ, որի սեփականատեր ոչ ոք չէ, կշարունակի աշխատել մինչև առաջին գրադարանային թարմացումը, և այնուհետև նույն խնդրով մեկը նորից կգտնի նույն ֆորումի թեման։

Ուղղված համոզմունքը բավական պարզ է մեկ տողով ասելու համար՝ հին փաթեթը ապացույց է, որ կլիենտը ժամանակին կառուցվել և աշխատել է, ոչ թե ապացույց, որ այն այսօր երեկոյան կտեղադրվի ձեր տախտակի վրա։ Ստուգեք երեք առանցքները, ապա ընտրեք ալիք, որը կարող եք շարունակել թարմացնել։

Առնչվող հոդվածներ