شرح التعامل مع مستودعات فيدورا وما بني عليها

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته



مجدد شرح التعامل مع مستودعات فيدورا وما بني عليها :





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


أولا ما هي المستودعات وماذا تحتوي المستودعات بشكل بسيط هي غالبا مواقع على الإنترنت كأي موقع قد تكون http أو مثلا ftp إلخ ...أو ممكن حتى أن تكون مجلد نضيفه نحن .وهي من إسمها واضح معناها مستودع يتم تخزين الأشياء فيه  وبداخل هذه المستودعات يتم تخزين حزم مثلا معنا الأن في فيدورا حزم rpm هذه الحزم حتى يُفهم معناها بشكل بسيط ممكن تشبهها بملفات التثبيت exe في ويندوز ... 

في فيدورا أو أي توزيعة بنية عليها ستجدون عناوين هذه المستودعات في مجلد بهذا المسار etc/yum.repos.d/ داخل هذا المجلد ستجدون ملفات نصية عادية تنتهي باللاحقة repo. يمكن قراءة ما بداخل هذه الملفات ستجدون بداخلها مثلا إسم المستودع و رابط المستودع وحالته هل هو مفعل أو تم تعطيله حيث يمكن التحكم بالمستودعات يدويا أو من مدير الحزم كما سأشرح في الأسفل وهناك بعض التفاصيل اﻷخرى التي ليس وقتها الأن .






الأن هناك أكثر من طريقة للتعامل مع المستودعات من حذف إضافة إلخ...:


1-بكل بساطة كما قلنا أن رابط المستودعات والمعلومات عنه يكونوا بملف نصي بأي إسم وبنتهي ب repo.  وهذا الملف يكون في مجلد etc/yum.repos.d/ الأن بكل بساطة ممكن إضافة المستودع من خلال الدخول على هذا المجلد وتنزيل هذا الملف بداخله من خلال أي برنامج تنزيل مثلا برنامج wget تصفحو معي هذا الملف النصي الذي ينتهي ب repo. في الرابط في الأسفل وهو مستودع لأخ إسمه أبو زكريا فيه الكثير من البرامج من تطويره وواجهة العقاب المستودع لفيدورا 23 وما بنيه عليها.

لاحظو أنه ملف نصي عادي جدا بداخله معلومات عن المستودع ولاحظو رابط المستودع في baseurl إعملو نسخ لصق للرابط وقومو بتصفحه بأي متصفح مواقع  لتلاحظو أنه ممكن تصفح الحزم الموجودة فيه كأي موقع على الإنترنت ونلاحظ رابط لملف gpgkey وهو مفتاح المستودع لن أدخل بالتفاصيل لأني لا أعلم الكثير عنه  لكنه شيء للأمان لاحظو gpgcheck=1 رقم 1 يعني هذا الخيار مفعل رقم 0 يعني غير مفعل وممكن أيضا أن يتم حفظ ملف التحقق في مجلد  /etc/pki/rpm-gpg/  لاحظو أيضا أن المستودع سيكون مفعل enabled=1 وطبعا مذكور إسم المستودع name  على العموم قومو بقراءة الملفات داخل مجلد etc/yum.repos.d/ لتعرفو كيف يكون شكل ملف المستودع  لأنه قد يحتوي أكثر من رابط  لأكثر من معمارية وبعض التفاصيل اﻷخرى.

الأن كيف سأضيف هذا المستودع بكل بساطة كما قلت في الأعلى أدخل على مجلد etc/yum.repo.d/ وأقوم بتنزيل هذا الملف النصي الذي يحتوي المعلومات وينتهي بي repo. ونلاحظ أننا نحتاج صلاحيات الجذر root .

cd /etc/yum.repos.d
sudo wget http://download.opensuse.org/repositories/home:/abouzakaria/Fedora_23/home:abouzakaria.repo

الأن ممكن حذف المستودع عن طريق حذف هذا الملف .
sudo rm /etc/yum.repos.d/home:abouzakaria.repo

