مرجعك الكامل لأوامر برامج إدارة الحزم على لينكس

مقدمة

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

أولا، لنبدأ بتعريف الحزم: الحزم هي برامج أو تبعيات تعتمد عليها برامج اخرى.
ثانيا، برامج إدارة الحزم تقوم بتنزيل، بتحديث أو حذف الحزم بطريقة تلقائية وسهلة. إما باستخدام أوامر الطرفية أو عن طريق برنامج المتجر على توزيعتك.
ثالثاً، قمت بالتركيز على أهم برامج إدارة الحزم على لينكس وهي pacman، apt، dnf، zypper، واخيراً emerge.

قمت بتقسيم الأوامر لعدة اقسام حسب غرض الاستخدام. وبسم الله نبدأ،

الأوامر الأساسية

الأمر Arch Red Hat/Fedora Debian/Ubuntu SLES/openSUSE Gentoo
بحث عن حزمة. pacman -Ss dnf search apt search zypper search or zypper se [-s] emerge --search (-s)

or emerge --searchdesc (-S)
تثبيت حزمة أو حزم بالأسم pacman -S dnf install apt install zypper install or zypper in emerge
لمعرفة مصدر الحزمة أو الحزم و التبعيات التي تعتمد عليها الحزمة makepkg -s PKGBUILD dnf builddep apt build-dep zypper source-install (zypper si) or zypper install -d emerge, أو emerge --with-bdeps
يقوم بعرض الأمر فقط عوضاً عن القيام به pacman --print (أو -p) dnf --setopt=tsflags=test apt --simulate (أو -s, --dry-run, --just-print) zypper --dry-run emerge --pretend (-p)
أمر يستخدم للتبديل بين تأكيد أو تخطي الفعل pacman --confirm أو pacman --noconfirm dnf --assumeyes (-y) or dnf --assumeno apt --yes (-y) zypper --non-interactive (-n) or zypper --no-confirm (-y) emerge --ask (-a)
لتحديث مستودع الحزم المحلي على الجهاز pacman -Sy (قم بالنظر إلى تحذيرات التحديث الجزئي هنا) dnf check-update or dnf makecache apt update zypper refresh or zypper ref emerge --sync
لتحديث الحزم - التي يوجد لها حزم قديمة مثبتة pacman -Syu dnf upgrade apt upgrade zypper update or zypper up emerge -[a]uDN @world
لتحديث الحزم - نوع اخر من الأوامر التي تستخدم في التحديثات المعقدة، مثل تحديثات التوزيعات pacman -Syu dnf distro-sync apt dist-upgrade zypper dup emerge -[a]uDN @world
لحذف حزمة أو حزم وكل التبعيات التي تعتمد عليها الحزمة pacman -Rs dnf remove apt autoremove zypper remove or zypper rm emerge --depclean (-c)
لحذف حزمة أو حزم مع ملفات الاعدادات pacman -Rn ? apt purge ? n/a
لحذف حزمة أو حزم وكل التبعيات التي تعتمد عليها الحزمة مع ملفات الاعدادات pacman -Rns ? apt autoremove --purge ? n/a
لحذف الحزم التبعيات الغير مستخدمة في حزم اخرى (يتيمة). مثلاً بسبب الحزمة الاصلية قد تم حذفها pacman -Qdtq | pacman -Rs - (-Qdttq اختياري لحذف التبعيات (deps)) dnf autoremove apt autoremove zypper rm -u (لحذف حزمة) or zypper packages --unneeded (يستخدم للعرض فقط) emerge --depclean (-c)
لحذف الحزم التي ليست ضمن أي مستودع حالياً pacman -Qmq | pacman -Rs - dnf repoquery --extras aptitude purge '~o' ?
لتعليم حزمة مثبتة مسبقاً كتبعية مطلوبة pacman -D --asexplicit dnf mark install apt-mark manual zypper install --force (يحتاج لإعادة التثبيت) emerge --select (-w)
تثبيت حزمة كتبعية من دون تعليمها كمطلوبة pacman -S --asdeps dnf install وبعد ذلك أدخل dnf mark remove apt-mark auto n/a (feature request) emerge --oneshot (-1)
فقط يقوم بتثبيت الحزمة من دون القيام بعملية التثبيت pacman -Sw dnf download apt install --download-only (يقوم بحفظها في مجلد التخزين المؤقت التنزيل) أو أدخل apt download (لتخطي مجلد التخزين المؤقت) zypper --download-only emerge --fetchonly (-f)
لتنظيف ذاكرة التخزين المؤقت. pacman -Sc or pacman -Scc dnf clean all apt autoclean لتنظيف الحزم الغير مفيدة. apt clean zypper clean eclean distfiles
للدخول في بيئة (Shell) لإدخال عدة اوامر في جلسة واحدة dnf shell zypper shell
لعرض سجل/تاريخ إستخدام برنامج إدارة الحزم. read /var/log/pacman.log dnf history read /var/log/dpkg.log read /var/log/zypp/history read /var/log/portage
ﻷخذ معلومات الجهاز كله - لعرض, حفظ الحالة برنامج إدارة الحزم see /var/lib/pacman/local see /var/lib/rpm/Packages apt-cache stats emerge --info
ﻹستلام رسائل أيميلات تحتوي على تغييرات الحزم apt install apt-listchanges eselect news read

