docs:package-manager

مدير الحزم صديقك

تمهيد

كثير من القادمين الجدد إلى نظام لينكس تجدهم يسألون “كيف أثبت كذا وكذا” يبحثون في غوغل ويدخل مواقع تزعم أنها نزودهم بطريقة لتثبيت كذا وينزل ملفات من هنا وهناك لا نعلم ماذا تحتوي ولا ماذا تؤثر على نظامه. مثلا كما يعلم الجميع أن نظام لينكس هو حرف ال L في LAMP (أي Linux Apache MySQL PHP) ومستخدمي ويندوز معتادون على جلب هذه الأشياء من خلال تنزيل برامج معينة تجمع وتسهل وتعد هذه الأشياء لويندوز مثل WAMP و XAMP المضحك المبكي أن هناك من يبحث عنها في لينكس متناسين أنها ساكن طبيعي في لينكس. لنتذكر أن توزيعات لينكس ما صنعت إلا لتجميع هذه المكونات وأشباهها وتيسير تثبيتها بطريقة مضمونة ومجربة وميسرة. لتثبيت مثلا لتثبيت أي من الحزم السابقة Apache أو MySQL أو PHP في توزيعتك المفضلة ما عليك إلا طلبها من مدير الحزم فيها وليس البحث عن توزيعة تضعها داخل توزيعتك. أيضا قبل أن تبحث عن برنامج بعينه مثلا برنامج

إن مدير الحزم في التوزيعة هو أهم مكون في التوزيعة وهو الذي يعطيها هويتها وعليك تعلم استعماله وسؤاله حتى ربما قبل سؤال غوغل.

الحزمة عبارة عن أرشيف يحتوي الملفات المطلوب توصيلها ومعها بيانات فوقية (تسمى ميتا) مثل رقم الإصدار والمزايا الموجودة فيها ومتطلبات التثبيت (الاعتماديات) والعلاقات بين الحزم كالتوافقية والإحلال والتعارض وماذا يشغل قبل وبعد التثبيت (سكربتات) …إلخ.

في توزيعات لينكس المختلفة لا يتم تناقل ملفات الحزم ثم ثتبيتها بل توضع هذه الملفات في مستودعات وعندما يطلب المستخدم حزمة معينة يتم جلب الحزمة تلقائيا من أحد مرايا المستودعات التي يثق بها المستخدم. والمرايا هي مواقع يكرر رفع حزم المستودع عليها (أي غالبا نفس الحزمة تكون مرفوعة بشكل مكرر على مئات الاستضافات). يتحكم المستخدم في المستودعات التي يريد أن يثق فيها وغالبا في التوزيعات الكبيرة مثل فيدورا وديبيان تحتوي مستودعات التوزيعة الرسمية عشرات الآلاف من الحزم البرمجية بحيث تغنيك عن الحاجة لإضافة مستودعات.

العمليات على الحزم

مدير الحزم يمكنه أن يساعدك على:

  • ما هي الحزم المثبتة.
  • ما هي الحزم المثبتة التي يطابق اسمها نمط معين مثلا *memcache*
  • ما هي الإصدارة المثبتة عندي من الحزمة الفلانية
  • ما هي الملفات الموجودة داخل الحزمة الفلانية. أين ملفات إعدادات خادم أباتشي؟ أين ملفات وثائق الحزمة الفلانية
  • ما هذا الملف أو البرنامج الغريب؟ ما هي الحزم المثبتة التي تمتلك هذا الملف؟
  • ما هي الحزم التي علي تثبيتها للحصول على الملف الفلاني أو البرنامج الفلاني أو الميزة الفلانية.
  • البحث في وصف الحزم مثلا ما هي الحزمة المتوفرة في أي من المستودعات التي تتعلق بالرسم ثلاثي الأبعاد أو التي يمكنها فتح النوع الفلاني من الملفات
  • تثبيت حزمة غير موجودة عندك (البحث عن مصدر موثوق لها وتنزيلها من الإنترنت ثم تثبيتها)
  • تحديث النظام بأكمله
  • تحديث عدد معين من الحزم
  • حذف عدد معين من الحزم
  • إضافة أو حذف أو تعطيل مستودع من طرف ثالث في حال عجزت مستودعات التوزيعة الرسمية عن تلبية طلبك
  • ما هي المستودعات الشائعة لتوزيعتك

حزم rpm

