Product SiteDocumentation Site

فصل 6. الصيانة والتحديث: أدوات APT

6.1. تعبئة الملف sources.list
6.1.1. صيغة الملف
6.1.2. مستودعات مستخدمي دبيان المستقرة
6.1.3. مستودعات مستخدمي الاختبارية أو غير المستقرة
6.1.4. Using Alternate Mirrors
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. واجهات APT: ‏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. البحث عن الحزم
ما يجعل دبيان شهيرة جداً بين مديري النظم هو سهولة تثبيت البرمجيات وسهولة تحديث النظام بالكامل. يعود الفضل الأكبر في هذه الميزة الفريدة للبرنامج APT (Advanced Package Tool)، الذي بحث فيه مديرو النظم في شركة فلكوت بتمعن.
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 "قائمة بمصادر الحزمة (المستودعات)": الملف /etc/apt/sources.list سوف يدرج المستودعات المختلفة التي تنشر حزم دبيان. ثم تستورد APT قائمة الطرود التي ينشرها كل من هذه المصادر. يتم تحقيق هذه العملية عن طريق تحميل ملفات Packages.xz أو متغير مثل حزم.gz أو . bz2 (باستخدام أسلوب ضغط مختلف) في حالة وجود مصدر للحزم الثنائية وبتحليل محتوياتها. في حالة مصدر الحزم المصدر، APT التنزيلات Sources.xz الملفات أو متغير باستخدام أسلوب ضغط مختلفة. عندما تكون نسخة قديمة من هذه الملفات موجودة بالفعل ، يمكن لـ APT تحديثها عن طريق تنزيل الاختلافات فقط (انظر الشريط الجانبي TIP Incremental updates).

6.1. تعبئة الملف sources.list

6.1.1. صيغة الملف

يمثل كل سطر نشط في الملف /etc/apt/sources.list مصدر حُزْمَة (مستودع) ويتكون من ثلاث أجزاء على الأقل مفصولة بمسافات. للحصول على وصف كامل لتنسيق الملف وتركيبات الإدخال المقبولة ، راجع 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 most common cases, 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. أقراص CD-ROM غير متوفرة دوماً بخلاف المدخلات الأخرى، لأنه يجب وضعها في السواقة التي لا تستطيع سوى قراءة قرص واحد في كل مرة. لهذا السبب، تدار هذه المصادر بطريقة مختلفة قليلاً، ويجب إضافتها باستخدام البرنامج apt-cdrom، باستخدام البارامتر add عادة. عندها سيطلب البرنامج إدخال القرص في السواقة ويتصفح محتوياته بحثاً عن ملفات Packages. ثم يستخدم هذه الملفات لتحديث قاعدة بيانات الحزم المتوفرة التي يديرها (تنفذ هذه العملية عادة بالأمر apt update). بعد ذلك، تستطيع APT أن تطلب إدخال القرص إذا احتاجت إحدى الحزم المخزنة عليه.

6.1.2. مستودعات مستخدمي دبيان المستقرة

هذا ملف sources.list قياسي لنظام يعمل بالنسخة المستقرة من دبيان:

مثال 6.2. ملف /etc/apt/sources.list لمستخدمي دبيان المستقرة

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

## Debian mirror

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

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

# Stable backports
deb https://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware
deb-src https://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware
This file lists all sources of packages associated with the Bookworm version of Debian (the current Stable suite as of this writing). In the example above, we opted to name “bookworm” 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. لذلك تضاف المصادر غير الرسمية عادة إلى نهاية الملف.
كملاحظة جانبية، معظم ما يذكر في هذه الأقسام عن النسخة المستقرة ينطبق أيضاً على المستقرة القديمة بما أن الأخيرة ليست إلا نسخة مستقرة سابقة لا تزال صيانتها جارية على التوازي مع الحالية.

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. التحديثات المقترحة

