كيفية عرض تبعيات الحزم في نظام لينكس على أي توزيعة

  • معرفة تبعيات الحزمة تساعد على تجنب أخطاء التثبيت والمشاكل عند تحديث البرامج أو إزالتها.
  • تتيح لك أدوات مثل apt-cache و dpkg-deb و rpm و yum و zypper أو pactree سرد التبعيات في التوزيعات الرئيسية.
  • من الممكن إعداد عمليات التثبيت دون اتصال بالإنترنت عن طريق تنزيل الحزم وتوابعها مسبقًا من أجهزة الكمبيوتر المتصلة بالإنترنت.
  • تسهل الأدوات المساعدة الإضافية مثل aptitude و debfoster و dselect إدارة الحزم المتقدمة وتنظيف التبعيات اليتيمة.

عرض تبعيات الحزم في لينكس: الأوامر والأمثلة العملية

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

سنتناول في هذه المقالة بالتفصيل وبأكثر الطرق العملية الممكنة، كيفية سرد تبعيات حزمة في نظام لينكس على توزيعات مختلفةسنتناول في هذا المقال أنظمة التشغيل Debian/Ubuntu (DEB)، وFedora/RHEL/CentOS (RPM)، وArch Linux، وopenSUSE، وكيفية معرفة المكتبات التي يستخدمها أي ملف تنفيذي. كما سنستعرض أوامر إدارة الحزم المفيدة لمساعدتك على فهم ما يحدث في الخلفية أثناء تثبيت أي برنامج.

لماذا أنت مهتم بمعرفة تبعيات حزمة برمجية؟

في أي توزيعة حديثة، تكون برامج إدارة الحزم مثل apt وdnf وyum وpacman وzypper قادرة على يقوم النظام تلقائيًا بحل معظم التبعياتتطلب تثبيت برنامج، فيقوم النظام بتثبيت كل ما يلزم. مع ذلك، توجد حالات عديدة يكون فيها من الضروري الاطلاع على هذه التبعيات بشكل صريح.

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

كما أن وضع العمل شائع جداً. sin conexión الإنترنت أو مع الأجهزة المعزولة. في هذه الحالات، يجب أن تكون قادرًا على تنزيل جميع التبعيات دفعة واحدة إلى جهاز متصل بالشبكة ثم نقلها عبر منفذ USB إلى الجهاز غير المتصل، بدلاً من المرور بعملية التجربة والخطأ، وملاحظة التبعيات المعطلة واحدة تلو الأخرى.

ومن النقاط المهمة الأخرى الصيانة طويلة الأجل: فمعرفة التبعيات تساعدك على اكتشاف الحزم التي تم تثبيتها فقط كمتطلب لحزم أخرى والتي لم تعد مطلوبة، تنظيف النظام وتقليل مساحة الهجوم والصراعات المحتملة، على سبيل المثال عن طريق قم بتهيئة بيئة سطح مكتب خفيفة الوزن.

كما أن وضع العمل شائع جداً. sin conexión الإنترنت أو مع الأجهزة المعزولة. في هذه الحالات، يجب أن تكون قادرًا على تنزيل جميع التبعيات دفعة واحدة إلى جهاز متصل بالشبكة ثم نقلها عبر منفذ USB إلى الجهاز غير المتصل، بدلاً من المرور بعملية التجربة والخطأ، وملاحظة التبعيات المعطلة واحدة تلو الأخرى.

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

قائمة التبعيات في توزيعات Debian (DEB)

في بيئة دبيان ومشتقاتها (أوبونتو، لينكس منت، إليمينتري أو إس، وغيرها) لدينا العديد من الأدوات القوية جدًا لإدارة و تحقق من تبعيات الحزمةسواء كان مثبتًا بالفعل أم لديك ملف .deb فقط.

عرض التبعيات من المستودعات باستخدام apt-cache

سرد تبعيات حزمة في لينكس

إذا كانت الحزمة موجودة في المستودعات المُكوّنة على نظامك، فإن أسهل طريقة للتحقق مما تحتاجه هي استخدام يعتمد apt-cache على اسم الحزمةيستعلم هذا الأمر عن قاعدة بيانات APT ويعرض لك قائمة الحزم التي تعتمد عليها الحزمة المستهدفة، بالإضافة إلى الحزم المقترحة والموصى بها.