حزم rpm وهو نظام الحزم الذي بدأ من شركة ريدهات وتوزيعاتها وانتشر إلى توزيعات أخرى (مثل سوزة وماندريفا وغيرها) ثم أصبح المعيار الوحيد المعتمد من مؤسسة لينكس لإدارة الحزم وأصبح متاحا حتى في التوزيعات الأخرى التي لا تعتمده من باب التوافقية.

بعكس deb فإن حزم rpm تخرج إعداد الحزمة إلى مستوى آخر وتكتفي بتوصيلها دون إعدادها ولا تشغيلها لكنها قد تحمل معها إعدادات جاهزة للتشغيل. ملف rpm عبارة عن أرشيف cpio قياسي ذي حمولة مضغوطة حيث تدعم أكثر من خوارزمية. يتم إنتاج حزم rpm من ملف واحد يصف عملية البناء اسمه spec file.

وكما قلنا أنه عليك التعامل مع المستودعات وليس مع ملفات الحزم لذا عليك استعمال الأدوات الخاصة بذلك. الإصدارات الجديدة من فيدورا تستخدم dnf والقديمة و RHEL وسنتوس لا تزال تستخدم yum. أما سوزة فتستخدم zypper.

استعلام الحزم المثبتة

يمكن استعلام قاعدة بيانات الحزم المثبتة rpm db من خلال q أو query مثلا

rpm -q kernel
rpm -q gnome-shell

يمكن عرض كل الحزم المثبتة من خلال a أي all متبوعة بنمط اختياري

rpm -qa
rpm -qa 'py*doc*'

يمكن تخصيص طريقة العرض من خلال qf أي query format مثلا لطباعة حجم الحزمة ثم اسمها دون الإصدار ثم الإصدار وهكذا بالطريقة التي تريدها مما يسهل عليك مثلا ترتيب الحزم المثبتة حسب حجمها. مثلا الأمر التالي يطبع أكبر الحزم حجما

rpm --qf '%{size} %{name} %{version}-%{release}\n' -qa | sort -rn | head

وأنا غالبا ما آخذ نسخة من أسماء الحزمة دون إصداراتها وأحتفظ بها عندما أنتقل لنظام جديد

rpm --qf '%{name}\n' -qa | sort > rpms.txt

وعلى النظام الجديد انفذ نفس الآمر ثم أقارن بين الملفين (حزم النظام القديم وحزم النظام الجديد) من خلال meld أو diff -bu

الاستعلام عن المعلومات

تحتوي الحزم على معلومات فوقية تبين موقع البرنامج الرسمي ومن قام بعملية البناء ومتى وما هي رخصة البرنامج …إلخ وماذا يفعل البرنامج؟ كل هذا من خلال الاستعلام i أي information

$ rpm -qi eog
Name        : eog
Version     : 3.16.3
Release     : 1.fc22
Architecture: x86_64
Install Date: Sun 06 Sep 2015 06:07:18 PM EEST
Group       : User Interface/Desktops
Size        : 9091882
License     : GPLv2+ and GFDL
Signature   : RSA/SHA256, Fri 21 Aug 2015 07:36:06 PM EEST, Key ID 11adc0948e1431d5
Source RPM  : eog-3.16.3-1.fc22.src.rpm
Build Date  : Mon 17 Aug 2015 11:53:54 PM EEST
Build Host  : buildvm-05.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : https://wiki.gnome.org/Apps/EyeOfGnome
Summary     : Eye of GNOME image viewer
Description :
The Eye of GNOME image viewer (eog) is the official image viewer for the
GNOME desktop. It can view single image files in a variety of formats, as
well as large image collections.
 
eog is extensible through a plugin system.

يمكن عرض الملفات الموجودة في الحزمة من خلال l أي list أو من وثائق d أي documents أو من ملفات إعدادات c أي configurations أو ماذا تقدم من مزايا provides أو ماذا تتطلب من اعتماديات R أي Requires

rpm -ql httpd
rpm -qc httpd
rpm -qd httpd
rpm --provides -q httpd
rpm -R -q httpd

إذا كان ملف rpm موجود عندك لكنه غير مثبت يمكن استخلاص أي معلومة تريدها بإضافة p أو package file وهذا ينطبق على جميع الأوامر مثل استعلام المزايا المقدم أو المطلوبة أو الملفات الموجودة وليس على i فقط.