معرفة معلومات حزم معينة

الأمر Arch Red Hat/Fedora Debian/Ubuntu SLES/openSUSE Gentoo
لمعرفة كل أو بعض معلومات حزمةٍ ما pacman -Si or pacman -Qi dnf list or dnf info apt show or apt-cache policy zypper info or zypper if emerge -S, emerge -pv or eix
لعرض معلومات حزمة مثبتة pacman -Qi rpm -qi / dnf info installed dpkg -s or aptitude show zypper info or rpm -qi emerge -pv or emerge -S
لعرض معلومات حزمة في مستودع الحزم (غير مثبتةٍ) pacman -Si dnf info apt-cache show or aptitude show zypper info emerge -pv and emerge -S or equery meta
لعرض ملفات حزمة مثبتة pacman -Ql rpm -ql dpkg -L rpm -ql equery files or qlist
لعرض ملفات حزمة في مستودع الحزم (غير مثبتةٍ) pacman -Fl dnf repoquery -l or repoquery -l (من حزمة yum-utils) apt-file list pfl
لمعرفة الحزمة التي توفر FILE pacman -Qo rpm -qf (المثبتة فقط) or dnf provides (كل الحزم) or repoquery -f (من حزمة yum-utils) dpkg -S or dlocate rpm -qf (المثبتة فقط) or zypper search -f (كل الحزم) equery belongs or qfile
لعرض ملفات الحزمة. pacman -Ql or pacman -Fl dnf repoquery -l dpkg-query -L rpm -ql equery files or qlist
لعرض الحزم التي توفر معلومات على شكل خانات، تستخدم لمعرفة أو بحث عن معلومة في الحزمة pacman -F dnf provides apt-file search zypper what-provides or zypper wp equery belongs (للحزم المثبتة فقط) or pfl
البحث في كل الحزم لمعرفة أي وحدة منها تحتوي على ملف معين pacman -F dnf provides apt-file search or auto-apt zypper search -f equery belongs or qfile
لمعرفة التحديثات/التغيرات في حزمة معينة pacman -Qc dnf changelog apt-get changelog rpm -q --changelog equery changes -f

معرفة معلومات عن مجموعة حزم

الأمر Arch Red Hat/Fedora Debian/Ubuntu SLES/openSUSE Gentoo
بحث عن حزمة أو حزم بالبحث عن عبارة في الأسم، وصف الحزمة، الخ. pacman -Ss dnf search apt search zypper search or zypper se -s emerge -S or eix
قائمة لكل الحزم التي يوجد لها تحديث. pacman -Qu dnf list updates or dnf check-update apt list --upgradable zypper list-updates or zypper patch-check (just for patches) emerge -uDNp @world
لعرض قائمة بكل الحزم لكل مصادر التثبيت التي يديرها برنامج إدارة الحزم. pacman -Sl dnf list available apt-cache dumpavail or apt-cache dump (Cache only) or apt-cache pkgnames zypper packages portageq all_best_visible /
إنتاج قائمة بكل الحزم المثبتة pacman -Q dnf list installed dpkg --list | grep ^i zypper search --installed-only qlist -IC
قائمة بكل الحزم المثبتة الغير موجودة في مصدر تثبيت الان pacman -Qm dnf list extras apt --installed list | grep ,local zypper se -si | grep 'System Packages' eix-test-obsolete
قائمة بحزم تم إضافتها مؤخراً لمصدر تثبيت dnf list recent aptitude search '~N' or aptitude forget-new eix-diff
قائمة بالحزم المثبتة مع عرض النسخة installed local packages along with version pacman -Q rpm -qa dpkg -l or apt list --installed zypper search -s or rpm -qa qlist -ICv
البحث عن حزمة مثبتة بالأسم أو وصف الحزمة pacman -Qs rpm -qa '*<str>*' aptitude search '~i(~n $name|~d $description)' eix -S -I
قائمة بالحزم الغير مطلوبة من أي حزمة اخرى pacman -Qtt dnf leaves or package-cleanup --leaves --all deborphan -anp1 emerge -pc
قائمة بالحزم المثبتة من المستخدم أو التوزيعة (غير التبعيات) pacman -Qe dnf history userinstalled apt-mark showmanual grep -E ‘^i\+’ (workaround) emerge -pvO @selected or eix --selected
قائمة بالحزم المثبتة أوتوماتيكياً (التبعيات) pacman -Qd grep -E ‘^i[^+]’ (workaround) apt-mark showauto