و ممكن الإبقاء عليه لكن إقافه من خلال تحرر الملف بأي برنامج تحرير النصوص وجعل enablde=1 إلى قيمة 0 أي enabled=0 ثم نحفظ الملف ولإعادة تفعيله نجعل القيمة 1 .








2-الان من مدير الحزم التحكم بالمستودعات .


-عرض كل المستودعات الموجودة على الجهاز .
 sudo dnf repolist all



-عرض فقط المستودعات المفعلة .
sudo dnf repolist enabled



-عرض فقط المستودعات الغير مفعلة .
sudo dnf repolist disabled



-إضافة مستودع ما مثلا مستودع الأخ أبو زكريا.
sudo dnf config-manager --add-repo http://download.opensuse.org/repositories/home:/abouzakaria/Fedora_23/home:abouzakaria.repo



 -إقاف تفعيل مستودع ما ممكن أن نقوم بجلب إسمه مثلا من أمر عرض المستودعات المفعلة في الأعلى ...مثال .
sudo dnf config-manager --set-disabled home_abouzakaria



-ممكن أيضا أثناء تثبيت أو تحديث شيء أو تحديث النظام إقاف مستودع ما لمرة واحدة فقط وعند إنتهاء عملية التثبيت يرجع المستودع إلى وضعه الطبيعي .
sudo dnf --disablerepo=home_abouzakaria install gedit



-تفعيل مستودع ما ممكن أن نحصل عل إسمه من خلال مثلا أمر عرض المستودعات الغير مفعلة في الأعلى ... مثال .
sudo dnf config-manager --set-enabled home_abouzakaria



-ممكن أيضا أثناء تثبيت أو تحديث شيء أو تحديث النظام تفعيل مستودع ما لمرة واحدة فقط وعند إنتهاء عملية التثبيت يرجع المستودع إلى وضعه الطبيعي .
sudo dnf --enablerepo=home_abouzakaria update



-ممكن مؤقتا أيضا إقاف كل المستودعات وتشغيل مستودع محدد مثال في الأسفل.
sudo dnf update --disablerepo=* --enablerepo=fedora
sudo dnf install gedit --disablerepo=* --enablerepo=fedora



-امر إضافي قد يفيدكم لعرض كل ما يمكن إضافته من متغيرات مثل متغير enabled و gpgcheck و... إلى المستودعات وعرض وضعها  في كل المستودعات الحالية الموجودة لدينا لمن يريد التعمق أكثر في هذا الموضوع أو مثلا في موضوع إنشاء مستودع محلي مثلا في أي مجلد لدينا وتفعيل هذا المستودع يمكنه البحث أكثر في مواقع الإنترنت أو من الوثائق الرسمية لفيدورا أو rpm أو dnf .
sudo dnf config-manager --dump
وممكن لمستودع واحد فقط مثال 
sudo dnf config-manager --dump home_abouzakaria



-ممكن إضافة متغير غير موجود لمستودع أو أكثر من خلال تحرير ملف المستودع باي محرر نصوص وإضافة الخيار الجديد وممكن إستخدام أمر setopt-- مع خيار save-- مثال في الأسفل لإضافة proxy طبعا أستخدم الامر للشرح ال proxy ليس حقيقي .
sudo dnf config-manager --setopt proxy=http://proxy.example.com:3128/ home_abouzakaria --save



-ممكن أيضا إستخدام setopt من دون save يعني يستخدم هذا ال option لمرة واحدة  أثناء تثبيت شيء مثلا.
sudo dnf update --setopt deltarpm=False





3-الأن إضافة مستودع بطريقة يدوية .

