در این مقاله، به شما آموزش داده می شود؛ که چگونه بسته‌هایی که نسخه‌های جدید آن‌ها در دسترس هستند را پیدا کنید؛ تا بتوانید از طریق خط فرمان روی سیستم‌های لینوکس آن‌ها را نصب نمایید. برای لیست کردن نسخه‌های جدید، در این مقاله از ابزارهای apt، apt-get، aptitude، yum، apt-check script و apticron  استفاده شده است. شرح استفاده از هر یک از این ابزارها در ادامه بیان شده است.

 

استفاده از دستور apt (برای نسخه‌های بالاتر از اوبونتو 14.04)

در نسخه‌های ابونتو 14.04 به بالا، دستور جدیدی به‌نام "apt" وجود دارد. با استفاده از این دستور بصورت زیر می‌توانید، نام تمام بسته‌های دارای نسخه جدید را به‌همراه نسخه‌های فعلی آنها و نسخه جدیدشان لیست کنید.

sudo apt list --upgradable
Listing... Done
gnupg/stable 1.4.18-7+deb8u2 amd64 [upgradable from: 1.4.18-7+deb8u1]
gpgv/stable 1.4.18-7+deb8u2 amd64 [upgradable from: 1.4.18-7+deb8u1]
libgcrypt20/stable 1.6.3-2+deb8u2 amd64 [upgradable from: 1.6.3-2+deb8u1]
libidn11/stable 1.29-1+deb8u2 amd64 [upgradable from: 1.29-1+deb8u1]
linux-image-3.16.0-4-amd64/stable 3.16.36-1+deb8u1 amd64 [upgradable from: 3.16.7-ckt25-2+deb8u3]

معمولاً این دستور باید بعد از بروزرسانی apt اجرا شود. در صورت وجود نسخه‌های جدید، این دستور به شما نشان می‌دهد؛ که چه تعداد از بسته‌ها را می‌توان به‌روزرسانی نمود و آن بسته‌ها چه بسته‌هایی هستند.

استفاده از دستور apt-get

در این بخش، از چندین گزینه به منظور لیست کردن بسته‌های موجود برای به روز شدن در دستور apt-get استفاده شده است.

apt-get upgrade --dry-run
[sudo] password for user:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
  libsqlite0 pgdg-keyring
Use 'apt-get autoremove' to remove them.
The following packages have been kept back:
  linux-generic linux-headers-generic linux-image-generic
The following packages will be upgraded:
  apparmor apport apt apt-transport-https apt-utils base-files bash bind9-host
  libapt-inst1.5 libapt-pkg4.12 libbind9-90 libblkid1 libc-bin libc-dev-bin
  libc6 libc6-dev libcairo-gobject2 libcairo-script-interpreter2 libcairo2
  libcairo2-dev libcgmanager0 libcomerr2 libcurl3-gnutls libdbus-1-3
  libdbus-1-dev libdns100 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2
  ...
  python-software-properties python-urllib3 python3-apport python3-apt
  python3-distupgrade python3-problem-report rsyslog systemd-services tcpdump
  util-linux uuid-runtime wget wpasupplicant x11-common x11proto-core-dev
  xtrans-dev
161 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Inst base-files [7.2ubuntu5.1] (7.2ubuntu5.2 Ubuntu:14.04/trusty-updates [amd64])
Conf base-files (7.2ubuntu5.2 Ubuntu:14.04/trusty-updates [amd64])
Inst bash [4.3-7ubuntu1.4] (4.3-7ubuntu1.5 Ubuntu:14.04/trusty-updates [amd64])
...

توجه داشته باشید که --dry-run به ما امکان می‌دهد، لیستی از فایل‌ها/بسته‌هایی را مشاهده نماییم؛ که به‌روز می‌شوند، اما باعث ایجاد تغییراتی نمی‌شوند.

 

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

 

گزینه‌های مشابه --dry-run، عبارتند از --just-print, -s, --simulate, , --dry-run, --recon, --no-act

به‌عنوان‌مثال می‌توانیم هر یک از دستورات زیر را اجرا کنیم.

# apt-get -s dist-upgrade | grep "^[[:digit:]]\+ upgraded"
87 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
# apt-get -s dist-upgrade | grep -Po "^[[:digit:]]+ (?=upgraded)"
87
# apt-get dist-upgrade -s --quiet=2 | grep ^Inst | wc -l
87

استفاده از دستور aptitude

برای به‌دست آوردن بسته‌های قابل به‌روزرسانی با استفاده دستور "aptitude"، به‌صورت زیر عمل کنید؛ تا لیست بسته‌های آماده برای به‌روزرسانی به شما نشان داده شود. بعضی از نسخه‌های aptitude، نیازی به استفاده از تک کوتیشن قبل و بعد از U~ ندارند.

aptitude search '~U'
...
i   scudcloud                                                                                                      - ScudCloud is a non official desktop client for Slack                                                                     
i   shim-signed                                                                                                    - Secure Boot chain-loading bootloader (Microsoft-signed binary)                                                           
i   smbclient                                                                                                      - command-line SMB/CIFS clients for Unix                                                                                   
i   strongswan                                                                                                     - IPsec VPN solution metapackage                                                                                           
i A strongswan-ike                                                                                                 - strongSwan Internet Key Exchange (v2) daemon                                                                             
i A strongswan-plugin-openssl                                                                                      - strongSwan plugin for OpenSSL                                                                                            
i A strongswan-starter                                                                                             - strongSwan daemon starter and configuration file parser                                                                  
i   sudo                                                                                                           - Provide limited super user privileges to specific users   
...

