ENVIRONMENT.D(5)

الاسم
environment.d - تعريف بيئة خدمة المستخدم

موجز

    ~/.config/environment.d/*.conf
    /etc/environment.d/*.conf
    /run/environment.d/*.conf
    /usr/local/lib/environment.d/*.conf
    /usr/lib/environment.d/*.conf
    /etc/environment

الوصف

ملفات الضبط في أدلة environment.d/ تحتوي على قوائم من المهام المتغيرة للبيئة التي يتم تمريرها إلى الخدمات التي بدأها النظام مثيل المستخدم. systemd-environment-d-generator(8) تحليلها و تحديث البيئة المصدرة من قبل مثيل المستخدم النظامي. انظر أدناه لمناقشة العمليات التي ترث تلك المتغيرات.

يوصى باستخدام بادئات رقمية لأسماء الملفات لتبسيط الترتيب.

للتوافق مع الإصدارات السابقة، يتم تثبيت رابط رمزي إلى /etc/environment، لذلك يتم تحليل هذا الملف أيضًا.

أدلة الضبط والأسبقية

تُقرأ ملفات الضبط من المجلدات في /etc/، و /run/، و /usr/local/lib/، و /usr/lib/، بترتيب الأسبقية، كما هو مدرج في قسم الموجز أعلاه. يجب أن تحمل الملفات الامتداد ".conf". تتجاوز الملفات في /etc/ الملفات التي تحمل الاسم نفسه في /run/، و /usr/local/lib/، و /usr/lib/. وتتجاوز الملفات في /run/ الملفات التي تحمل الاسم نفسه تحت /usr/.

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

ينبغي أن تثبّت الحزم ملفات إعداداتها في /usr/lib/ (حزم التوزيعة) أو /usr/local/lib/ (التثبيتات المحلية) [1]. الملفات في /etc/ محجوزة للمدير المحلي، الذي قد يستخدم هذا المنطق لتجاوز ملفات الإعداد التي ثبتتها حزم الموردين.

يوصى ببدء جميع أسماء الملفات برقم من خانتين وشرطة لتبسيط الترتيب. يوصى باستخدام النطاق 10-40 لملفات الضبط في /usr/ والنطاق 60-90 لملفات الضبط في /etc/ و /run/، للتأكد من أن ملفات الضبط المحلية والعابرة ستكون لها الأولوية دائماً على ملفات الضبط التي يشحنها مورد نظام التشغيل.

إذا أراد المدير تعطيل ملف تهيئة يوفره المورد، فإن الطريقة الموصى بها هي وضع وصلة رمزية إلى /dev/null في مجلد التهيئة في /etc/، بنفس اسم ملف تهيئة المورد. وإذا كان ملف تهيئة المورد مضمناً في صورة initrd، فيجب إعادة توليد الصورة.

تنسيق الضبط

ملفات التهيئة تحتوي على قائمة من تعيينات متغيرات البيئة "KEY=VALUE"، مفصولة بأسطر جديدة. الجانب الأيمن من هذه التعيينات قد يشير إلى متغيرات بيئة معرفة مسبقًا، باستخدام تنسيق "${OTHER_KEY}" و"$OTHER_KEY". من الممكن أيضًا استخدام "${FOO:-DEFAULT_VALUE}" للتوسع بنفس طريقة "${FOO}" ما لم يكن التوسع فارغًا، وفي هذه الحالة يتوسع إلى DEFAULT_VALUE، واستخدام "${FOO:+ALTERNATE_VALUE}" للتوسع إلى ALTERNATE_VALUE طالما أن "${FOO}" كان سيتوسع إلى قيمة غير فارغة. لا يتم دعم أي عناصر أخرى من بناء جملة الصدفة.

يجب أن يكون كل KEY اسم متغير صالح. يتم تجاهل الأسطر الفارغة والأسطر التي تبدأ بحرف التعليق "#".

  مثال

مثال 1. إعداد البيئة للسماح بالوصول إلى برنامج مثبت في /opt/foo

/etc/environment.d/60-foo.conf:

            FOO_DEBUG=force-software-gl,log-verbose
            PATH=/opt/foo/bin:$PATH
            LD_LIBRARY_PATH=/opt/foo/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
            XDG_DATA_DIRS=/opt/foo/share:${XDG_DATA_DIRS:-/usr/local/share/:/usr/share/}

قابلية التطبيق

متغيرات البيئة التي يصدرها مدير خدمة المستخدم (مثيل systemd --user الذي يبدأ في خدمة النظام user@uid.service) تُمرر إلى أي خدمات يبدأها ذلك المدير. على وجه الخصوص، قد يشمل ذلك الخدمات التي تشغل أصداف المستخدم. على سبيل المثال في بيئة GNOME، يعمل محاكي الطرفية الرسومي كوحدة مستخدم gnome-terminal-server.service، والتي بدورها تشغل صدفة المستخدم، لذا سترث تلك الصدفة متغيرات البيئة التي يصدرها مدير المستخدم. بالنسبة لمثيلات أخرى من الصدفة، التي لم تطلقها خدمة مدير المستخدم، يتم تعريف البيئة التي ترثها بواسطة البرنامج الذي يبدأها. تلميح: بشكل عام، وحدات systemd.service(5) تحتوي على برامج تطلقها systemd، ووحدات systemd.scope(5) تحتوي على برامج تطلقها شيء آخر.

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

على وجه التحديد، لتسجيلات الدخول عبر ssh، تقوم خدمة sshd(8) ببناء بيئة تجمع بين المتغيرات المرسلة من النظام البعيد والمحددة بواسطة sshd، انظر المناقشة في ssh(1). جلسة العرض الرسومي سيكون لها آلية مماثلة لتعريف البيئة. لاحظ أن بعض المديرين يستعلمون مثيل المستخدم systemd عن البيئة المصدرة ويحقنون هذه التهيئة في البرامج التي يبدأونها، باستخدام systemctl show-environment أو استدعاء D-Bus الأساسي.

انظر أيضًا

systemd(1), systemd-environment-d-generator(8), systemd.environment-generator(7)

ملاحظات

1.  💣💥🧨💥💥💣 يرجى ملاحظة أن ملفات الضبط تلك يجب أن تكون متوفرة في جميع الأوقات. إذا كان /usr/local/ قسماً منفصلاً، فقد لا يكون متوفراً أثناء بدء التشغيل المبكر، ويجب عدم استخدامه للضبط.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.