$ rpm -qip ~/Downloads/google-chrome-stable_current_x86_64.rpm
Name        : google-chrome-stable
Version     : 43.0.2357.125
Release     : 1
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/Internet
Size        : 187123138
License     : Multiple, see https://chrome.google.com/
Signature   : DSA/SHA1, Thu 11 Jun 2015 01:21:42 AM EEST, Key ID a040830f7fac5991
Source RPM  : google-chrome-stable-43.0.2357.125-1.src.rpm
Build Date  : Thu 11 Jun 2015 12:54:47 AM EEST
Build Host  : precise64build1.chrome.corp.google.com
Relocations : /opt 
Packager    : Chrome Linux Team <chromium-dev@chromium.org>
Vendor      : Google Inc.
URL         : https://chrome.google.com/
Summary     : Google Chrome
Description :
The web browser from Google
 
Google Chrome is a browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier.
 
$ rpm --provides -qp google-chrome-stable_current_x86_64.rpm
google-chrome = 43.0.2357.125
google-chrome-stable = 43.0.2357.125-1
google-chrome-stable(x86-64) = 43.0.2357.125-1
 
$ rpm -R -qp google-chrome-stable_current_x86_64.rpm | grep -i gdk
libgdk_pixbuf-2.0.so.0()(64bit)
libgdk-x11-2.0.so.0()(64bit)

يمكن استعراض ماذا تغير على الحزمة (من ومتى وماذا)

$ rpm --changelog -q httpd | head
* Wed Jul 15 2015 Jan Kaluza <jkaluza@redhat.com> - 2.4.12-4
- update to 2.4.16
 
* Tue Jul 07 2015 Joe Orton <jorton@redhat.com> - 2.4.12-3
- mod_ssl: use "localhost" in the dummy SSL cert if len(FQDN) > 59 chars
 
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.4.12-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
 
* Fri Mar 27 2015 Jan Kaluza <jkaluza@redhat.com> - 2.4.12-1

الاستعلام عن المزايا

ما هي الحزمة المثبتة التي توفر كذا؟

  1. ما هي الحزمة المسؤولة عن إصدار النظام؟
  2. ما هي الحزمة المثبتة التي يمكنها فتح ملفات ai ؟
rpm -q --whatprovides system-release
rpm -q --whatprovides 'mimehandler(application/illustrator)'

الاستعلام عن ملفات

ما هي الحزمة المثبتة التي جاء منها الملف الفلاني أو البرنامج الفلاني؟

$ rpm -qf /etc/system-release
fedora-release-22-1.noarch
$ rpm -qf `which netstat`
net-tools-2.0-0.31.20141124git.fc22.x86_64

مستودعات yum وأداتي dnf و yum

الأعمال اليومية البسيطة

فيدورا أعادت كتابة الجيل الجديد من yum واسمه dnf ليستعمل أفضل مزايا zypper وهي libsolv لكن الأجمل من ذلك هو أنها لم تغير شيء من الأوامر فقط ضع dnf مكان yum.

تثبيت حزمة ما أو ميزة ما تكون بمجرد كتابة yum أو dnf ثم مسافة ثم install ثم مسافة ثم أسماء الحزم أو المزايا المطلوب تثبيتها. كذلك إزالتها بنفس الطريقة لكن remove مكان install هكذا

yum install my-package
yum install my-feature
yum remove my-package

يمكن تمرير الخيار y لتجنب السؤال هل أنت متأكد معتبرا الجواب ضمنيا نعم.

يمكن تحديث النظام (كل الحزم المثبتة) بالأمر update ويمكن تحديد عدد من الحزم التي تريد تحديثها بعينها ويمكن استعمال الأنماط أيضا كأن تقول التي تبدأ بكذا فقط ويمكن استخدام الخيار x لاستثناء حزم بعينها من التحديث كما في هذه الأمثلة:

yum update -y
yum update -y kernel akmod*
yum update -y -x google-chrome-stable

يمكنك أيضا عرض تقرير عن التحديثات دون تطبيقها من خلال updateinfo summary

# yum updateinfo summary
Loaded plugins: fastestmirror, langpacks, refresh-packagekit
Updates Information Summary: available
     8 Security notice(s)
    21 Bugfix notice(s)
     5 Enhancement notice(s)
updateinfo summary done

تفعيل تفضيل أسرع المواقع

إذا كنت تستخدم dnf تأكد من أن الخيار انتقاء أسرع وأقرب المرايا مفعل fastestmirror في dnf.conf الموجود في /etc/dnf/dnf.conf بحيث يكون شكل الملف هكذا