توجه داشته باشید؛ که این دستور به‌صورت آنلاین جستجو نمی‌کند، بلکه تنها بصورت محلی و در سیستم کاربر نسخه‌های جدید را جستجو می‌نماید.

بررسی با استفاده از اسکریپت apt-check

با استفاده از این اسکریپت می‌توانید، یک خروجی کوتاه از نسخه‌های به‌روزرسانی موجود در اوبونتو 14.04 بدست آورید.

# /usr/lib/update-notifier/apt-check -p
bind9-host
python3-problem-report
liblwres90
linux-headers-generic
libdns100
libisccfg90
...

در صورت استفاده از گزینه –human-readable، می‌توان خروجی خواناتری را به‌صورت زیر بدست آورد.

# /usr/lib/update-notifier/apt-check --human-readable
33 packages can be updated
30 updates are security updates

استفاده از دستور yum و up2date

Yum یک مدیر بسته نرم افزاری است؛ که بسته‌های موجود در سیستم‌های مبتنی بر RPM را نصب، به‌روزرسانی و حذف می‌کند. این دستور به‌طور خودکار با در نظر گرفتن وابستگی‌ها، نشان می‌دهد؛ که چه مراحل پیش نیازی برای نصب بسته‌ها باید اجرا شود. به‌منظور لیست به‌روزرسانی‌های موجود برای بسته‌های نصب شده، از دستور زیر می توانید استفاده نمایید:

yum list updates
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: centos.hyve.com
 * epel: mirrors.coreix.net
 * extras: centos.hyve.com
 * rpmforge: www.mirrorservice.org
 * updates: mirror.sov.uk.goscomb.net

kernel.x86_64                                                     2.6.32-504.3.3.el6  
...

 

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

 

ابزار بعدی up2date است. این ابزار، بسته‌هایی را از RHN (Red Hat Network) دانلود کرده و آنها را روی سیستم شما نصب می‌نماید. مزیت استفاده از up2date برای بروزرسانی/نصب بسته‌ها این است؛ که به‌طور خودکار مراحل پیش نیاز را اجرا نموده و بسته‌های اضافی مورد نیاز کاربر را دانلود می‌کند. گزینه l- نشان می‌دهد، چه آپدیت‌هایی برای دانلود و نصب وجود دارد.

up2date -l

استفاده از ابزار Apticron برای ایمیل کردن لیست به‌روزرسانی‌های موجود

اگر می‌خواهید سیستم شما بصورت خودکار بسته‌های جدید موجود را به شما اعلام کند، ابزار apticron ممکن است تنها ابزار مناسب برای این‌کار باشد. Apticron یک اسکریپت پوسته ساده است؛ که روزی یک بار توسط cron فراخوانی می‌شود. برای استفاده از این ابزار، ابتدا به‌صورت زیر آن را نصب کنید:

sudo apt-get install apticron

و سپس پیکربندی نمایید:

vim /etc/apticron/apticron.conf
    EMAIL="root@example.com"

اکنون apticron هنگامی‌که بسته‌های جدید در دسترس باشد، در طول روز یک بار ایمیل ارسال می‌کند. نمونه‌ای از این ایمیل به‌صورت زیر است:

    apticron report [Mon, 10 Jul 2017 10:42:01 -0800] ========================================================================

    apticron has detected that some packages need upgrading on:
    [your machine name] [ 1.2.3.4 ]

    The following packages are currently pending an upgrade:

    xfree86-common 4.3.0.dfsg.1-14sarge3
    libice6 4.3.0.dfsg.1-14sarge3
    libsm6 4.3.0.dfsg.1-14sarge3
    xlibs-data 4.3.0.dfsg.1-14sarge3
    libx11-6 4.3.0.dfsg.1-14sarge3
    libxext6 4.3.0.dfsg.1-14sarge3
    libxpm4 4.3.0.dfsg.1-14sarge3

    ========================================================================

    Package Details:

    Reading changelogs...
    --- Changes for xfree86 (xfree86-common libice6 libsm6 xlibs-data libx11-6 libxext6 libxpm4) ---
    xfree86 (4.3.0.dfsg.1-14sarge3) stable-security; urgency=high

    * Non-maintainer update by the Security Team:
    Fixes several vulnerabilities reported by iDefense
    (CVE-2006-6101, CVE-2006-6102, CVE-2006-6103)

    -- Moritz Muehlenhoff Sun, 9 Jul 2017 13:31:35 +0000

    ========================================================================

    You can perform the upgrade by issuing the command:

    apt-get dist-upgrade

    as root on faustus.example.com

    It is recommended that you simulate the upgrade first to confirm that
    the actions that would be taken are reasonable. The upgrade may be
    simulated by issuing the command:

    apt-get -s dist-upgrade

    -- apticron

به‌روز بودن نرم‌افزارهای سیستم شما، مهمترین کار برای محافظت از سیستم‌تان است. بدین منظور سیستم‌عامل های جدید می‌توانند شما را نسبت به به‌روزرسانی‌های موجود هشدار دهند، و یا حتی به‌طور خودکار به‌روزرسانی‌ها را اعمال نمایند. البته توجه داشته باشید؛ که ممکن است برخی از به‌روزرسانی‌ها برنامه را در سرور شما مجدداً راه‌اندازی کنند، و این کار ممکن است برای همه محیط‌ها مناسب نباشد.

 

 

منبع:

linoxide