Product SiteDocumentation Site

فصل 6. نگهداری و بروزرسانی: ابزار APT

6.1. پر کردن فایل sources.list
6.1.1. شیوه استفاده
6.1.2. مخازنی برای کاربران Stable
6.1.3. مخازنی برای کاربران Testing و Unstable
6.1.4. استفاده از آینه‌های جایگزین
6.1.5. منابع غیر-رسمی: mentors.debian.net
6.1.6. پروکسی کش برای بسته‌های دبیان
6.2. aptitude, دستورات apt-get و apt
6.2.1. راه‌اندازی
6.2.2. نصب و حذف
6.2.3. بروزرسانی سیستم
6.2.4. گزینه‌های پیکربندی
6.2.5. مدیریت اولویت بسته‌ها
6.2.6. کار با چندین توزیع مختلف
6.2.7. ردیابی خودکار بسته‌های نصب شده
6.2.8. APT Patterns
6.3. دستور apt-cache
6.3.1. The apt-cache policy Command
6.4. The apt-file Command
6.5. رابط‌های کاربری: aptitude و synaptic
6.5.1. aptitude
6.5.2. synaptic
6.6. بررسی صحت بسته‌ها
6.7. بروزرسانی کلی از یک توزیع پایدار به دیگری
6.7.1. فرآیند توصیه‌شده
6.7.2. بررسی مشکلات پس از بروزرسانی کلی
6.7.3. Cleaning Up after an Upgrade
6.8. بروز نگهداشتن یک سیستم
6.9. بروزرسانی‌های خودکار
6.9.1. پیکربندی dpkg
6.9.2. پیکربندی APT
6.9.3. پیکربندی debconf
6.9.4. مدیریت شیوه تعامل با خط فرمان
6.9.5. ترکیب جادویی
6.10. جستجو برای بسته‌ها
What makes Debian so popular with administrators is how easily software can be installed and how easily the whole system can be updated. This unique advantage is largely due to the APT program, which Falcot Corp administrators studied with enthusiasm.
APT is the abbreviation for Advanced Packaging Tool. What makes this program “advanced” is its approach to packages. It doesn't simply evaluate them individually, but it considers them as a whole and produces the best possible combination of packages depending on what is available and compatible according to dependencies.
APT needs to be given a “list of package sources (repositories)”: the file /etc/apt/sources.list will list the different repositories that publish Debian packages. APT will then import the list of packages published by each of these sources. This operation is achieved by downloading Packages.xz files or a variant such as Packages.gz or .bz2 (using a different compression method) in case of a source of binary packages and by analyzing their contents. In case of a source of source packages, APT downloads Sources.xz files or a variant using a different compression method. When an old copy of these files is already present, APT can update it by only downloading the differences (see sidebar TIP Incremental updates).

6.1. پر کردن فایل sources.list

6.1.1. شیوه استفاده

Each active line in the /etc/apt/sources.list file represents a package source (repository) and is made of at least three parts separated by spaces. For a complete description of the file format and the accepted entry compositions see sources.list(5).

مثال 6.1. Example entry format in /etc/apt/sources.list

deb url distribution component1 component2 component3 [..] componentX
deb-src url distribution component1 component2 component3 [..] componentX
فیلد اول نوع منبع را مشخص می‌کند:
deb
منبع بسته (مخزن) بسته های باینری
deb-src
منبع بسته (مخزن) بسته های منبع
The second field gives the base URL of the source. Combined with the filenames listed in the Packages.xz files, it must give a full and valid URL. This can consist in a Debian mirror or in any other package archive set up by a third party. The URL can start with file:// to indicate a local source installed in the system's file hierarchy, with http:// or https:// to indicate a source accessible from a web server, or with ftp:// or ftps:// for a source available on an FTP server. The URL can also start with cdrom: for CD-ROM/DVD/Blu-ray disc based installations, although this is less frequent, since network-based installation methods are eventually more common. More methods like ssh:// or tor+http(s):// are supported and are either described in sources.list(5) or their respective apt-transport-method package documentation.
The syntax of the last field depends on the structure of the repository. In the simplest case, you can simply indicate a subdirectory (with a required trailing slash) of the desired source. This is often a simple “./” which refers to the absence of a subdirectory. The packages are then directly at the specified URL. But in the most common case, the repositories will be structured like a Debian mirror, with multiple distributions, each having multiple components. In those cases, name the chosen distribution by its “codename” — see the list in sidebar جامعه کاربری بروس پرنس، رهبری بحث‌برانگیز — or by the corresponding “suite” (oldoldstable, oldstable, stable, testing, unstable) and then the components to enable. A typical Debian mirror provides the components main, contrib, and non-free.
مدخل‌های موجود در cdrom به تشریح CD/DVD-ROM می‌پردازد. بر خلاف سایر مدخل‌ها، یک CD-ROM همیشه در دسترس نیست چرا که باید داخل درایو قرار گیرد و در هر لحظه بیشتر از یک دیسک در آن جای نمی‌گیرد. به همین دلایل، این منابع به شیوه گوناگونی مدیریت می‌شوند و نیاز دارند که با برنامه apt-cdrom اضافه گردند که معمولا از پارامتر add آن استفاده می‌شود. در این مورد، برنامه به دنبال دیسک موجود می‌گردد و از فایل Packages آن استفاده می‌کند. برنامه با استفاده از فایل‌های موجود، پایگاه داده درونی خود را بروزرسانی می‌کند (این عملیات با استفاده از دستور apt update انجام می‌شود). از این لحظه به بعد، APT هر زمان به برنامه‌ای از این فهرست نیاز داشته باشد دیسک مورد نظر آن را درخواست می‌کند.

