یک پاسخ در انجمن یک نام فایل کامل به شما میدهد، و نام فایل شبیه راهحل به نظر میرسد: یک .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 که کارخواهی را اجرا میکند که هیچکس مالک آن نیست تا نخستین بهروزرسانی کتابخانه کار میکند، و سپس همان رشته انجمن را دوباره کسی با همان مشکل پیدا خواهد کرد.

باور اصلاحشده بهاندازه کافی ساده است که در یک خط گفته شود: بسته قدیمی شاهدی است بر اینکه کارخواه زمانی ساخته شده و اجرا شده، نه شاهدی بر اینکه امشب روی برد شما نصب میشود. سه محور را بررسی کنید، سپس کانالی را انتخاب کنید که میتوانید بهروزرسانیاش را ادامه دهید.

مقالات مرتبط