معرفة معلومات تبعيات الحزم

الأمر Arch Red Hat/Fedora Debian/Ubuntu SLES/openSUSE Gentoo
لعرض الحزم التي تتطلب وجود “س” لكي تتثبت الحزمة. pacman -Sii or pacman -Qii dnf repoquery --alldeps --whatrequires or repoquery --whatrequires apt-cache rdepends or aptitude search ~D$pattern zypper search --requires emerge -pvc
لعرض حزم تتعارض مع العبارة المدخلة (عادةً مع حزمة اخرى) pacman -Si or pacman -Qi dnf repoquery --conflicts aptitude search '~C$pattern'
قائمة بالحزم المطلوبة لتثبيت حزمة معينة pacman -Si or pacman -Qi dnf repoquery --requires or repoquery -R apt-cache depends or apt-cache show zypper info --requires emerge -ep
قائمة بما تحتاجه/توفره الحزمة الحالية pacman -Sii or pacman -Qii dnf repoquery --provides dpkg -s or aptitude show zypper info --provides equery files or qlist
قائمة بالحزم التي تحتاج حزمة معينة pacman -Sii dnf repoquery --installed --alldeps --whatrequires aptitude search ~D{depends,recommends,suggests}:$pattern or aptitude why zypper search --requires equery depends -a
لعرض كل الحزم التي تجعل من الحزمة المعينة أن تكون قديمة pacman -Si or pacman -Qi dnf list obsoletes apt-cache show
إنشاء مردود مناسب للمعالجة من قبل dotty لحزمة/حزم معينة apt-cache dotty

إدارة مصادر التثبيت للحزم