6.1.2. مخازنی برای کاربران Stable

در اینجا نمونه‌ای از فایل sources.list برای سیستمی که نسخه Stable دبیان را اجرا می‌کند، ارائه می‌شود:

مثال 6.2. فایل /etc/apt/sources.list برای کاربران نسخه پایدار دبیان

# Security updates
deb http://security.debian.org/ bullseye-security main contrib non-free
deb-src http://security.debian.org/ bullseye-security main contrib non-free

## Debian mirror

# Base repository
deb https://deb.debian.org/debian bullseye main contrib non-free
deb-src https://deb.debian.org/debian bullseye main contrib non-free

# Stable updates
deb https://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src https://deb.debian.org/debian bullseye-updates main contrib non-free

# Stable backports
deb https://deb.debian.org/debian bullseye-backports main contrib non-free
deb-src https://deb.debian.org/debian bullseye-backports main contrib non-free
This file lists all sources of packages associated with the Bullseye version of Debian (the current Stable suite as of this writing). In the example above, we opted to name “bullseye” explicitly instead of using the corresponding “stable“ aliases (stable, stable-updates, stable-backports) because we don't want to have the underlying distribution changed outside of our control when the next stable release comes out.
Most packages will come from the “base repository”, which contains all packages but is seldom updated (about once every 2 months for a “point release”). The other repositories are partial (they do not contain all packages) and can host updates (packages with newer version) that APT might install. The following sections will explain the purpose and the rules governing each of those repositories.
زمانی که نسخه مورد نظر از یک بسته در چند مخزن وجود دارد، اولین مخزنی که در فایل sources.list فهرست شده باشد مورد استفاده قرار می‌گیرد. به همین دلیل، منابع غیر-رسمی همیشه در انتهای فایل قرار می‌گیرند.
به عنوان یک نکته جانبی، اکثر مطالبی که در این قسمت درباره Stable گفته شد به طور یکسان در مورد OldStable نیز صدق می‌کند چرا که آن تنها یک نسخه قدیمی‌تر از Stable است که به صورت موازی مدیریت می‌شود.

6.1.2.1. بروزرسانی‌های امنیتی

Debian takes security seriously. Known software vulnerabilities in Debian are tracked in the Security Bug Tracker and usually get fixed in a reasonable timeframe. The security updates are not hosted on the usual network of Debian mirrors but on security.debian.org, a small set of machines maintained by the Debian System Administrators. This archive contains security updates prepared by the Debian Security Team and/or by package maintainers for the Stable and Oldstable distribution.
The server can also host security updates for Testing but this doesn't happen very often since those updates tend to reach that suite via the regular flow of updates coming from Unstable.
For serious issues, the security team issues a Debian Security Advisory (DSA) and announces it together with the security update on the mailing list (archive).

6.1.2.2. بروزرسانی‌های پایدار

این دسته به اهمیت بروزرسانی‌های امنیتی نیست اما باید قبل از انتشار نسخه پایدار بعدی، در اختیار کاربران قرار گیرند.
This repository will typically contain fixes for critical and serious bugs which could not be fixed before release or which have been introduced by subsequent updates. Depending on the urgency, it can also contain updates for packages that have to evolve over time, like spamassassin's spam detection rules, clamav's virus database, the daylight-saving time rules of all timezones (tzdata), the ESR version of Firefox (firefox-esr) or cryptographic keyrings like debian-archive-keyring.
In practice, this repository is a subset of the proposed-updates repository, carefully selected by the Stable Release Managers. All updates are announced on the mailing list (archive) and will be included in the next Stable point release anyway.

6.1.2.3. بروزرسانی‌های پیشنهادی

