Mohammad Jawad Barati
Mohammad Jawad Barati
خواندن ۲ دقیقه·۴ سال پیش

جایگزین دستور deprecate شده apt-key add

چند وقتی میشد که با این warning ترسناک روبرو میشدم. بالاخره امروز طلسم شکسته شد و تونستم با کمک gpg یه برنامه رو نصب بکنم (یعنی کلید عمومیش رو سیستم شناخت و از ریپوزیتوری دانش کرد). راستی من زیاد به اینکه چرا deprecated شد توجهی نشون ندادم ولی در کل به علت امنیت حذف شد.

توی این مثال من داکر رو با این روش براتون نصب می کنم. داکیومنت مرجع برای نصب داکر هم اینه.

خب فاز اول اینه که کلید رو درست بکنیم:

مرحله اول اینه که بری توی دایرکتوری tmp. به خاطر اینکه چند تا فایل تهش میخوای تولید بکنی که از کل اون فایل ها فقط یکیشون به کارت میاد و از اونجایی که میدونید این دایرکتوری بعد از ریست شدن سیستم عامل تمام محتویاتش پاک میشه.

$ cd /tmp

مرحله بعد اینه که کلید رو دانلود بکنی:

curl https://download.docker.com/linux/ubuntu/gpg 1> docker.key

مرحله بعد مطمئن شدن از filetype با دستور file هست:

file docker.key

خروجی باید همچین متنی توش باشه: `PGP public key block Public-Key (old)`

مرحله بعد اینه که اون کلید رو import و export بکنی:

gpg --no-default-keyring --keyring ./temp-docker.gpg --import docker.key gpg --no-default-keyring --keyring ./temp-docker.pgp --export --output docker.gpg

اگه بهتون گفت هیچی رو export نتونستم یعنی یه مشکلی دارید. پس تا زمانی که به درستی export نشده سراغ مراحل بعد نرید.


حالا سراغ فاز بعدی که انتقال کلید و شناسوندنش باشه میریم:

پیشنهاد من اینه که به صورت مستقیم این کلید رو توی دایرکتوری /etc/apt/trusted.gpg.d/ نریزید. بلکه بجاش یه دایرکتوری ایجاد کنید:

mkdir -p /usr/local/share/keyrings/

حالا اون کلید نهایی رو که `docker.gpg` باشه توی دایرکتوری بالا کپی کنید. آخر سر باید ریپوزیتوری داکر رو به سیستم معرفی بکنیم که اونم خیلی ساده هست:

cd /etc/apt/sources.list.d/

حالا یه فایل ایجاد میکنی به اسم docker.list و توش ریپوزیتوری داکر رو میریزیم:

touch docker.list echo &quotdeb [arch=amd64 /usr/local/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable&quot > docker.list

حالا همه چی اوکی و فقط باید `apt update` زد و بعدش:

apt install docker-ce docker-ce-cli containerd.io

و تموم. کل کاری که باید میکردی همین بود. حالا همین فرایند رو برای هر برنامه دیگه هم میتونی بری.


برای حذف کلید های قدیمی هم میتونی این مراحل رو بری:

  1. اول لیستش کلید هایی که با دستور apt-key add اضافه کردی ببینی با این کامند: sudo apt-key list. توی تصویر زیر id کلید رو دورش یه کادر قرمز اندختم.

۲. حالا با دستور sudo apt-key del EFE21092 اون کلید رو پاک میکنی.


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

رفرنس، رفرنس،

aptlinux
برنانه نویس، مدرس، محقق. عاشق انیمه هستم و دنبال چالش ها جدید.
شاید از این پست‌ها خوشتان بیاید