الأمر Arch Red Hat/Fedora Debian/Ubuntu SLES/openSUSE Gentoo
موقع إدارة مصادر التثبيت edit /etc/pacman.conf edit /etc/yum.repos.d/${REPO}.repo edit /etc/apt/sources.list edit /etc/zypp/repos.d/${REPO}.repo layman or eselect repository
ﻹضافة مصدر تثبيت للنظام. قد تختلف طريقة التعامل مع المصادر من توزيعة لاخرى. edit /etc/pacman.conf dnf config-manager apt-cdrom add zypper ar <URL or .repo file> layman or overlays
لتحديث المعلومات المعينة في مصدر تثبيت أو كل مصادر التثبيت pacman -Sy (قم بتحديث النظام بعدها دائما) dnf clean expire-cache and then dnf check-update apt-get update zypper refresh or zypper ref emerge --sync or layman -S
لعرض قائمة بكل مصادر التثبيت مع معلوماتها مثل: الأسم، رابط المصدر cat /etc/pacman.d/mirrorlist cat /etc/yum.repos.d/* apt-cache policy zypper repos or zypper lr layman -l or eselect repository list
قائمة بكل الحزم من مصدر تثبيت معين paclist <repo> zypper search -r <repo> or zypper se -r <repo> eix --in-overlay
لتعطيل مصدر معين لأجل عملية معينة dnf --disablerepo= emerge package::repo-to-use
لتنزيل حزم بنسخة أخرى من الحزمة المثبتة pacman -S _repo_name_/_package_ dnf --releasever= apt-get install -t release package or apt-get install package/release (التبعيات غير مشمولة) zypper install -r <repo> package echo "category/package ~amd64" >> /etc/portage/package.keywords بعد ذلك أدخل emerge package

تعطيل عمليات معينة

الأمر Arch Red Hat/Fedora Debian/Ubuntu SLES/openSUSE Gentoo
أضافة قفل على حزمة معينة لحفظ حالتها الحالية edit /etc/pacman.conf تعديل مصفوف IgnorePkg edit dnf.conf إضافة/تعديل عبارة exclude apt-mark hold pkg zypper al أو قم بوضع اسم الحزمة في /etc/zypp/locks /etc/portage/package.mask
ﻹزالة القفل من حزمة معينة edit /etc/pacman.conf إزالة الحزمة من IgnorePkg apt-mark unhold pkg zypper rl أوإزالة الحزمة من /etc/zypp/locks /etc/portage/package.mask (أو package.unmask)
لعرض كل الحزم التي عليها قفل cat /etc/pacman.conf /etc/apt/preferences zypper ll أو معاينة /etc/zypp/locks cat /etc/portage/package.mask
لوضع أولوية لحزمة معينة لتجنب التحديث، او عكس تحديث أو استبدال سلوك الحزمة العادي. يمكن استخدام الامر لتفضيل حزمة اخرى منمصدر تثبيت اخر edit /etc/pacman.conf قم بتعديل HoldPkg مع/أو تعديل مصفوفة IgnorePkg /etc/apt/preferences, apt-cache policy zypper mr -p edit /etc/portage/package.accept_keywords adding a line with =category/package-version
ﻹزالة أولوية سابقة /etc/apt/preferences zypper mr -p edit /etc/portage/package.accept_keywords
لعرض قائمة بكل الاولويات الموضوعة apt-cache policy or /etc/apt/preferences zypper lr -p grep -r . /etc/portage/package.accept_keywords
لتجاهل المشاكل التي تكون بسبب الأولويات n/a

التحقق و التصليح

الأمر Arch Red Hat/Fedora Debian/Ubuntu SLES/openSUSE Gentoo
للتحقق من حزمة واحدة pacman -Qk (can add another k) rpm -V debsums rpm -V equery check
للتحقق من كل الحزم pacman -Qk (can add another k) rpm -Va debsums rpm -Va equery check
لإعادة تثبيت الحزمة المرادة pacman -S dnf reinstall apt install --reinstall zypper install --force emerge -1O
للتحقق من تبعيات النظام بكامله; يستخدم في حالة ايقاف عملية التثبيت عمداً pacman -Dk dnf repoquery --requires apt-get check zypper verify emerge -uDN @world
ﻹصلاح التبعيات المعطوبة في النظام لأجل تبعيات pacman, استخدم pacman -Dk; لأجل مكتبة مشتركة, استخدم findbrokenpkgsAUR أو lddd (من devtools) dnf repoquery --unsatisfied apt-get --fix-broken and then aptitude install zypper verify revdep-rebuild
إضافة نقطة تفتيش لبرنامج إدارة الحزم; للرجوع لتلك الحالة في حالة حصول مشكلة (ليس ضروري, بسبب أن برنامج الحزم يقوم بذلك عن كل تثبيت) n/a
لإزلة نقطة تفتيش من برنامج إدارة الحزم n/a n/a n/a
قائمة بكل نقاط التفتيش لبرنامج إدارة الحزم n/a dnf history list n/a
إعادة كل الحزم لنقطة تفتيش معينة أو وقت معين n/a dnf history rollback n/a
الغاء عملية تثبيت معينة n/a dnf history undo n/a

أستخدام ملفات الحزم لبناء حزم أخرى

الأمر Arch Red Hat/Fedora Debian/Ubuntu SLES/openSUSE Gentoo
لمعرفة حزمة موجودة على موجه الأوامر بدلا من التحقق من مستودع برنامج إدارة الحزم pacman -Qp rpm -qp dpkg -I
لعرض محتويات ملف الحزمة pacman -Qpl rpmls rpm -qpl dpkg -c rpm -qpl
لتثبيت حزمة من ملف حزمة, مثلاً: حزمة بصيغة deb أو rpm وأستخدام مصادر التثبيت لتثبيت التبعيات pacman -U dnf install apt install zypper in emerge
لتحديث حزمة أو حزم مع حزم مثبتة مع استخدام مصادر التثبيت لتثبيت التبعيات pacman -U dnf upgrade debi emerge
إضافة حزمة مثبتة لمجلد التخزين المؤقت المحلي لأجل للتصحيح والتجارب. cp _package-filename_ /var/cache/pacman/pkg/ apt-cache add _package-filename_ n/a cp _package-filename_ /usr/portage/distfiles
فك ضغط حزمة tar -xvf rpm2cpio | cpio -vid dpkg-deb -x rpm2cpio | cpio -vid tar -jxvf
تثبيت/حذف حزم لتلبية تبعيات بناء الحزمة. باستخدام المعلومات في مصدر الحزمة Use ABS and makepkg -seoc dnf builddep apt-get build-dep zypper si -d emerge -o
لعرض مصدر الحزمة باستخدام الأسم dnf repoquery -s apt-cache showsrc n/a
لتنزيل مصدر الحزمة باستخدام الأسم استخدم ABS و makepkg -o dnf download --source apt-get source or debcheckout zypper source-install emerge --fetchonly
بناء الحزمة makepkg -s rpmbuild -ba (في الوضع العادي) or mock (في وضع chroot) debuild rpmbuild -ba, قم بالبناء, وبعد ذلك osc build ebuild or quickpkg
تحقق من وجود مشاكل في الحزمة namcap (يحتاج إلي namcap) rpmlint lintian rpmlint repoman

الخاتمة

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

المصدر من موقع آرتش لينكس

6 إعجابات

سلمت يداك علي هذا المرجع المفصل

إعجابَين (2)

الله يسلمك :rose:

موضوع جميل, شكرا لك

إعجاب واحد (1)