على سبيل المثال، لعرض تبعيات برنامج vim على نظامي Debian أو Ubuntu، يمكنك تشغيل أمر مثل يعتمد apt-cache على vim وستحصل على قائمة تحتوي على سطور مثل "يعتمد على:" و "يقترح:"، مما يشير إلى الحزم الأساسية والحزم الاختيارية أو الموصى بها.

الأمر مفيد بنفس القدر apt-cache rdepends package_nameيُفيد هذا في رؤية العلاقة العكسية: ما هي الحزم الأخرى التي تعتمد عليها. وهذا أمرٌ بالغ الأهمية عند التفكير في إلغاء تثبيت شيء ما والرغبة في التحقق منه. ما الذي ستكسره أو ما الذي ستتخلص منه بشكل متسلسل؟ إذا قمت بإزالته.

إذا كنت ترغب في التعمق أكثر، يمكنك الاطلاع على المساعدة السريعة مع apt-cache –help أو انتقل مباشرةً إلى الوثائق التفصيلية مع رجل apt-cache، حيث سترى خيارات مثل show و pkgnames و stats أو unmet للتحقق من الإحصائيات أو التبعيات غير المحلولة أو المعلومات التفصيلية حول حزمة ما.

عرض تبعيات ملف .deb غير مُجمّع باستخدام dpkg-deb

عندما يكون ما لديك هو تم تنزيل حزمة .deb يدويًا (على سبيل المثال من موقع ويب أو جهاز كمبيوتر آخر) ولم يتم تثبيته بعد، يمكنك قراءة معلوماته الداخلية دون تثبيته باستخدام الأمر dpkg-deb -I package_name.deb.

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

تخيل أنك تريد معرفة ما تحتاجه حزمة ما، مثل python-glade2_2.13.0-0ubuntu8_i386.debعند تشغيل الأمر `dpkg-deb -I` عليه، سترى شيئًا مثل "المتطلبات: بايثون (<< 2.6)، بايثون (>= 2.4)، دعم بايثون (>= 0.7.1)... إلخ."، مما يشير بوضوح إلى جميع الأجزاء التي يجب أن تكون مثبتة مسبقًا أو التي ستحتاج إلى الحصول عليها.

قم بتنزيل الحزم دون تثبيتها باستخدام برنامج aptitude

لإنجاز المهمة عند إعداد عملية تثبيت غير متصلة بالإنترنت، سيكون هذا مفيدًا للغاية. قم بتنزيل ملفات .deb دون تثبيتها.أدوات مثل برنامج Aptitude تجعل الأمر سهلاً للغاية باستخدام الأمر تنزيل حزمة aptitude.

لذا، إذا قمت بتشغيل شيء مثل تحميل برنامج اختبار الكفاءة باستخدام VLCسيقوم النظام بتنزيل ملف VLC بصيغة .deb إلى مجلدك الحالي دون إضافته إلى النظام. وبدمج ذلك مع قراءة التبعيات باستخدام dpkg-deb، يمكنك جمع مجموعة كاملة من الحزم الضرورية في رحلة واحدة باستخدام جهاز USB الخاص بك، وتجنب الدورة الكلاسيكية المتمثلة في "التثبيت - هناك تبعية مفقودة - لاحظ الاسم - قم بالتنزيل مرة أخرى".

بالإضافة إلى التنزيل، يوفر برنامج aptitude مجموعة من الخيارات الموجهة نحو إدارة الحزم والتبعيات المتقدمة: البحث عن الكفاءة للبحث بالاسم، عرض الكفاءة للاطلاع على التفاصيل، الجدارة لماذا y لماذا لا نتمتع بالكفاءة؟ لشرح سبب وجوب (أو عدم وجوب) تثبيت حزمة معينة، أو محاكاة عمليات التثبيت باستخدام aptitude -rsvW install package للتحقق مما سيحدث دون لمس أي شيء.

تحقق من التبعيات والحزم باستخدام dpkg و apt-get و dselect