الامر بكل بساطة نقوم بإنشاء ملف نصي عادي داخل مجلد etc/yum.repos.d/  ونقوم بتسميه الملف كما نشاء لكن نراعي أن الإسم لم يتكرر ويدل على الهدف منه و إسم الملف يجب أن ينتهي ب repo. ثم نضيف معلومات المستودع يدويا ممكن إستخدام أي محرر نصي مثال سأستخدم محرر نصوص gedit .
sudo gedit /etc/yum.repos.d/yucef_google_chrome.repo

 
ثم نضيف معلومات المستودع إليه مثال كما في الأسفل نضيفهم سطر سطر ثم نحفظ الملف. 
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable\$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub


 ملاحظة نلاحظ أنه سيتم التحقق من المفاتح من خلال موقع على الإنترنت وليس من مجلد etc/pki/rpm-gpg/ وممكن أيضا أحيانا إذا توفر  أن يتحقق من ملف في مجلد etc/pki/rm-gpg/  كما في اﻷسفل.
gpgkey=file:///etc/pki/rpm-gpg/linux_signing_key.pub





- ممكن تثبيت شيء من دون التحقق من gpg من خلال إضافة هذا الباراميتر nogpgcheck-- مثال .
sudo dnf --nogpgcheck install geany






4-تنزيل المستودع كحزمة .

شرح قليلا عن الحزمة الحزمة هي عبارة عن ملف مضغوط يكون بداخله ملفات وتعليمات قد تكون بعد أو أثناء أو التثبيت مثلا نقل هذا الملف إلى هنا و....الأمر بكل بساطة انه ممكن أن تكون هناك حزمة تحتوي ملف معلومات المستودع الذي ينتهي ب repo. وملف gpg الذي قلنا أنه عند وجوده يحفظ في مجلد etc/pki/rpm-gpg/ إلى جانب هذه الملفات تكون هناك تعليمات لإصال هذه الملفات إلى اماكنها الصحيحة مثال عن إضافة مستودع adobe من حزمة موجودة على الإنترنت ممكن تنزيلها وتثبيتها وممكن تثبيتها من الرابط وهذا أمر ممكن في مدير حزم dnf أو من أداة rpm فقط نمرر  الرابط ويقومو بالتنزيل والتثبيت .
sudo rpm -ivh http://linuxdownload.adobe.com/adobe-release/adobe-release-i386-1.0-1.noarch.rpm

الأن الامر يختلف عن مستودع google chrome نحتاج إضافة المفتاح الذي تم حفظه في مجلد
etc/pki/rpm-gpg/ على العموم هذه التفاصيل ستجدونها في الشرح الذي سيكون في الموقع نفسه مثلا من وثائق adobe أو بكل بساطة من البحث في google أو ممكن أن تقومو به أنتم بشكل بديهي عند طلب مفاتح gpg البحث في هذا المجلد وإضافته أو ممكن البحث في الموقع الرسمي للمستودع.
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux






5- شرح بعض الأمور .

ممكن إضافة أي خاصية لتعمل على كل المستودعات عند كل تشغيل لمدير الحزم dnf مثلا عندي قمت بتفعيل خاصية fastesmirror من خلال تحرير ملف
etc/dnf/dnf.conf/ بأي محرر نصوص مثال شكل الملف عند .

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





ممكن أيضا  إنشاء ملف بأي مكان والكتابة داخله ماذا نريد وأثناء التثبيت نعطيه مسار هذا الملف مثلا في مجلد المنزل لدي  قمت بإنشاء ملف سميته my_dnf_config وكتبت داخله
[main]
deltarpm=False
repo_gpgcheck = False



ثم قمت مثلا بتثبيت شيء أو تحديث النظام أعطيت مدير الحزم dnf مسار هذا الملف على أنه ملف الإعدادات على العموم هذا أمر لن نحتاجه.
sudo dnf update -c /home/youcef/my_dnf_config










6-بعض الأمور المفيدة :

-أولا منغير releasever$ يدل على رقم إصدار التوزيعة مثلا 23 لفيدورا 23
 
-ثانيا متغير arch$ تعني معمارية الجهاز مثال 64bit أي x86_64.

-ثالثا متغير basearch$ تعني أيضا معمارية النظام لكن تتحدد على ضوء معمارية النظام لديك .