[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=true
fastestmirror=1
keepcache=1

لاحظ أنني أيضا فعلت الاحتفاظ بالحزم التي ينزلها keepcache وذلك لأنه عند عمل ذلك سيتابع التنزيل حيث توقف في حال حدوث مشكلة (لكن عليك حذف ملفات الحزم من فترة لأخرى)

إذا كنت تستخدم yum تأكد من أن yum-fastestmirror مثبت

yum install yum-fastestmirror

<note>ميزة أسرع المرايا غير مفعلة تلقائيا لأنك قد تكون على لابتوب يتنقل من مدينة لأخرى أو من حي لآخر فهذه الميزة قد تجعله يجلب الحزم من موقع أبعد. الخوادم مواقعها ثابتة لذا يفضل تفعيها وفي الوطن العربي لا يوجد لدينا مرايا في كل حي ولا حتى في كل بلد لذا أيضا ننصح بتفعيلها.</note>

<note> المعلومات الفوقية الخاصة بمستودعات yum تتلخص في ملف واحد هو repodata/repomd.xml يشير هذا الملف للمعلومات الفوقية الموقعة حيث أن اسم الملف يحتوي بصمة checksum مثل sha256 بحيث يتغير اسم الملف بتغير محتواه مما يمنع المرايا الخبيثة من العبث بالمعلومات الفوقية كذلك يضمن لك أن تحصل على المعلومات الفوقية من أحدث المرايا (بعض المرايا أحدث من غيرها). </note>

تفعيل الفروقات

تأكد من تثبيت deltarpm حيث تمكنك من جلب الفروقات عوضا عن جلب حزم كاملة وبهذا توفر وقت التنزيل الطويل للحزم الكبيرة. عيب هذه الميزة أنها تزيد من استخدام المعالج عند إعادة بناء الحزمة من الفرق وإعادة البناء أيضا تستغرق وقت. إذا كان عندك إنترنت غير محدود وسرعة إنترنت عالية جدا جدا فلعلك تفضل إزالتها وليس تفعليها.

البحث وجمع المعلومات

هل لديك حزمة (سواء مثبتة أو غير مثبتة) ولا تعرف ماذا تفعل؟ ما إصدارها؟ من أي موقع جلبت؟ ما حجمها؟ هل تريد وصف مطول لما تفعله؟ يمكنك سؤال مدير الحزم من خلال info ويمكنك استعمال الخيار C للعمل دون إنترنت لأجل السرعة.

# yum -C info screen
Loaded plugins: fastestmirror, langpacks, refresh-packagekit
Installed Packages
Name        : screen
Arch        : x86_64
Version     : 4.1.0
Release     : 0.18.20120314git3c2946.fc20
Size        : 926 k
Repo        : installed
From repo   : updates
Summary     : A screen manager that supports multiple logins on one terminal
URL         : http://www.gnu.org/software/screen
License     : GPLv2+
Description : The screen utility allows you to have multiple logins on just one
            : terminal. Screen is useful for users who telnet into a machine or are
            : connected via a dumb terminal, but want to use more than just one
            : login.
            : 
            : Install the screen package if you need a screen manager that can
            : support multiple logins on one terminal.

إذا لم تكن تعرف اسم الحزمة بالضبط هناك اكثير من الطرق للبحث عنها منها

  • نمط لاسم الحزمة مثلا بكذا أو تنتهي بكذا أو تحتوي كذا
  • البحث عن كلمات في وصف الحزمة
  • البحث عن ميزة معينة (حزمة افتراضية) أو ملف داخل الحزمة أو مكتبة

يمكن سرد الحزم التي تطابق نمط معين من خلال الأمر list مثلا الحزم التي يبدأ اسمها ب python-doc

# yum -C list 'python-doc*'
Loaded plugins: fastestmirror, langpacks, refresh-packagekit
Installed Packages
python-docutils.noarch                         0.11-1.fc20               @fedora
Available Packages
python-docker-py.x86_64                        0.5.3-2.fc20              updates
python-docker-registry-core.noarch             2.0.1-2.fc20              updates
python-docopt.noarch                           0.6.1-3.fc20              updates
python-docs.noarch                             2.7.5-6.fc20              updates
python-docs-info.noarch                        2.7.5-6.fc20              updates

يمكن البحث عن كلمات مفتاحية في وصف الحزم من خلال الامر search مثلا للبحث عن كلمتي io و benchmark أو كلمتي python pdf

yum -C search io benchmark
yum -C search python pdf

فيدورا وريدهات وسنتوس وغيرها تحتوي ميزات مثل حزمة system-release الافتراضية والتي في فيدورا تكون fedora-release وفي سنتوس تكون centos-release يمكنك السؤال عنها.

في لغة بيرل هناك مكتبة اسمها XML::Parser::Expat يمكنك سؤال مدير الحزم ما هي الحزمة التي توفر هذه المكتبة؟

في لغة nodejs يوجد حزمة npm اسمها less غير حزمة less في التوزيعة يمكنك أن تسأل مدير الحزم ما هي حزمة rpm التي تحتوي حزمة npm التي اسمها less؟

ما هي الحزمة التي يمكنها فتح ملفات برنامج الأوتوكاد؟ ما هي الحزمة التي يمكنها فتح ملفات adobe illustrator؟

طيب ما هي الحزمة التي تحتوي الأمر killall أو الأمر nc؟ ما هي الحزمة التي تحتوي مكتبة libz.so.1؟

في كل هذه الحالات نحن لا نبحث عن اسم الحزمة ولا عن وصفها بل عن ميزة أو ملف موجود داخلها في مثل هذه الحالات نستخدم الأمر whatprovides وهذه هي الأوامر التي تقوم بذلك

yum -C whatprovides system-release
yum -C whatprovides 'perl(XML::Parser::Expat)'
yum -C whatprovides 'npm(less)'
yum -C whatprovides 'mimehandler(image/vnd.dxf)'
yum -C whatprovides 'mimehandler(application/illustrator)'
yum -C whatprovides '*bin/killall'
yum -C whatprovides '*bin/nc'
yum -C whatprovides '*libz.so.1'

مستودعات ZYpp وأداة Zypper

حزم deb

ديبيان (وبالتالي أوبنتو) يستخدم ملفات حزم خاصة به اسمها deb وهي عبارة عن أرشيف ar. يتم تحضيرها من خلال سكربتات متعددة ومتداخلة ومعقدة وغير موحدة توضع في مجلد اسمه debian إن لم يكن موجودا في كود الحزمة يتم حقنه فيها من خلال ملف الرقاع. ويتوفر برنامج alien كوسيلة لنقل حزم rpm القياسية المعتمدة من مؤسسة لينكس إلى النظام كوسيلة لاجتياز التوافقية مع معايير LSB.

إلى جانب أرشيف الملفات والمعلومات الفوقية تحتوي توزيعة ديبيان أداة لإعداد الحزمة بعد تثبيت ملفاتها اسمها debconf.

الأدوات المرتبطة بحزم ديبيان هي

  • apt-get - للمستودعات وما يتعلق بها (يمكنه أن يجلب الحزمة من المستودع)
  • aptitude - واجهة قوائم نصية
  • apt-cache
  • synaptic - أداة رسومية
  • dpkg - لملفات الحزم (هذه الأداة لا تعلم شيء عن المستودعات ولا يمكنها جلب شيء)
  • dpkg-query
  • dpkg-deb

مع الاسف إن كنت تحاول أتمتت تثبيت الخوادم دون متابعة unattended فإنك ستواجه مشكلة مع debconf حيث أنه أداة تفاعلية (رسومية إن شئت) لا يتم تثبيت الحزم إلا بأن تكون قائما عليها تتابعها وتتجاوب معها. للتخلص منه يمكنك وضعه في الطور غير التفاعلي من خلال DEBIAN_FRONTEND

DEBIAN_FRONTEND='noninteractive' apt-get install -y postfix

<note> من السهل أن يؤدي debconf إلى كوارث مثل تعطيل تحديث أمني بانتظار أن توافق على EULA لحزمة حلت محل أخرى أو بانتظار اختيار إعداد معين لحزمة معينة. استخدام الطور غير التفاعلي أمر مهم وضروري في الكثير من الأحيان خصوصا السكربتات. </note>

للبحث في الحزم المثبتة (تقريبا)

dpkg -l 'python-doc*'
dpkg -l | grep -v '^ii'

لمعرفة معنى ii و un و rc انظر هذه الوثيقة

لمعرفة الملفات الموجودة في حزمة مثبتة مثل apache2

dpkg -L apache2

للقيام بالبحث النصي في وصف الحزم المثبتة

dpkg -S benchmark

البحث عن الحزمة المثبتة التي تمتلك ملف معين نعمل بحث نصي

dpkg -S /etc/lsb-release 

لعرض معلومات عن حزمة مثبتة نستخدم الخيار p ثم اسم الحزمة

dpkg -p base-files

أما إذا كان معك ملف الحزمة فتستخدم أداة أخرى بخيار آخر

dpkg -I my-file.deb

لتثبيت حزمة ما نستخدم i ولأن غالبا ذلك يتطلب اعتماديات غير متوفرة نكرهه على ذلك ثم نصلحه

dpkg --force-all -i ~/Downloads/myfile.deb
apt-get install -y -f

<note> في yum يمكنك تثبيت ملف مع اعتمادياته فيما يعرف ب local install حيث يمكنك تمرير ملفات rpm إلى yum وهو يتولى اعتمادياته. ولا أعمل طريقة مكافئة لذلك في apt سوى كسر الاعتماديات بالإكراه ثم إصلاح الأمر كما في آخر مثال. </note>

مستودعات apt وأدواتها

التثبيت والحذف

بعكس yum لا يقوم apt بتحديث معلوماته مع كل عملية بمعنى قد يبدأ بجلب حزم وبعد تنزيل أغلب الملفات وفي وسط العملية يكتشف بأن هذا الملف أصبح يتضارب مع ذاك أو أن هناك إصدار أحدث من كذا وتفشل العملية. لذا وقبل كل عملية عليك تحديث المعلومات الفوقية بالأمر

apt-get update

لتثبيت حزمة مثل خادم أباتشي استخدم install لكن كن مستعدا للإجابة على debconf الذي قد يعمل ويستجوبك هل تريد كذا أم كذا أم لا تعلم؟

apt-get install apache2

يمكن تمرير الخيار y لتجنب السؤال هل أنت متأكد معتبرا الجواب ضمنيا نعم. وبما أن المعلومات الفوقية قد تكون غير سليمة يفضل أن تكتب

apt-get update && apt-get install -y apache2 

وحتى هذه لا تعمل دائما كما يجب وتتطلب بعض الحظ حيث أن عدد ملفات المعلومات الفوقية كبير جدا وموزع على خوادم مختلفة مما يعني أنها قد تختلف أثناء تنفيذ الأمر نفسه. إذا لم يحالفك الحظ حاول مرة أخرى لعل وعسى.

<note> إضافة إلى الإدارة غير المجدية للمعلومات الفوقية فإن apt معرض لهجوم المرايا الخبيثة حيث يمكن للشخص خبيث أن يتطوع لعمل مرآة لخوادم أوبنتو أو ديبيان وبعد أن يقبل يقوم بعمل هجوم الإعادة replay attach وهو ينجح حتى لو كانت الحزم موقعة إلكترونيا لأن المعلومات الفوقية غير موقعة. </note>

هناك نوعان من حذف الحزم حذف الحزم مع الإبقاء على إعداداتها وهذا يسمى remove وحذفها مع كل متعلقاتها من إعدادات وهذا يسمى purge.

apt-get purge apache2

<note> قد يقرر apt أن هناك حزمة ما لم تعد ضرورية ويحذفها بالمعية لذا لا أنصحك باستعمال y مع purge. قم بقراءة الحزم التي سيحذفها بالمعية وتأكد أنك لا تريد أيا منها. </note>

التحديث

يسمى تحديث الحزم في ديبيان وأوبنتو بالترقية upgrade وذلك لتمزيه عن تحديث المعلومات الفوقية update. وهو يقسم إلى نوعين أيضا upgrade و distupgrade وهذا الأخير اسمه غير موفق فهو لن يرقي إصدار التوزيعة بل فقط سيرقي الحزم المثبتة فيها. لتحديث جميع الحزم الموجودة عندك يمكنك أن تكتب

apt-get update && apt-get upgrade -y && -get upgrade distupgrade -y

ربما عليك تنفيذ الأمر السابق عدة مرات حتى تكون متأكد.

إصلاح الأخطاء

أحيانا ولأسباب مجهولة يتوقف apt عن العمل أو يكون عندك اعتماديات غير متحققة ونظام غير سليم يمكنك إصلاح ذلك بالأمر

apt-get install -y -f

في أحيان أخرى يكون عليك كتابة الأمر التالي لإصلاح الحزم المثبتة كي يعود apt للعمل

dpkg-reconfigure --force -a
آخر تعديل:: 02 تشرين الأول 2015 الساعة 19:05 بواسطة alsadi