زمانی که توزیع Stable منتشر شود، در بازه زمانی ۲ ماه یکبار بروزرسانی می‌گردد. مخزن proposed-updates جایی است که برای برورزسانی‌های مورد انتظار در دوره بعدی تحت نظر مدیران انتشار پایدار تصمیمات مورد نظر گرفته می‌شود.
بروزرسانی‌های امنیتی و پایدار که در قسمت‌های قبل به آن‌ها پرداخته شد، در این مخزن قرار می‌گیرند اما مدیران بسته می‌توانند به رفع باگ‌های مهم که نیاز به انتشار بعدی ندارند، بپردازند.
Anyone can use this repository to test those updates before their official publication. The extract below uses the bullseye-proposed-updates alias which is both more explicit and more consistent since buster-proposed-updates also exists (for the Oldstable updates):
deb https://deb.debian.org/debian bullseye-proposed-updates main contrib non-free

6.1.2.4. بروزرسانی‌های پایدار قدیمی

مخزن stable-backports از “package backports” میزبانی می‌کند. این عبارت به بسته‌ای از یک نرم‌افزار اشاره می‌کند که برای یک توزیع قدیمی‌تر مجدد کامپایل شده است، به صورت عمومی برای Stable.
When the distribution becomes a little dated, numerous software projects have released new versions that are not integrated into the current Stable suite, which is only modified to address the most critical problems, such as security issues. Since the Testing and Unstable suites can be more risky, package maintainers sometimes voluntarily offer recompilations of recent software applications for Stable, which has the advantage to users and system administrators to limit potential instability to a small number of chosen packages. The page https://backports.debian.org provides more information.
Backports from stable-backports are only created from packages available in Testing. This ensures that all installed backports will be upgradable to the corresponding stable version once the next stable release of Debian is available.
Even though this repository provides newer versions of packages, APT will not install them unless you give explicit instructions to do so (or unless you have already done so with a former version of the given backport):
$ sudo apt-get install package/bullseye-backports
$ sudo apt-get install -t bullseye-backports package

6.1.3. مخازنی برای کاربران Testing و Unstable

در اینجا فایل استاندارد sources.list برای سیستمی که از نسخه‌های Testing یا Unstable دبیان استفاده می‌کند قرار دارد:

مثال 6.3. /etc/apt/sources.list برای کاربران دبیان در نسخه‌های Testing/Unstable

# Unstable
deb https://deb.debian.org/debian unstable main contrib non-free
deb-src https://deb.debian.org/debian unstable main contrib non-free

# Testing
deb https://deb.debian.org/debian testing main contrib non-free
deb-src https://deb.debian.org/debian testing main contrib non-free

# Testing security updates
deb http://security.debian.org/ testing-security main contrib non-free
deb-src http://security.debian.org/ testing-security main contrib non-free

# Stable
deb https://deb.debian.org/debian stable main contrib non-free
deb-src https://deb.debian.org/debian stable main contrib non-free

# Stable security updates
deb http://security.debian.org/ stable-security main contrib non-free
deb-src http://security.debian.org/ stable-security main contrib non-free
With this sources.list file APT will install packages from the Unstable suite. If that is not desired, use the APT::Default-Release setting (see قسمت 6.2.3, “بروزرسانی سیستم” ) to instruct APT to pick packages from another suite (most likely Testing in this case).
There are good reasons to include all those repositories, even though a single one should be enough. Testing users will appreciate the possibility to cherry-pick a fixed package from Unstable when the version in Testing is affected by an annoying bug. On the other hand, Unstable users bitten by unexpected regressions have the possibility to downgrade packages to their (supposedly working) Testing version.
The inclusion of Stable is more debatable but it often gives access to some packages, which have been removed from the development versions. It also ensures that you get the latest updates for packages, which have not been modified since the last stable release.

6.1.3.1. مخزن Experimental

بایگانی بسته‌های Experimental در تمام سرورهای دبیان موجود است و شامل بسته‌هایی می‌شود که در Unstable به دلیل ماهیت ناپایدار خود قرار ندارند - معمولا نسخه‌های اولیه نرم‌افزار مانند آلفا، بتا و ... هستند. همچنین بسته‌ای که مشکلات زیادی را بوجود آورد به این مخزن منتقل خواهد شد. مدیر بسته در این زمان با کمک کاربران پیشرفته که قادر به شناسایی مشکلات حاد هستند می‌تواند آن‌ها را برطرف کند. پس از این مرحله، بسته به Unstable منتقل می‌شود، جایی که در دسترس کاربران بیشتری قرار خواهد گرفت.
Experimental معمولا توسط کاربرانی استفاده می‌شود که از خراب کردن سیستم و تعمیر مجدد آن بیمی ندارند. این توزیع بیشتر به منظور آزمایشی بودن یک بسته برای رفع نیازهای جدید استفاده می‌شود. این دقیقا همان رویکردی است که دبیان نسبت به آن دارد، به صورتی که اضافه کردن آن در فایل sources.list منجر به استفاده گسترده از بسته‌های موجود در آن نخواهد شد.
deb https://deb.debian.org/debian experimental main contrib non-free

