راه های کنترل و مدیریت بسته نرم افزاری اوبونتو
بسیار بعید است که یک سیستم اوبونتو تازه نصب شده حاوی تمام بستههای نرمافزاری لازم برای انجام وظایفی باشد که برای آن در نظر گرفته شده است. در برخی موارد، باید اطمینان حاصل کنید که آخرین بستههای منتشر شده روی سیستم نصب شدهاند تا باگها و آسیبپذیریهای امنیتی برطرف شوند. در این مطلب می خواهیم شیوه های مدیریت بسته نرم افزاری اوبونتو را باهم بیاموزیم، با ما همراه باشید.
این درس مفاهیم اساسی مدیریت نرمافزار در اوبونتو را معرفی میکند، توضیح میدهد که چگونه به این مسائل پرداخته میشود، مفاهیم مخازن و بستههای نرمافزاری را معرفی میکند، در حالی که نحوه فهرست کردن، نصب و حذف بستههای نرمافزاری را که یک سیستم اوبونتو کارآمد را تشکیل میدهند، بررسی میکند.
مخازن (Repositories)
لینوکس اساسا از مجموعهای از بستههای پایه تشکیل شده است که عملکرد اصلی سیستمعامل را همراه با طیف وسیعی از بستهها و ماژولهای دیگر فراهم میکند که عملکرد و ویژگیها را به سیستمعامل پایه اضافه میکنند.
هنگامی که اوبونتو برای اولین بار نصب میشود، بسته به گزینههای نرمافزاری انتخاب شده در مرحله نصب، تعدادی بسته مختلف نصب میشود. با این حال، هنگامی که سیستم راهاندازی و اجرا میشود، میتوان نرمافزار اضافی را در صورت نیاز نصب کرد. به طور معمول، تمام نرمافزارهایی که بخشی از اوبونتو هستند (به عبارت دیگر نرمافزارهایی که توسط فروشنده شخص ثالث ارائه نشده است) با استفاده از فرمان apt سرنام عبارت Advanced Package Tool بر روی سیستم دانلود و نصب میشوند. همانطور که در درسهای قبلی دیدیم، این معمولا شامل فرمانی شبیه به فرمان زیر است که در خط فرمان صادر میشود:
1 |
# apt install apache2 |
هنگامی که چنین دستوری صادر میشود، نرمافزار درخواستی از یک مخزن راه دور دانلود و بر روی سیستم محلی نصب میشود. بهطور پیش فرض، اوبونتو برای دانلود نرمافزار از تعدادی مخزن مختلف پیکربندی شده است:
- main – شامل مجموعه اصلی بستههایی است که به طور رسمی توسط اوبونتو پشتیبانی، آزمایش و به روز میشوند.
- restricted – درایورهای اختصاصی برای دستگاههای سختافزاری که هیچ معادل متنباز برای آنها وجود ندارد.
- universe – شامل بستههایی است که بهطور رسمی توسط تیم اوبونتو در Canonical پشتیبانی نمیشوند. با این حال، این بستهها توسط جامعه اوبونتو نگهداری میشوند و شامل بستههایی هستند که در مخزن اصلی موجود نیستند.
- multiverse – بستههایی که ممکن است با شرایط مجوز متنباز که تحت آن Ubuntu منتشر میشود به دلیل کپیرایت یا سایر مسائل قانونی مطابقت نداشته باشد.
فهرست مخازن فعال در حال حاضر در یک سیستم اوبونتو در فایل /etc/apt/sources.list موجود است که می تواند در یک ویرایشگر بارگذاری شود تا مشاهده و اصلاح شود. فایل ممکن است به صورت دستی در یک ویرایشگر بارگیری شود، یا با استفاده از انتخابی از ویرایشگرهای موجود با استفاده از فرمان زیر ویرایش شود:
1 |
# apt edit-sources |
چند خط اول این فایل معمولا به مخازن اصلی و محدود اشاره دارد، به عنوان مثال:
1 |
deb http://us.archive.ubuntu.com/ubuntu/ bionic main restricted |
در مثال بالا، لیست به گونهای پیکربندی شده است که امکان دانلود بستهها از مخازن اصلی و محدود را فراهم میکند. ورودیهای مخازن universe و multiverse نیز در فایل گنجانده میشود:
1 2 3 4 5 6 7 |
## N.B. software from this repository may not have been tested as ## extensively as that contained in the main release, although it includes ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports WILL NOT receive any review ## or updates from the Ubuntu security team. deb http://us.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse |
برای غیرفعال کردن یک مخزن به طوری که دیگر برای بارگیری بستهها مورد استفاده قرار نگیرد، کافی است خط را با پیشوند یک کاراکتر ## توضیح دهید:
1 |
# deb http://us.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse |
علاوه بر مخازن استاندارد، بسیاری از مخازن شخص ثالث نیز وجود دارد. در صورت نیاز به استفاده از یکی از این موارد، به سادگی یک ورودی برای آن به فایل sources.list اضافه کنید.
یکی از این نمونهها مخزن partner است که در فایل sources.list موجود است اما بهطور پیشفرض کامنت شده است:
1 |
# deb http://archive.canonical.com/ubuntu bionic partner |
برای فعال کردن این مخزن، به سادگی کاراکتر کامنت “#” را حذف کرده و فایل را ذخیره کنید.
مدیریت مخازن با نرمافزار و بهروزرسانی
به عنوان جایگزینی برای استفاده از خط فرمان، مخازن ممکن است از داخل محیط دسکتاپ گنوم با استفاده از برنامه Software & Updates پیکربندی شوند. برای راهاندازی این برنامه، کلید Super روی صفحهکلید را فشار دهید (در صفحهکلیدهای ویندوز این کلید Windows، در macOS کلید Command و در کرومبوکها کلیدی که یک ذرهبین را نمایش میدهد) و Software & Updates را در نوار جستجو وارد کنید. در پانل نتایج روی آیکون مربوطه کلیک کنید تا برنامه راهاندازی شود. یا یک پنجره ترمینال را باز کنید و فرمان زیر را اجرا کنید:
1 |
$ update-manager |
هنگامی که برنامه بارگذاری شد، همانطور که در شکل زیر نشان داده شده است، روی دکمه Settings کلیک کنید:
از صفحه settings، مخازن مورد نیاز فهرست شده در عنوان Downloadable from the Internet را فعال یا غیرفعال کنید:
برای فعال کردن مخازن Partner، زبانه Other Software را همانطور که در تصویر زیر نشان داده شده است انتخاب کنید:
برای افزودن مخازن شخص ثالث دیگر، روی دکمه Add… کلیک کنید و اطلاعات مخزن را در پنجره حاصل وارد کنید:
مدیریت بستهها با APT
ابزار apt راهی برای انجام اکثر وظایف مدیریت بسته بهطور مستقیم از خط فرمان فراهم میکند. در این بخش ما برخی از گزینههای خط فرمان apt را که بیشتر مورد استفاده قرار میگیرند را بررسی خواهیم کرد.
یک سیستم اوبونتو یک کپی محلی از آخرین اطلاعات بسته را نگه میدارد و به همین دلیل، توصیه میشود که این لیست قبل از انجام هر عملیات apt دیگری به شرح زیر به روز شود:
1 |
# apt update |
یکی از متداولترین فعالیتهای مناسب، نصب بسته است:
1 |
# apt install package_name |
به طور مشابه، بسته نصب شده ممکن است با استفاده از گزینه حذف از سیستم حذف شود:
1 |
# apt remove package_name |
هنگامی که یک بسته به این روش حذف می شود، فایل های پیکربندی مرتبط با بسته در سیستم باقی میمانند. این به بسته اجازه میدهد تا بعدا بدون از دست دادن تنظیمات پیکربندی سفارشی دوباره نصب شود. برای حذف این فایلها در حین حذف یا حتی پس از انجام حذف، از گزینه purge استفاده کنید:
1 |
# apt purge package_name |
برای به دست آوردن لیستی از بستههای موجود برای نصب، از apt به صورت زیر استفاده کنید:
1 |
# apt list |
از طرف دیگر، برای فهرست کردن فقط بستههایی که قبلا نصب شدهاند، از گزینه list با –installed شده استفاده کنید:
1 |
# apt list --installed |
برای بررسی اینکه آیا بسته خاصی از قبل روی سیستم نصب شده است یا خیر، گزینه list را با نام بسته ترکیب کنید:
1 |
# apt list package_name |
از گزینه search برای فهرست کردن همه بستههایی که با معیارهای خاصی مطابقت دارند استفاده کنید. به عنوان مثال برای لیست کردن تمام بستههای مربوط به وبسرور آپاچی فرمان زیر را اجرا کنید:
1 |
# apt search apache |
برای اینکه بفهمید کدام بسته حاوی یک فایل خاص است، از فرمان apt-file استفاده کنید. به عنوان مثال، برای لیست کردن نام بستههایی که حاوی فایلی به نام gimp هستند:
1 |
# apt-file --package-only list gimp |
برای مشاهده جزئیات یک بسته، apt را با گزینه show اجرا کنید:
1 |
# apt show apache2 |
خروجی معمولی از اجرای فرمان بالا ممکن است به صورت زیر باشد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
Package: apache2 Version: 2.4.29-1ubuntu4.13 Priority: optional Section: web Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Debian Apache Maintainers <debian-apache@lists.debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 535 kB Provides: httpd, httpd-cgi Pre-Depends: dpkg (>= 1.17.14) Depends: lsb-base, procps, perl, mime-support, apache2-bin (= 2.4.29-1ubuntu4.13), apache2-utils (= 2.4.29-1ubuntu4.13), apache2-data (= 2.4.29-1ubuntu4.13), perl:any Recommends: ssl-cert Suggests: www-browser, apache2-doc, apache2-suexec-pristine | apache2-suexeccustom, ufw Conflicts: apache2.2-bin, apache2.2-common Replaces: apache2.2-bin, apache2.2-common Homepage: http://httpd.apache.org/ Task: lamp-server Supported: 5y Download-Size: 95.1 kB APT-Sources: http://us.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages Description: Apache HTTP Server The Apache HTTP Server Project's goal is to build a secure, efficient and extensible HTTP server as standards-compliant open source software. The result has long been the number one web server on the Internet. . Installing this package results in a full installation, including the configuration files, init scripts and support scripts. |
انجام بهروزرسانی
در طول عمر سیستم عامل پایه و بستههای نرمافزاری نصبشده، بهروزرسانیهای متعددی برای رفع مشکلات و افزودن قابلیتها صادر میشود. برای دانلود و نصب دستی بهروزرسانیهای معلق از خط فرمان، اولین قدم این است که اطلاعات بسته ذخیره شده در سیستم محلی را با استفاده از apt با گزینه update بهروزرسانی کنید:
1 |
# apt update |
هنگامی که اطلاعات بسته به روز شد، آپگرید میتواند انجام شود. با این کار هر بهروزرسانی بستههای نصبشده در حال حاضر از مخازن پیکربندیشده در فایل sources.list دانلود و در سیستم نصب میشود:
1 |
# apt upgrade |
به عنوان جایگزینی برای خط فرمان، سیستم ممکن است با استفاده از برنامه Software & Updates دسکتاپ GNOME به روز شود. اگر بهروزرسانیها در دسترس باشند، کادر محاورهای نشان داده شده در تصویر زیر ظاهر میشود که گزینهای برای مشاهده اطلاعات مربوط به بهروزرسانیهای موجود و انجام آپگرید ارائه میکند:
فعال کردن بهروزرسانی خودکار
در بخش قبلی نحوه نصب دستی آپگرید بستهها بررسی شد. سیستمهای اوبونتو نیز ممکن است برای نصب خودکار آپگریدها پیکربندی شوند. این را میتوان از طریق خط فرمان یا از داخل ابزار Software & Updates پیکربندی کرد.
از داخل ابزار Software & Updates، صفحه تنظیمات را همانطور که قبلا ذکر شد باز کنید و روی برگه Updates کلیک کنید تا صفحه نمایش داده شده در تصویر زیر نمایش داده شود:
هر چند وقت یکبار سیستم باید برای بهروزرسانیها بررسی شود (روزانه، یک روز در میان، هفتگی و غیره). در مرحله بعد انتخاب کنید وقتی بهروزرسانیها در دسترس هستند، چه کاری انجام شود (فقط دانلود، دانلود و نصب، یا نمایش یک اعلان روی دسکتاپ). همچنین میتوانید بهروزرسانیکننده را پیکربندی کنید تا در صورت عرضه نسخههای جدید اوبونتو به شما اطلاع دهد.
برای پیکربندی بهروزرسانیهای خودکار از خط فرمان، مراحل زیر را دنبال کنید:
1. بسته unattended-upgrades را نصب کنید:
1 |
# apt install unattended-upgrades |
2. فایل /etc/apt/apt.conf.d/50unattended-upgrades را ویرایش کنید و خطوط زیر را در آن پیدا کنید:
1 2 3 4 5 |
"${distro_id}ESMApps:${distro_codename}-apps-security"; "${distro_id}ESM:${distro_codename}-infra-security"; // "${distro_id}:${distro_codename}-updates"; // "${distro_id}:${distro_codename}-proposed"; // "${distro_id}:${distro_codename}-backports"; |
3. نشانگرهای کامنت // را از انواع مخزنی که قرار است بهروزرسانیها بهطور خودکار برای آنها نصب شوند، حذف کنید.
4. فایل /etc/apt/apt.conf.d/20auto-upgrades را ویرایش کنید و فرکانس (بر حسب روز) سیستم را برای بررسی بهروزرسانیها چک کنید:
1 2 3 4 |
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::AutocleanInterval "0"; APT::Periodic::Unattended-Upgrade "1"; |
5. برای اطمینان از معتبر بودن تنظیمات، بهروزرسانی اجرای dry را انجام دهید:
1 |
# unattended-upgrades --dry-run --debug |
چند روز پس از پیکربندی بهروزرسانیهای خودکار، فایلهای گزارش را بررسی کنید تا تأیید کنید که بهروزرسانیها طبق برنامه انجام میشوند:
1 |
# cat /var/log/unattended-upgrades/unattended-upgrades.log |
فعال کردن Livepatch
مانند هر نرم افزار دیگری، هسته در معرض بهروزرسانیهایی برای رفع اشکالات و رفع آسیبپذیریهای امنیتی احتمالی است. اگرچه اکثر بستههای نرمافزاری را میتوان بدون نیاز به راهاندازی مجدد سیستمعامل بهروزرسانی کرد، اما از لحاظ تاریخی این موضوع در مورد کرنل صادق نبوده است. با معرفی Livepatch، این مورد دیگر برای اوبونتو وجود ندارد.
Livepatch یک سرویس اشتراک ارائه شده توسط Canonical است که اجازه میدهد تا هسته سیستمهای در حال اجرا اوبونتو بدون وقفه راهاندازی مجدد سیستم در حال اجرا پچ شود. این سرویس برای استفاده شخصی به صورت رایگان در حداکثر سه سیستم و برای تعداد بیشتری از سیستمها با اشتراک پولی Ubuntu Advantage در دسترس است.
اولین قدم در پیکربندی Livepatch این است که یک حساب Ubuntu One در URL زیر ایجاد کنید:
پس از ایجاد یک حساب کاربری، در پنجره مرورگر باقی بمانید و به URL زیر بروید:
وقتی صفحه بارگیری شد، نوع کاربری خود را انتخاب کنید (اگر مشتری اوبونتو پولی نیستید، کافی است گزینه Ubuntu User را انتخاب کنید):
سپس بر روی دکمه Get your Livepatch token کلیک کنید. در صفحه بعدی، با استفاده از اعتبارنامه Ubuntu One خود وارد شوید.
اکنون صفحهای نمایان میشود که حاوی کلید Livepatch شما و لیستی از فرمانهایی است که باید در سیستم اوبونتو اجرا شوند. دستورات را کپی کنید، یک پنجره ترمینال باز کنید و آنها را اجرا کنید:
1 2 |
# snap install canonical-livepatch # canonical-livepatch enable your_key_here |
توجه داشته باشید که به جای استفاده از apt، نصب فوق از سیستم مدیریت بسته snaip استفاده میکند، موضوعی که در دروس آینده پوشش داده خواهد شد. برای بررسی وضعیت Livepatch کافیست فرمان زیر را اجرا کنید:
1 2 3 4 5 |
# canonical-livepatch status last check: 2 minutes ago kernel: 5.3.0-46.38~20.04.1-generic server check-in: succeeded patch state: no livepatches needed for this kernel yet |
درباره فرشید نوتاش حقیقت
همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرمافزارهای آزاد/ متنباز و سیستمعامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.
نوشتههای بیشتر از فرشید نوتاش حقیقتاین سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش میشوند.
دیدگاهتان را بنویسید