مقدمة
السلام عليكم ورحمة الله وبركاته،
أعتذر عن الأنقطاع في الفترة الماضية بسبب ظروف جامعية. سبب إختياري لكتابة هذا الموضوع هو إنشاء مرجع واحد متكامل لأوامر برامج إدراة الحزم على توزيعات لينكس.
أولا، لنبدأ بتعريف الحزم: الحزم هي برامج أو تبعيات تعتمد عليها برامج اخرى.
ثانيا، برامج إدارة الحزم تقوم بتنزيل، بتحديث أو حذف الحزم بطريقة تلقائية وسهلة. إما باستخدام أوامر الطرفية أو عن طريق برنامج المتجر على توزيعتك.
ثالثاً، قمت بالتركيز على أهم برامج إدارة الحزم على لينكس وهي 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)