6.1.4. استفاده از آینه‌های جایگزین

The sources.list examples in this chapter refer to package repositories hosted on deb.debian.org. Those URLs will redirect you to servers which are close to you and which are managed by Content Delivery Networks (CDN) whose main role is to store multiple copies of the files across the world, and to deliver them as fast as possible to users. The CDN companies that Debian is working with are Debian partners who are offering their services freely to Debian. While none of those servers are under direct control of Debian, the fact that the whole archive is sealed by GPG signatures makes it a non-issue.
Picky users who are not satisfied with the performance of deb.debian.org can try to find a better mirror in the official mirror list:
But when you don't know which mirror is best for you, this list is of not much use. Fortunately for you, Debian maintains DNS entries of the form ftp.country-code.debian.org (e.g. ftp.us.debian.org for the USA, ftp.fr.debian.org for France, etc.) which are covering many countries and which are pointing to one (or more) of the best mirrors available within that country.
As an alternative to deb.debian.org, there used to be httpredir.debian.org. This service would identify a mirror close to you (among the list of official mirrors, using GeoIP mainly) and would redirect APT's requests to that mirror. This service has been deprecated due to reliability concerns and now httpredir.debian.org provides the same CDN-based service as deb.debian.org.

6.1.5. منابع غیر-رسمی: mentors.debian.net

There are numerous non-official sources of Debian packages set up by advanced users who have recompiled some software — Ubuntu made this popular with their Personal Package Archive (PPA) service — by programmers who make their creation available to all, and even by Debian developers who offer pre-versions of their package online.
The mentors.debian.net site is interesting (although it only provides source packages), since it gathers packages created by candidates to the status of official Debian developer or by volunteers who wish to create Debian packages without going through that process of integration. These packages are made available without any guarantee regarding their quality; make sure that you check their origin and integrity and then test them before you consider using them in production.
نصب یک بسته به معنی اهدا حقوق اولیه به خالق آن است، چرا که آن‌ها هستند تصمیم می‌گیرند چه محتوایی از طریق اسکریپت‌های راه‌انداز هنگام نصب قرار بگیرد. بسته‌های رسمی دبیان توسط داوطلبانی ایجاد شده‌اند که همکاری متقابل و بازنگری در بسته را داشته‌اند و کسانی که می‌توانند بسته‌ها را به صورتی تنظیم کنند تا جامعیت آن‌ها حفظ گردد.
In general, be wary of a package whose origin you don't know and which isn't hosted on one of the official Debian servers: evaluate the degree to which you can trust the creator, and check the integrity of the package.

6.1.6. پروکسی کش برای بسته‌های دبیان

زمانی که یک شبکه کامل از ماشین‌ها تنظیم شده‌اند تا از یک سرور بسته‌های بروزشده را دریافت کنند، هر مدیرسیستمی می‌داند که استفاده از یک کش محلی-شبکه بسیار مفید خواهد بود (قسمت واژگان Cache را مشاهده کنید)
می‌توانید APT را به گونه‌ای تنظیم کنید که مانند یک پروکسی "استاندارد" عمل کند (به قسمت 6.2.4, “گزینه‌های پیکربندی” برای قسمت APT و به قسمت 11.6, “پروکسی HTTP/FTP” برای قسمت پروکسی مراجعه کنید)، اما اکوسیتم دبیان گزینه بهتری برای حل این مشکل نیز دارد. نرم‌افزار منحصربفردی که در این قسمت معرفی می‌شود چیزی بیشتر از یک پروکسی کش ساده است چرا که می‌تواند ساختار مخازن APT را درک کند (برای نمونه، می‌داند چه زمان فایل‌های انفرادی عمرشان به پایان می‌رسد، و زمان مربوط به آن را به صورت خودکار تنظیم کند)
apt-cacher و sources.list مانند کش سرورهای معمولی کار می‌کنند. فایل apt-cacher-ng از APT بدون تغییر باقی می‌ماند، اما APT از آن‌ها به عنوان پروکسی برای درخواست‌های ارسالی خود استفاده می‌کند.
از طرف دیگر، approx به مانند یک سرور HTTP عمل می‌کند که فهرستی از مخازن راه‌دور را “بازتاب” می‌دهد. نگاشت بین دایرکتوری‌های سطح-اول و نشانی‌های راه‌دور درون فایل /etc/approx/approx.conf ذخیره می‌شود.
# <name>   <repository-base-url>
debian     https://deb.debian.org/debian
security   http://security.debian.org/debian-security
approx runs by default on port 9999 via a systemd socket and requires the users to adjust their sources.list file to point to the approx server:
# Sample sources.list pointing to a local approx server
deb http://localhost:9999/security bullseye-security main contrib non-free
deb http://localhost:9999/debian   bullseye main contrib non-free