This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
EN · EL · FR · ES · IT · RU · ZH · AR · HI · PT · DE
المستودعات والأولوية
هذه هي الفكرة التي تُعرِّف slacker، وما يُميّزه عن أداة مرايا بسيطة: كل مستودعٍ يعيش في نموذجٍ واحدٍ مرتَّبٍ حسب الأولوية، والأولوية لا تُنتهَك بصمتٍ أبدًا.
قاعدة الأولوية
حين يُقدِّم اسمَ الحزمة نفسه عدّةُ مستودعات، يفوز الذي من المستودع الأعلى أولوية. والأهم:
الحزمة المثبَّتة لا تُنقَل أبدًا بصمتٍ إلى مستودعٍ آخر، ولا يُخفَّض إصدارها أبدًا. ولا يُقترَح مرشَّحٌ إلا من مستودعٍ ذي أولويةٍ أعلى أو مساوية. والاستثناء الوحيد هو
repo:nameصريح.
لذا فإن منح مستودعٍ أولويةً عاليةً متمايزةً يقفل حزمه: لا يستطيع أيُّ شيءٍ من مستودعٍ أدنى أن يستبدلها، ولو برقم إصدارٍ أحدث.
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#161b22','primaryBorderColor':'#1f6feb','primaryTextColor':'#e6edf3','lineColor':'#6e7781','fontFamily':'monospace'}}}%%
flowchart TB
I["حزمة مثبَّتة<br/>(الـ build tag = مصدرها)"] --> D{"أولوية المستودع المرشَّح<br/>مقابل المصدر المثبَّت"}
D -->|أعلى أو مساوية| U["يجوز ترقية / استبدال"]
D -->|أدنى| K["تُبقى - لا يُخفَّض إصدارها أبدًا<br/>لا تُنقَل أبدًا"]
PIN["repo:name"] -. "يفرض مستودعًا,<br/>متجاوزًا الأولوية" .-> U
classDef grey fill:#0d1117,stroke:#6e7781,color:#8b949e;
classDef blue fill:#0d1117,stroke:#1f6feb,color:#e6edf3;
classDef green fill:#0d1117,stroke:#2ea043,color:#e6edf3;
class I,PIN grey
class D blue
class U green
class K grey
كيف يعرف slacker «مصدر» حزمةٍ مثبَّتةٍ دون قاعدة بيانات؟ من الـ build tag
الخاص بها — حقل build منقوصًا منه الأرقام الأولى (1_SBo → _SBo، 7cf → cf،
1 → رسمي). سطرُ tag-priority من المستخدم، أو المستودع الثنائي الأعلى أولويةً
الذي يُقدِّم ذلك الوسم (cf → conraid، alien → alienbob، يُكتشَف تلقائيًّا)، هو
ما يُقرِّر الأولوية التي تنتمي إليها.
ملف repos
# priority name url|mirror|mirror/<subpath> [flags]
100 slackware mirror official
200 patches mirror/patches subtree immutable
90 extras mirror/extra subtree immutable
85 testing mirror/testing subtree immutable
80 conraid https://slackers.it/repository/slackware64-current immutable
60 alienbob https://slackware.nl/people/alien/sbrepos/current/x86_64
# أسطر tag-priority (يجوز أن تتشارك أولوية واحدة):
100 SBo _SBo
100 local _rtz
حقل URL
| الصيغة | المعنى |
|---|---|
| رابطٌ حرفي | https:// أو http:// أو file:// (الأخير لنسخةٍ محلية / NFS / وسيطٍ مُركَّب — ثلاث شَرَطاتٍ مائلة للمسار المطلق) |
mirror |
السطر المُفعَّل من mirrors، كما هو — استخدمه للمستودع الرسمي |
mirror/<مسار-فرعي> |
المرآة المُفعَّلة مع إلحاق مسارٍ فرعي (mirror/extra، mirror/testing، mirror/patches) — شجرةٌ فرعيةٌ تتبع المرآة التي اخترتها |
يشير الرابط إلى جذر المستودع الذي يحوي PACKAGES.TXT؛ وللمرايا الرسمية، يقع
MANIFEST.bz2 في مجلَّدٍ فرعيٍّ حسب المعمارية يجده slacker تلقائيًّا.
الأعلام
| العلم | ما يفعله |
|---|---|
official |
يُعلِّم المستودع المتتبَّع: فهو يُغذّي show-changelog وهو الافتراضي لـ install-new. يبقى موضعه بالأولوية فقط — فالمستودع الرسمي يمكن أن يقع في أيِّ مكان. |
immutable |
كل حزمةٍ تُنسَب إلى هذا المستودع تبقى خارج clean-system. استخدمه لما تُبقيه مثبَّتًا من extra/testing/patches، بدل إدراج كلٍّ منها في القائمة السوداء. |
subtree |
هذا الرابط شجرةٌ فرعيةٌ من توزيعة Slackware (extra، patches، testing، pasture). يُدرِج PACKAGES.TXT الخاص بها مواقع نسبيّةً إلى جذر التوزيعة، فتُجلَب الحزم وGPG-KEY من الرابط الأب (الجذر) بينما تأتي البيانات الوصفية من الرابط نفسه. وبدونه، تُعطي هذه الحزم 404 مع جزء مسارٍ مكرَّر. ويجب أن تحمل الأشجار الفرعية الأربع هذا العلم دائمًا. |
verify=... |
تجاوزُ التحقُّق لكل مستودع (انظر Security). |
mirror/extra+subtreeزوجٌ متلازم. يحلُّmirror/extraالرابط؛ ويُصحِّحsubtreeكيفية جلب الحزم والمفتاح منه.
التثبيت (pinning) والمحدِّدات
قد يكون PATTERN في سطر الأوامر:
| الصيغة | يُطابِق |
|---|---|
firefox |
اسم حزمةٍ مضبوطًا تمامًا |
python |
سلسلةً جزئيّة من الاسم — كل python-* |
kde |
سلسلة Slackware (a، ap، d، k، kde، l، n، t، x، xap، xfce، y، …) — تلك السلسلة فقط، وليس السلاسل الجزئية أبدًا |
repo:name |
pin — يفرض مستودعًا بصرف النظر عن الأولوية (مثل alienbob:vlc) |
@repo |
محدِّد مجموعة — كل حزمةٍ في ذلك المستودع (install @gnome، remove @gnome) |
@_tag |
كل حزمةٍ تحمل وسم البناء ذاك (remove @_SBo) |
الـ
@إلزامي، كي لا تُؤخَذ كلمةٌ مجرَّدةٌ على أنها مستودع. ويُعطي@repo/@_tagالمجهول اقتراح «did you mean» ويُدرِج المستودعات والأوسمة المتاحة.
حين يُطابِق نمطٌ أكثر من حزمة، تُظهِر install/upgrade/reinstall/remove
قائمةً مرقَّمة — Enter للكل، أرقام/نطاقات مثل 1 3 5 أو 2-4، وn للإلغاء.
لا محرف بدلٍ
*للاختيار في سطر الأوامر. فالـ*غير المُقتبَس تُوسِّعه الصدفة (shell) لديك إلى أسماء ملفّات المجلَّد الحالي قبل تشغيل slacker (لا يرى slacker الـ*أبدًا ولا يقرأ مجلَّدك)؛ وإن أنتج ذلك سيلًا من وسائط ليست حزمًا، يُدرِك slacker ذلك ويرفض الأمر دون تغيير أيِّ شيء. اقتبس نمطًا حرفيًّا، أو استخدم@repoلمستودعٍ كامل. (وBlacklist هي الموضع الوحيد الذي تكون فيه الأنماط فعلًا glob/regex.)
إدارة المستودعات من سطر الأوامر
slacker add-repo 85 ktown https://slackware.nl/people/alien/ktown/current/x86_64
slacker add-repo 90 extras mirror/extra subtree immutable
slacker del-repo ktown
slacker pri-repo 95 extras # إعادة ضبط أولوية مستودعٍ قائم
slacker add-tag 100 SBo _SBo
slacker del-tag _SBo
slacker list-repos # الأولوية، verify، الأعلام، أعداد المثبَّت
يتحقّق add-repo من السطر، ويجلب المستودع ويفحصه (vets) بعد التأكيد (انظر
Security).
يُغيِّر pri-repo PRIORITY NAME أولوية مستودعٍ تملكه سلفًا. يتحقّق من أن NAME
مستودعٌ مُفعَّل (مقترِحًا أقرب تطابقٍ عند خطأٍ مطبعي)، ويرفض PRIORITY يحملها مستودعٌ
آخر، مُسمّيًا التعارض كي تختار قيمةً أخرى — إذ يجب أن تبقى الأولويات متمايزة. ولا
يُعاد كتابة إلا أولوية ذلك السطر؛ أما الرابط والأعلام فيبقيان تمامًا كما كانا.
slacker
Getting started
Using slacker
- Commands
- Common Workflows
- Distribution Upgrade
- Repositories and Priority
- Package History
- Dependencies
- Docker
- Templates
- Blacklist
Trust & safety
Reference
For contributors
slacker - slackpkg + slackpkg+ in one - Apache-2.0 - by Ioannis Anagnostakis (rizitis) - beta / WIP, for Slackware -current (64-bit & 32-bit)