مثال يوضح بعض الأمور ممكن إستخدام أمر releasever-- عند تثبيت شيء في مدير الحزم يعني لنفترض أن هناك مستودعين لذات البرنامج واحد لفيدورا 22 وواحد لفيدورا 23 ولمعماريتين 32bit أو i386 ومعمارية 64bit أو x86_64 لنفترض أن رابط المستودع هكذا
 
http://download.opensuse.org/repositories/home:/abouzakaria/$releaserver/$basearch



إذا كنت تستخدم فيدورا 22 مثلا تلقائيا مدير الحزم dnf سيستبدل releasever$ برقم 22 و basearch$ بمعمارية نظامك الحالي يعني شيء كهذا لنظام 64bit سيصبح رابط المستودع شيء كالذي في الأسفل .
 
http://download.opensuse.org/repositories/home:/abouzakaria/22/x86_64





إذا كان النظام لديك فيدورا 23 سيصبح الرابط شيء كالذي في اﻷسفل

http://download.opensuse.org/repositories/home:/abouzakaria/23/x86_64




إذا كان هذا الأمر متوفر وهو متوفر للمستودعات الرسمية ومستودعات rpmfusion أستطيع
من فيدورا 23 تثبيت برنامج من فيدورا 22 عن طريق إعطاء قيمة releaserver$ لمدير الحزم.
sudo dnf install mpv --releasever=22




وممكن أيضا العكس ممكن تثبيت برنامج من  مستودعات فيدورا 23 على فيدورا 22 وممكن أيضا من فيدورا الغير مستقرة rawhide
 sudo dnf install geany --releasever=23
 sudo dnf install geany --releasever=rawhide








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











 فإذا إذا كان نظامي فيدورا 23 64bit لا فرق بين الرابطين في الأسفل لأن قيمة basearch$ و releasever$ تحدد  تلقائيا على ضوء أي فيدورا أستخدم وأنا أستخدم فيدورا 23 64bit.






أخر شيء غالبا في المستودعات الرسمية عند تصفحك محتويات ملف المستودعات الرسمية في مجلد etc/yum.repos.d/ ستجد رابط المستودعات أمام metalink وليس baseurl هذا أفضل هذا الرابط عبارة عن ملف نصي بداخله أكثر من رابط سرفر حتى إذا فشل التنزيل من أي رابط ينتقل إلى رابط أخر وهذا غالبا ستجده في المستودعات الرسمية .



أخيرا أريد أن أقول أنه لا ينصح بإستخدام releasever-- إلا لمن يعرف ماذا يفعل ولا أظن أنك ستحتاجه. 

شارك الموضوع

مواضيع ذات صلة

التسميات