الأداة الأساسية في أنظمة دبيان هي نظام إدارة حزم دبيانوهو يتعامل مع الحزم الفردية. على الرغم من أنه لا يحل التبعيات بنفسه، إلا أنه يوفر خيارات مثل دبكج -I لعرض معلومات حول حزمة .deb غير المثبتة، دبكج -l لعرض قائمة الحزم المثبتة أو دبكج-L لمعرفة الملفات التي تقوم حزمة معينة بتثبيتها.

من جانبها، الرابطة بين الحصول على إنها واجهة APT الكلاسيكية التي تتيح لك تثبيت الحزم وتحديثها وإزالتها مع تبعياتها. أوامر مثل apt-get install, apt-get upgrade, apt-get dist-upgrade o apt-get check إنهم يتعاملون مع حل التبعيات، بل ويسمحون بمحاكاة عمليات التثبيت باستخدام -s لنرى ما سيحدث دون تطبيق أي تغييرات حقيقية.

أداة أخرى قديمة لكنها فعالة هي دسلكتيُوفر واجهة نصية تفاعلية لتصفح الحزم، واختيار ما يُراد تثبيته أو إزالته، وإدارة التبعيات بشكل مرئي. ورغم قلة استخدامه اليوم، إلا أنه يبقى خيارًا متاحًا لمن يُفضلون القوائم على حفظ الأوامر.

قم بتنظيف الطرود اليتيمة باستخدام ديبفوستر

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

فكرته بسيطة: عند تشغيله، فإنه يعرض لك قائمة بالحزم التي لم يتم وضع علامة عليها على أنها "مثبتة يدويًا" ويسألك واحدة تلو الأخرى عما إذا كنت تريد الاحتفاظ بها أم لا، مما يسمح لك بالرد بنعم (y) أو لا (n) أو مساعدة (h) أو مزيد من المعلومات (؟).

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

قائمة التبعيات في التوزيعات القائمة على RPM (فيدورا، RHEL، سنت أو إس...)

في عالم إدارة حزم البرامج (مثل فيدورا، وريد هات إنتربرايز لينكس، وسنت أو إس، وساينتيفيك لينكس، وألما لينكس، وروكي، وغيرها)، يكون المنطق متشابهًا، لكن الأدوات تختلف. دعونا نميز بين الحزم المثبتة من المستودعات وملفات .rpm غير المثبتة.

استخدم rpm لعرض التبعيات

تتمثل الفائدة الأساسية في هذه الأنظمة في دورة في الدقيقةوالذي يسمح لك بتثبيت الحزم وتحديثها وإزالتها والاستعلام عنها. ولأغراضنا، يهمنا بشكل خاص وظيفة الاستعلام مع الخيار -q وعلى وجه الخصوص، المتغيرات المتعلقة بالاعتمادية.

إذا كنت ترغب في معرفة ما تعتمد عليه حزمة مثبتة بالفعل أو متوفرة في قاعدة بيانات النظام، يمكنك استخدام rpm -qR اسم_الحزمةسيُظهر هذا الأمر متطلبات الحزمة، أي المكتبات والحزم الأخرى التي يجب أن تكون موجودة لكي تعمل بشكل صحيح.

عندما يكون لديك ملف .rpm محلي لم يتم تثبيته بعد، فإن الصيغة هي نفسها عمليًا، ولكن إضافة الخيار -p للإشارة إلى أنك ستطلع على ملف: ملف rpm -qpR .rpmبهذه الطريقة ستتمكن من رؤية تبعياته دون الحاجة إلى تثبيت أي شيء.

بالإضافة إلى الأمر -qR، يحتوي برنامج rpm على العديد من الإجراءات الأخرى ذات الصلة بإدارة الحزم، مثل -i للتثبيت، -U لتحديثه أو تثبيته إذا لم يكن موجوداً، -F للتحديث، قم بالتحديث فقط إذا كان الإصدار السابق متوفرًا بالفعل. -e لإلغاء التثبيت، -V للتحقق من -K للتحقق من سلامة العبوة.

قم بحل وعرض التبعيات باستخدام yum و dnf

يعتمد المديرون رفيعو المستوى على أدوات إدارة الأداء، مثل يم وفي الأنظمة الأكثر حداثة، DNFتقوم هذه الأدوات بحل التبعيات تلقائيًا وتوفر أوامر للتحقق منها بسهولة تامة.