بعد إصدار التوزيعة المستقرة، لا يتم تحديثها إلا مرة واحدة كل شهرين تقريباً. المستودع proposed-updates هو المكان الذي يتم فيه تحضير التحديثات المنتظرة (تحت إشراف مديري الإصدارة المستقرة).
التحديثات المستقرة والأمنية التي تحدثنا عنها في القسمين السابقين متوفرة دائماً في هذا المستودع، لكن هناك تحديثات إضافية أيضاً، لأنه يمكن لمشرفي الحزم أيضاً إصلاح العلل المهمة لكنها لا تستحق الإصدار فوراً.
Anyone can use this repository to test those updates before their official publication. The extract below uses the bookworm-proposed-updates alias which is both more explicit and more consistent since bullseye-proposed-updates also exists (for the Oldstable updates):
deb https://deb.debian.org/debian bookworm-proposed-updates main contrib non-free non-free-firmware

6.1.2.4. المنقولات الخلفية للنسخة المستقرة

يستضيف المستودع stable-backports ”الحزم المنقولة خلفاً package backports“. يشير هذا المصطلح إلى حزم لبرمجيات حديثة أعيدت ترجمتها لتوزيعة قديمة (نقلت إلى الخلف)، وعادة ما يكون النقل إلى التوزيعة المستقرة.
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/bookworm-backports
$ sudo apt-get install -t bookworm-backports package

6.1.3. مستودعات مستخدمي الاختبارية أو غير المستقرة

فيما يلي ملف sources.list قياسي لنظام يعمل بالنسخة الاختبارية أو غير المستقرة من دبيان:

مثال 6.3. ملف /etc/apt/sources.list لمستخدمي دبيان الاختبارية/غير المستقرة

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

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

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

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

# Stable security updates
deb http://security.debian.org/ stable-security main contrib non-free non-free-firmware
deb-src http://security.debian.org/ stable-security main contrib non-free non-free-firmware
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 provides 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 على جميع مرايا دبيان، ويحوي حزماً غير موجودة في النسخة غير المستقرة بعد بسبب نوعيتها دون المعيارية — فهي غالباً نسخ تطويرية من البرمجيات أو إصدارات أولية (ألفا، بيتا، مرشح للإصدار rc = release candidate…). يمكن إرسال الحزمة إلى هناك أيضاً بعد إجراء تغييرات عليها يمكن أن تؤدي إلى مشاكل. يحاول المشرف بعدها استرجاعها بمساعدة المستخدمين المتقدمين القادرين على معالجة المشاكل الخطيرة. بعد هذه المرحلة الأولى، تُنقَل الحزمة إلى النسخة غير المستقرة، حيث تلقى جمهوراً أوسع بكثير ويتم فحصها بتدقيق أكبر بكثير.
يستخدم النسخة التجريبية عادة المستخدمون الذي لا يهتمون إذا تعطل نظامهم واضطروا لإصلاحه ثانية. تعطي هذه التوزيعة إمكانية استيراد حزمة يريد المستخدم تجربتها أو استخدامها عند الحاجة. تستخدم دبيان هذا المستودع بهذه الطريقة بالضبط، إذ أن إضافته إلى ملف sources.list لا تؤدي إلى استخدام حزمها آلياً. السطر الذي تجب إضافته هو:
deb https://deb.debian.org/debian experimental main contrib non-free non-free-firmware

6.1.4. Using Alternate Mirrors

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” لإعداد البروكسي)، لكن بيئة دبيان تقدم خيارات أفضل لمعالجة هذه المشكلة. البرمجيات المتخصصة المذكورة في هذا القسم أذكى من بروكسيات التخبئة (Cache Proxies) العادية لأنها تستطيع الاعتماد على البنية الخاصة لمستودعات APT (مثلاً تعرف هذه البرمجيات إذا انتهت صلاحية الملف أم لا، وبالتالي تستطيع ضبط فترة الاحتفاظ به).
يعمل apt-cacher وapt-cacher-ng مثل مخدمات التخبئة الوسيطة العادية. حيث يبقى الملف sources.list دون تعديل، لكن تُضبَطُ APT حتى تَستَخدِم أحد البرنامجين كبروكسي للطلبات الخارجية.
من ناحية أخرى، يعمل approx كمخدم HTTP ينسخ (أو يعكس ”mirror“) أي عدد من المستودعات البعيدة إلى عناوين URL من المستوى الأول خاصة به. تخزن العلاقات بين هذه المجلدات ذات المستوى الأول والعناوين البعيدة للمستودعات في /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 bookworm-security main contrib non-free non-free-firmware
deb http://localhost:9999/debian   bookworm main contrib non-free non-free-firmware