2016 (1) 23 (1) 24 (3) 25 (1) 26 (1) 27 (1) 28 (1) 29 (1) 30 (1) 31 (1) إتصال (1) إختراق (2) أدة (1) أدوات (1) إرسال (1) أرش (1) إسترجاع (1) إستعلام (1) أشياء (7) أشياء تفعلها (8) إصدارات (1) إصلاح (6) إصلاحrealtek (1) إضافات (1) إضافة (1) أعجوبة (1) أعجوية (1) إعداد (1) إقاف (2) أقسام (1) ألعاب (2) الفرق (1) الفلاشة (1) القسم هوم (1) الكتابة بالعربية (1) إلى جانب (1) أندرويد (1) إنشاء (1) إنشاء مستودع (1) أيات (1) أيزو (1) أيقومات (1) أيقونات (1) ايقونات (2) باتش (1) بارامتر (1) بايثون (16) برامج (56) برامج إسلامية (2) برنامج (19) برودباند (1) بعد (7) بعد التثبيت (8) بلوتوث (1) بناء (1) بناء توزيعة (1) بيئة عمل (1) تثبيت (29) تجهيز (2) تجهيو من دون (2) تحزيم (2) تحقق (1) تحويل (1) تخصيص (5) ترجمة (2) ترقية (1) تسجيل الشاشة (1) تشغيل (3) تعريف (13) تعطيل (2) تعلم (6) تفعلها (7) تفعيل (2) تقطع الأحرف (1) تقعيل (1) تنزيل (2) تورنت (1) توزيعة (1) توسعة (1) ثيم (5) ثيمات (1) جافا (1) جماليات (7) جنوم (1) حجم (1) حرق (2) حزمة (1) حل (2) دالة (1) دورة (1) روتر (1) ريدهات (2) سكربت (2) شرح (11) صورة متحركة (1) فايرفوكس (1) فتح منفذ (1) فصل (1) فلاشة (3) فيدورا (29) فيدورا بالعربي (1) قاموس (1) كالي (2) كتاب (2) كتب (2) كرت (1) كروت الشاشة (1) كلمة المرور (2) كورس (1) كورورا (1) لعبة (1) لينكس (2) لينكسو (1) ماهو (6) متغير البيئة (1) مجانا (1) محاكات (2) محاكي (1) محمل الإقلاع إصلاح (1) محمول (1) مستودعات (1) مشكلة (2) ملف نصي (1) من إصدار (1) نظام ملفات (1) نمط (2) نواة (1) هجين (4) واجهات (1) وايرلس (1) وهمي (2) ويندوز (2) access token (1) active (2) add (1) after (7) alias (1) andoid studio (1) android (2) android studio (1) Apache (2) appstream (1) arboot (1) arboot fix (1) arch (3) archiso (1) arfedoraccframework (3) arfedoracontrolcenter (3) arfedy (1) atari (1) atom (1) ayat (1) bicon (1) blivet (1) blivet-gui (1) bls (1) bluetooth (1) book (2) books (2) bootloader fix (1) boxes (3) broadband (1) broadcom (1) broadwayd (1) bugzilla (1) build (2) builddep (1) bumblebee (1) bumbleebe (2) burn (2) byzanz (1) c# (1) calamares (1) camera (1) cannot open display (1) cannot open display: :0 (1) ccna (1) cd (2) centos (1) change (2) chsh (1) cisco (1) clion (1) clone (1) code.org (1) command (2) command line (2) commands (2) comps (1) connect (1) contra (1) convert (1) copr (1) could not connect to the debugger (1) cpu (1) cpufreq (1) createrepo (1) csharp (1) css (1) curlew (1) custom (2) dbus (3) dconf (1) dd (1) Decryption (1) defragment (2) desktop (1) desktop entry (1) dictionary (1) Digital signature (1) disks (1) dnf (14) do (7) docker (1) dolphine (1) download (2) downloads manager (1) dply (1) DRI PRIME (1) driver (9) dukto (1) e2fsck (1) efi (4) el forkane (1) elforkane (1) elif (1) emergency (3) emergency mode (3) emulator (1) enable (2) Encryption (1) entries (1) error mounting /dev/sd (1) ext4 (1) extend (1) extensions (2) fakenes (1) fast startup (2) fceux (1) fedora (45) fedora 25 alpha (1) fedora cloude (1) fedora28 (1) fedoraوفيدورا (1) fedy (1) fgmac (2) fgmac-24 (1) file (1) find (1) firefox (2) fix (10) flash mem (1) flash memory (2) flashplayer (1) flatpak (4) forward (1) fpaste (1) free (1) freebsd (1) freevpn (1) function (1) game (3) games (2) gedit (1) genymotion (1) gettext (1) gif (1) gimp (1) gio (1) github (5) github.io (1) glibc-common (1) gmaclinux (2) gnome (16) gnome boxes (1) gnome disk (1) gnome shell (13) gnome terminal (1) gnome-disks (1) gnu (1) godot (1) goldendict (1) google web designer (1) gpg (2) gradio (1) group (2) grub (7) grub2 (1) grubenv (1) gstreamer (1) gtk (8) gtk+ (1) gvrecord (1) hack (2) hash (4) hdmi (3) hibernate (1) home (2) hosspot (1) html (1) http (1) hybrid (2) icon (2) icons (3) ide (1) if (1) install (32) installf (9) installing (7) intellij idea (1) internet downlaod manager (1) iso (2) java (3) jdk (2) jetbrains (1) jetbrains toolbox (1) kali (2) kde (3) kernel (1) kernel parameters (1) key (1) kickstarts (3) korora (1) krita (1) kvm (2) kvm switches (1) lamp (1) laps (1) learn (1) legacy (1) legacy bios (3) libreoffice (2) libvirt (1) life is trange (1) linux (8) lutris (1) lv (1) lvm (2) mac (4) macros (1) mageia (1) make distro (1) mariadb (1) MariaDB and PHP Lamp Server (1) markdown (2) mate terminal (1) mbr (1) md5sum (1) mirro (1) mkconfig (1) mo (1) mono (2) monodevelop (2) mount (1) mp4 (1) multi screen (1) mumble (1) murmur (1) natron (1) nautilus (2) nes (1) netbeans (1) netcut (1) nintendo (1) ntfs (2) nvidia (8) objdesktop (1) ojuba (2) oop (1) opensuse (1) openvpn (1) opera (1) optirun (2) oracle (1) os.path (1) package (2) page (1) pages (1) pantheon (1) parameter (1) parameters (1) password (2) patch (1) path (2) pdf (1) peek (1) photoshop (1) php (1) phpstorm (1) plasma (2) plugin (3) plugins (1) plymouth (1) po (1) polkit (1) port (1) portable (1) portmatp (1) PostinstallerF (1) pot (1) powerline (2) powerline-go (1) preset (1) preview (1) primary display (1) primeos (1) primus (1) primusrun (1) private key (1) programs (3) protonvpn (1) pubg (1) public key (1) put (1) pv (1) pycharm (2) pygobject (4) pygtk (5) python (56) pythonk (1) qdbus (1) qemu (3) qemu-kvm (1) query (1) radio (1) raspberry pi (4) raspbian (2) reclaim space (2) record (1) redhat (3) remix (1) remix os (1) repo (4) repofrompath (1) repository (1) reset (1) resize2fs (1) rhel (1) router (1) rpm (7) rpmbuild (1) rtl8188ee (1) rtl8192c (1) rtl8192ce (1) rtl8192cu (1) rtl8192de (1) rtl8192ee (1) rtl8192se (1) rtl8723ae (1) rtl8723be (1) rtl8723com (1) rtl8821ae (1) rubymine (1) salix (1) scratch (2) scratch2.scratch 2 (1) screencast (1) script (2) seconday display (1) self (1) send (1) server (1) settings (2) sha1256sym (1) sha256sum (1) share desktop (1) shell (2) shortcut (1) shutter (1) skel (1) skel ماهو (1) skype (1) skype.برامج (1) slackware (1) software (1) soundcloud (1) source code (1) spec (2) spin (1) sqlmap (1) ssh (3) sshd (2) st-trans (1) steam (2) store (1) su (1) sudo (2) sudoers (1) swap (2) switch (2) Switchable Graphics (1) synergy (1) systemd (1) systemd preset (1) teamviewer (1) terminal (2) theme (5) things (7) thomson (1) thread (2) threading (2) thumbnails (1) to (8) tor (2) tor browser (1) torrent (1) transfer closed with 736700 bytes remaining to read (1) translation (1) turn off (2) tuxcut (1) txt (1) ubuntu (1) uefi (5) unable to mount location (1) unity (1) unity3d (1) upgrade (1) usb (1) useradd (2) utf-8 (1) vega (1) verify (1) vg (1) vgaوتبديل (1) vi (1) video (1) vim (1) vino (1) virsh (1) virt-install (1) virt-manger (1) virtual (1) virtual box (1) virtualbox (3) vmware (3) vnc server (1) vokoscreen (1) vpn (1) web server (1) webstorm (1) wifi (1) windows (4) windows-1256 (1) wine (1) woeusb (1) X Error: BadAccess (1) X Error: BadDrawable (1) xdg-mime (1) xdman (1) xfce (1) xfconf-query (1) yum (2) zeal (1) zealdocs (1)