باستخدام yum، على سبيل المثال، يمكنك استخدام yum deplit package_name لعرض تبعيات حزمة معينة، كما يحددها مدير الحزم في مستودعاته. من الممكن أيضًا التحقق من الحزمة التي توفر تبعية معينة باستخدام يوفر يوم o لذيذ! ما الذي يوفره؟، مفيد جداً عندما تعرف اسم المكتبة ولكن ليس اسم الحزمة التي تحتوي عليها.

بالإضافة إلى تثبيت (yum تثبيت)، تحديث (تحديث يم o ترقية)، اِسْتَبْعَد (يم إزالة أو في قديم الزمان)، ابحث (البحث yum) أو معلومات القائمة (معلومات لذيذة, قائمة yumالأمر تم حل المشكلة yum يسمح بالعرض أي الحزم تلبي تبعية معينةوهذا مثالي لفهم كيفية ترابط الأجزاء معًا.

من حيث المقارنات، قد تعتقد أن yum تثبيت وهو يعادل بشكل أساسي... دورة في الدقيقة -ivh o rpm -Uvh ولكن مع حل التبعيات التلقائي؛ ذلك يم إزالة يتوافق مع rpm -eأو ذلك معلومات لذيذة يقدم لك معلومات مشابهة لـ rpm -qiفي كثير من الحالات، يكون استخدام yum (أو dnf، في التوزيعات الأحدث) أكثر ملاءمة وأمانًا من التفاعل مع rpm فقط.

قائمة التبعيات في Arch Linux والمشتقات (pacman، pactree)

سرد تبعيات حزمة في لينكس

إذا كنت تعمل مع نظام Arch Linux أو توزيعات مبنية على Arch مثل Manjaro أو EndeavourOS، فمن المحتمل أنك على دراية به بالفعل. بكمن كمدير حزم. الأمر المثير للاهتمام في هذا السياق هو أن pacman يتضمن أداة إضافية تسمى باكتري، مصممة خصيصاً لإنتاج أشجار التبعية.

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

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

تحتوي الأداة على خيارات مختلفة لتعديل المخرجات، ولكن في معظم الحالات يكون استخدام `pactree package_name` أكثر من كافٍ. فهم بنية التبعية لحزمة في Archللحصول على تفاصيل متقدمة، يمكنك دائمًا الرجوع إلى الوثائق. رجل باكتري.

قائمة التبعيات في SUSE و openSUSE (zypper)

في أنظمة مثل SUSE و openSUSE، يكون مدير الحزم المرجعي هو zypperمما يسمح لك أيضًا بعرض تبعيات الحزمة بشكل مباشر، سواء على مستوى التثبيت أو مستوى المعلومات.

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

بهذه الطريقة، تمامًا كما هو الحال مع apt-cache أو rpm -qR، لديك رؤية واضحة للمكتبات والحزم الإضافية التي يجب أن تكون موجودة على النظام، ويمكنك توقع المشاكل المحتملة أو إعداد عمليات التثبيت على الأجهزة غير المتصلة بالإنترنت.

عرض تبعيات ملف ثنائي باستخدام الأمر ldd

لقد تحدثنا حتى الآن عن التبعيات على مستوى الحزمة، ولكن في كثير من الأحيان سترغب في المضي قدمًا والنظر إلى ما هي المكتبات الديناميكية التي يستخدمها ملف ثنائي معين؟سواء كان ملفًا تنفيذيًا للنظام، أو برنامجًا قمت بتجميعه بنفسك، أو ملفًا قام شخص ما بتمريره إليك.

هذا هو الغرض من الأمر. ldd ملف ثنائي، الذي يحلل الملف الثنائي ويعرض قائمة المكتبات المشتركة التي يقوم بتحميلها في وقت التشغيل، بالإضافة إلى مسار كل منها وعنوان الذاكرة الذي يتم ربطها به.

إذا كنت بحاجة إلى مزيد من التفاصيل، يمكنك استخدام ldd -v ملف ثنائي للحصول على معلومات إضافية، بما في ذلك تبعيات المكتبات المحملة نفسها. إنها أداة مفيدة للغاية لـ تشخيص أخطاء "لم يتم العثور على المكتبة"، مشاكل مع الإصدارات غير المتوافقة، أو ببساطة لفهم ما يستخدمه البرنامج بالضبط في الخلفية.

تثبيت الحزم والتبعيات بدون اتصال بالإنترنت

إحدى الحالات التي لا تزال شائعة إلى حد ما هي حالة أولئك الذين يحتاجون تثبيت البرامج على الأجهزة التي لا تتوفر فيها إمكانية الوصول إلى الإنترنتسواء كان ذلك بسبب الأمن أو قيود الشبكة أو ببساطة لعدم توفر اتصال، فهناك العديد من الحيل في بيئات Debian/Ubuntu التي يمكن أن تجعل حياتك أسهل.

من ناحية أخرى، يتم عادةً حفظ كل ما تقوم بتنزيله وتثبيته على نظام متصل في / فار / مخبأ / شقة / المحفوظاتهذا يعني أنه إذا قمت بتثبيت برنامج مثل VLC على جهاز كمبيوتر متصل بالإنترنت... sudo aptitude install vlcسيتم تخزين الحزمة الرئيسية وجميع تبعياتها في دليل التخزين المؤقت هذا.

إذا قمت بنسخ محتويات /var/cache/apt/archives إلى محرك أقراص USB، يمكنك نقله إلى الجهاز الذي لا يتوفر فيه اتصال بالإنترنت، ولصق جميع ملفات .deb في مجلد، ثم تشغيله. sudo dpkg -i * .deb جرب تثبيتها كلها دفعة واحدة. أحيانًا تنجح من المحاولة الأولى، وأحيانًا لا تنجح؛ ولكن على الأقل ستكون لديك معظم الأجزاء الضرورية محليًا.

الجانب الأقل متعة في هذه الطريقة هو ظهور الرسالة المعتادة في كثير من الأحيان. "الاعتماد غير المُلبّى" يتطلب تثبيت ملف .deb عادةً العودة إلى جهاز كمبيوتر متصل بالإنترنت، وتنزيل أي مكونات مفقودة، ثم تكرار العملية. ولتقليل هذه المحاولات المتكررة، تُعد أدوات مثل dpkg-deb -I وapt-cache depends وaptitude download بالغة الأهمية.

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

ملخص للأوامر الرئيسية لإدارة الحزم والتبعيات

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

على أنظمة ديبيان/أوبونتو، نظام إدارة حزم دبيان يوفر أوامر مثل dpkg -i package.deb لتثبيت أو تحديث، دبكج-ص o -P للقضاء على دبكج -l لعرض قائمة بالحزم، dpkg-s للاطلاع على معلومات حول عنصر محدد، دبكج-L لعرض قائمة الملفات التي يقوم بتثبيتها أو دبكج -S لمعرفة الحزمة التي ينتمي إليها ملف النظام.

في خطة APT، الرابطة بين الحصول على y الرابطة بين مخبأ وتُستكمل هذه الأوامر بأوامر للتثبيت والتحديث (install، upgrade، dist-upgrade)، وتنظيف ذاكرة التخزين المؤقت (clean، autoclean)، والتحقق من التبعيات (apt-get check) والحصول على قوائم بالحزم أو إحصائيات حول قاعدة البيانات.

في عالم RPM، دورة في الدقيقة يتولى البرنامج العمليات الأساسية (التثبيت، التحديث، إلغاء التثبيت، التحقق، الاستعلام عن المعلومات)، بينما يم ويوفر dnf طبقة من الراحة لـ حل التبعيات تلقائيًا، والبحث عن الحزم، وعرض المعلومات، والعمل مع المستودعات البعيدة.

أخيرًا ، أدوات مثل aptitude، dselect، debfoster، zypper أو pactree إنها تُكمل ترسانة التحكم الدقيق في ما يتم تثبيته، وما يتم حذفه، وما هو زائد عن الحاجة في النظام، وكيفية ارتباط الحزم والمكتبات المختلفة ببعضها البعض.

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

سمات ملفات لينكس
المادة ذات الصلة:
برنامج نصي لما بعد تثبيت نظام لينكس: كيفية أتمتة نظامك بعد التهيئة

أضف كمصدر مفضل