المحتوى عن 'توزيعات'.



مزيد من الخيارات

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المُحتوى


التصنيفات

  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • نصائح وإرشادات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • التجارة الإلكترونية
  • الإدارة والقيادة
  • السلوك التنظيمي
  • مقالات ريادة أعمال عامة

التصنيفات

  • PHP
    • Laravel
    • ووردبريس
  • جافاسكريبت
    • Node.js
    • jQuery
    • AngularJS
    • Cordova
    • React
  • HTML
    • HTML5
  • CSS
  • SQL
  • لغة C#‎
  • لغة C++‎
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • Sass
    • إطار عمل Bootstrap
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • برمجة أندرويد
  • لغة Swift
  • لغة R
  • لغة TypeScript
  • ASP.NET
    • ASP.NET Core
  • سير العمل
    • Git
  • صناعة الألعاب
    • Unity3D
    • منصة Xamarin
  • سهولة الوصول
  • مقالات برمجة عامة

التصنيفات

  • تجربة المستخدم
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
    • كوريل درو
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • نصائح وإرشادات
  • مقالات تصميم عامة

التصنيفات

  • خواديم
    • الويب HTTP
    • قواعد البيانات
    • البريد الإلكتروني
    • DNS
    • Samba
  • الحوسبة السّحابية
    • Docker
  • إدارة الإعدادات والنّشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • مقالات DevOps عامة

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • التسويق بالرسائل النصية القصيرة
  • استسراع النمو
  • المبيعات
  • تجارب ونصائح
  • مبادئ علم التسويق

التصنيفات

  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • مقالات عمل حر عامة

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
  • أندرويد
  • iOS
  • macOS
  • ويندوز

التصنيفات

  • شهادات سيسكو
    • CCNA
  • شهادات مايكروسوفت
  • شهادات Amazon Web Services
  • شهادات ريدهات
    • RHCSA
  • شهادات CompTIA
  • مقالات عامة

أسئلة وأجوبة

  • الأقسام
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة البرمجة
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات
    • أسئلة الشهادات المتخصصة

التصنيفات

  • ريادة الأعمال
  • العمل الحر
  • التسويق والمبيعات
  • البرمجة
  • التصميم
  • DevOps

تمّ العثور على 4 نتائج

  1. الهواتف الذكيّة والسيارات، الحواسيب الخارقة والأجهزة المنزلية، أجهزة سطح المكتب وخواديم الشركات - كلها تستعمل نظام التشغيل لينكس، النظام الذي ستراه حولك أينما أدرت وجهك. بدأ نظام التشغيل لينكس منذ منتصف التسعينات تقريبًا وقد حقّق منذئذ قاعدة مستخدمين ضخمة تجوب العالم. وكما مستخدميه، فلينكس في كل مكان: أجهزتك المحمولة، منظّمات الحرارة، السيارات، الثلاجات، أجهزة Roku لبثّ الوسائط المتعدّدة، أجهزة التلفاز، وغيرها وغيرها. ولا ننسى أنّ أغلب شبكة الإنترنت تعمل عليه، إضافةً إلى أقوى 500 حاسوب خارق في العالم، كما والبورصة أيضًا. ولكن لو نسينا لبرهة أنّه الخيار الأمثل لتشغيل الأجهزة المكتبيّة والخواديم والأنظمة المضمّنة، فنظام التشغيل لينكس هو أكثر نظام من بين الأنظمة الموجودة - أكثرها أمانًا وثقةً ويُسرًا دون متاعب تُذكر. كتبنا لك أدناه كل ما تحتاجه لتكون عارفًا وعالمًا بمنصّة لينكس. فلو كنت مبتدئًا، فلا تقلقنّ البتة. ما هو نظام التشغيل لينكس أصلًا؟ ”وندوز“ و”آي‌أو‌إس“ و”ماك أو‌إس“ هي أنظمة تشغيل، ولينكس أيضًا نظام تشغيل. وفي هذا السياق، أتعلم أنّ أكثر منصّة رائجة في كوكبنا الأرض ”أندرويد“ تعمل بنظام التشغيل لينكس؟ نظام التشغيل (ويُختصر بِـ OS) هو البرمجية التي تُدير كلّ ما يتعلّق بالعتاد في حاسوبك المكتبي أو المحمول. لنبسّطها أكثر، نظام التشغيل يُدير الاتصالات بين البرمجيّات (Software) والعتاد (Hardware) على جهازك. ودون نظام التشغيل فلن تعمل أيًا من البرامج. يعتمد أساس نظام التشغيل لينكس على هذه الأجزاء المختلفة: محمِّل الإقلاع (Bootloader): أي البرمجية التي تُدير عمليّة إقلاع/تشغيل حاسوبك. حين يرى أغلب المستخدمين شاشة البداية التي تظهر أمامهم وتختفي بعد فترة لتفتح نظام التشغيل، تعرف أنّهم قد رأوا هذا المحمِّل. النواة (Kernel): في الواقع فَإن نظام التشغيل لينكس مكوّن من أجزاء عديدة، النواة هذه واحدة منها. كما يدلّ اسمها، فهي نواة النظام والتي تُدير المعالج والذاكرة والأجهزة الداخليّة والخارجيّة. تعد النواة المستوى الأدنى من مستويات نظام التشغيل وهي حلقة الوصل الفعليّة بين البرمجيّات والعتاد. نظام التمهيد (Init System): هذا أحد الأنظمة الفرعيّة التي ”تُمهّد“ المساحة المخصّصة للمستخدم، إضافةً إلى إدارة العفاريت. أكثر هذه الأنظمة استعمالًا هو systemd ويتصادف أنّه أيضًا أكثرها جدلًا بين المستخدمين. تقع على عاتق هذا النظام إدارةَ عمليّة الإقلاع ما إن يُسلِّم محمّل الإقلاع (مثل GRUB أي ”محمِّل الإقلاع الموحّد الأعظم“ [GRand Unified Bootloader]) عمليّة الإقلاع الأولي. العفاريت (Daemons): الخدمات التي تجري في الخلفيّة (مثل الطباعة والصوت وترتيب مهام النظام وغيرها) تُسمّى بالعفاريت، ويمكن أن تبدأ إمّا أثناء الإقلاع أو بعد الدخول إلى سطح المكتب. تعمل هذه الخدمات بمنأًى عن تحكّم المستخدم المباشر، ويمكن أن تنفّذ مختلف الوظائف والعمليات والأوامر. خادوم الرسوميّات (Graphical Server): هذا أحد الأنظمة الفرعيّة الأخرى التي تعرض أيّ رسوم ورسوميّات على الشاشة لديك. النسخة الأولية منه كانت ”خادوم X“ (أو إكس/X اختصارًا)، أما الآن فالتوجه نحو Wayland وهو أفضل من نواحٍ عدّة عن سلفه ”خادوم X“. بيئة سطح المكتب (Desktop Environment): هذه هي ما يتفاعل المستخدمين معه حقًا. توجد أعداد كبيرة من بيئات سطح المكتب ليختار المستخدم ما يُريحه منها (جنوم أو القرفة أو متّة أو بانيثون أو إنلايتمنت أو كدي أو إكسفسي أو غيرها). وفي كلّ بيئة سطح مكتب عدد من التطبيقات المثبّتة مبدئيًا (مثل مدراء الملفات وأدوات الضبط ومتصفّحات الوِب والألعاب). التطبيقات: بالطبع، لا تقدّم بيئات سطح المكتب كلّ ما تحتاج من تطبيقات. فكما نظامي وندوز وماك أو‌إس، يقدّم نظام التشغيل لينكس أيضًا آلافًا مؤلّفة من البرمجيات الموثوقة عالية الكفاءة وسهلة الوصول والتثبيت. أصبحت تحتوي أغلب توزيعات لينكس الحديثة (نتطرّق إليها أسفله) أدوات تشبه ”أسواق البرامج“ تحاول تبسيط تثبيت البرمجيات وتوحيدها في مكان واحد. فمثلًا تحتوي توزيعة أوبنتو لينكس على ”مركز برمجيات أوبونتو“ (نسخة من «برمجيّات جنوم») وهو يقدّم لك آليّة سهلة للبحث بسرعة بين آلاف التطبيقات وتثبيتها، كلّه في مكان واحد. ما هي مزايا نظام التشغيل لينكس؟ يطرح أغلب الأشخاص هذا السؤال بالذات. لماذا أُتعب نفسي وأتعلّم بيئة حاسوبيّة مختلفة تمامًا عمّا أعرف، طالما نظام التشغيل -المثبّت في أغلب الأجهزة المكتبية والمحولة والخواديم- يعمل دون مشاكل تُذكر؟ لأُجيبك على هذا السؤال سأطرح سؤالًا آخر. هل حقًا يعمل نظام التشغيل الذي تستعمله الآن ”دون مشاكل تُذكر“؟ أمّ أنّك تصارع (بل وتكافح ضدّ) المصاعب المتوالية من فيروسات وبرامج ضارّة وحالات بطء وانهيارات وإصلاحات باهظة للنظام ورسوم تراخيص ثقيلة؟ لو كنت حقًا كذلك فربّما تكون لينكس المنصّة الأمثل لاحتياجاتك! فقد تطوّر نظام التشغيل لينكس وصار واحدًا من الأنظمة البيئيّة الثِّقة للحواسيب على هذه البسيطة. هذه الثِّقة زائدًا تكلفة الصفر قرش ستكون حقًا أمثل حلّ لمنصّات أسطح المكتب. نظام تشغيل مجاني كما قلتُ تمامًا، صفر قرش… أي مجانًا. يمكنك تثبيت نظام التشغيل لينكس على الحواسيب التي تريد (مهما كان العدد) دون أن تدفع ولو قرشًا لتراخيص البرمجيّات أو الخواديم. تعال نرى تكلفة خادوم لينكس موازنةً بخادوم وندوز 2016. تكلفة Standard edition من Windows Server 2016 هي 882 دولارًا (نشتريها من مايكروسوفت مباشرةً). هذا لا يشمل ترخيص الوصول للعميل (CAL) ورُخص البرمجيات الأخرى التي سيشّغلها الخادوم (مثل قاعدة البيانات وخادوم الوِب وخادوم البريد وغيرها). فمثلًا يُكلّف ترخيص CAL لمستخدم واحد لِـ Windows Server 2016 38 دولارًا. لو اضطررت إلى إضافة 10 مستخدمين فتزيد عليها 388 أخرى فقط لترخيص برمجيات الخادوم. لو كنت على خادوم لينكس فسيكون كلّ هذا مجانيًا وسهل التثبيت. بل أنّ تثبيت خادوم وِب كامل متكامل (ويشمل خادوم قواعد بيانات) عمليّة قوامها بعض النقرات أو الأوامر (لتعرف مدى بساطة ذلك طالع ”كيفية تثبيت حزم LAMP“). ألم تقتنع بعد بالصفر قرش؟ إذًا لو أخبرتك بنظام تشغيل سيعمل دون أيّة مشكلة تُذكر مهما طال استخدامك له، ما تقول؟ استعملت شخصيًا نظام التشغيل لينكس طوال 20 سنة أو يزيد (أكان لجهاز المكتب أم لمنصّة الخادوم) ولم أواجه قط أيّ مشكلة مع برامج الفِدية أو البرامج الضارة أو الفيروسات أو غيرها. فلينكس (وبصفة عامة) أقلّ تعرضًا لهذه الأخطار والاعتداءات من غيره. وحين نتحدّث عن إعادة إقلاع الخادوم، فهي مطلوبة فقط وفقط عند تحديث النواة. ولو سمعت بأنّ خواديم لينكس تعمل لسنوات وسنوات دون إعادة إقلاعها فلا تستغرب، هذا طبيعي. لو أخذت بالتحديثات المستحسن تثبيتها دوريًا، فتأكّد من ثبات النظام واستقلاليّته، وليس هذا حبرًا على ورق، بل كلام عمليّ مُثبت. بل أنّ منهجيّة ”اضبطه مرّة وانساه كل مرّة“ (Set it and forget it) هي المتّبعة في أوساط خواديم لينكس. مفتوح المصدر كما وأنّ نظام التشغيل لينكس يُوزّع برخصة مفتوحة المصدر. وهذا ما تضمنه لك فلسفات البرمجيات مفتوحة المصدر: حريّتك في تشغيل البرنامج لأيّ سبب أردته. حريّتك في دراسة أسلوب وطريقة عمل البرنامج، كما وتغييرها لتتناسب مع رغباتك. حريّتك في إعادة توزيع نُسخ البرنامج لتُساعد جارك في الانتقال. حريّتك في توزيع نُسخ البرنامج التي عدّلتها للآخرين. إدراك هذه النقاط ضروري لتفهم طبيعة المجتمع الذي يعمل على تطوير منصّة لينكس. ولا شكّ بأنّ لينكس هو نظام ”طوّره الناس، ليستعمله الناس“. كما أنّ هذه الفلسفات هي من الأسباب الرئيسية لتفضيل الناس لينكس على غيره. الحريّة، حريّة الاستخدام، حريّة الخيار، هذا ما يسعى وراءه المرء. ما هي توزيعات نظام التشغيل لينكس؟ توجد عديد من الإصدارات المختلفة من نظام التشغيل لينكس الهادفة إلى تقديم الخيار لجميع الناس مهمًا كانوا، أكانوا مستخدمين جدد أو معمّرين. أيًا كنت فستجد ”نكهة“ من لينكس تناسب متطلباتك واحتياجاتك. هذه الإصدارات هي ما نسمّيه التوزيعات (Distribution). يمكن تنزيل كلّ توزيعة من توزيعات لينكس مجانًا (إلى حدّ ما)، وحرقها على اسطوانة (أو جهاز USB) وتثبيتها (على أيّ جهاز أردت، بل وأجهزة أيضًا). من التوزيعات الشائعة للينكس: لينكس مِنت (Linux Mint) مانجارو (Manjaro) دِبيان (Debian) أوبونتو (Ubuntu) أنتيرغوس (Antergos) سولوس (Solus) فيدورا (Fedora) إليمنتري أو‌ إس (elementary OS) أوبن سوزة (openSUSE) لكلّ توزيعة منها توجّه مختلف على ماهيّة سطح المكتب. بعضها تفضّل واجهات المستخدم الحديثة (مثل جنوم وبانيثون في ”نظام تشغيل إليمنتري“)، والأخرى تفضّل البقاء مع بيئات سطح المكتب التقليدية (مثل أوبن سوزة التي تستخدم كدي). يمكنك أيضًا مطالعة موقع Distrowatch لتعرف أفضل 100 توزيعة لينكس من جهة نظر المجتمع. ولو فكّرت للحظة بأنّ الخواديم ليس لها نصيب من هذا، فأنت مخطئ! انظر: Red Hat Enterprise Linux Ubuntu Server CentOS SUSE Enterprise Linux بعض هذه التوزيعات المخصّصة للخواديم مجّاني (مثل Ubuntu Server وCentOS)، وأخرى تطلب ثمنًا لقائها (مثل Red Hat Enterprise Linux وSUSE Enterprise Linux). هذه التي تطلب الثمن تقدّم الدعم الفنّي أيضًا. ما هي توزيعة لينكس التي تناسبني؟ إجابتك على هذه الأسئلة الثلاثة تحدّد التوزيعة الأنسب لك: مدى خبرتك بالأمور التقنية والحاسوبية. أكنت تريد واجهة مستخدم حديثة أم قياسية عادية. أكنت تريده للخادوم أو للأجهزة المكتبية. لو كانت خبرتك ومهاراتك بالحاسوب بسيطة، فالأفضل أن تتّجه نحو توزيعة تناسب المبتدئين مثل Linux Mint أو Ubuntu أو Elementary OS أو Deepin. ولو كانت مهاراتك فوق المتوسّط، فستكون التوزيعات أمثال Debian وFedora أفضل لك. أمّا لو كنت ”احترفت مِهنة الحاسوب“ وإدارة الأنظمة، فتوزيعة جنتو وأمثالها طُوّرت لك خصّيصًا. لكن، لو أردت تحدّيًا لمهاراتك الفذّة أخي الخبير، فاصنع توزيعة لينكس خاصّة بك أنت، طبعًا مستعينًا بِـ Linux From Scratch. في حال كنت تبحث عن توزيعة للخواديم فقط، فالسؤال الرابع هو لو أردت واجهة سطح مكتب أم أنّك ستُدير الخادوم عبر سطر الأوامر دون واجهة. فمثلًا Ubuntu Server لا تحتوي واجهة رسوميّة، وهذا يعطيك ميزتين. الأولى هي إزاحة ثقل تحميل الرسوميات عن الخادوم، والثانية هي تعلّم سطر أوامر لينكس تعلّمًا عميقًا. يمكنك مع ذلك تثبيت حزمة واجهة رسوميّة في Ubuntu Server بأمر بسيط مثل sudo apt-get install ubuntu-desktop. غالبًا ما يختار مدراء الأنظمة التوزيعات حسب الميزات التي تقدّمها. فهل تريد توزيعة متخصّصة للخواديم تقدّم لك كل ما تحتاجه لخادومك على طبق من فضّة؟ لو أردت فستكون CentOS فضل الخيارات. أو ربما تريد توزيعة لسطح المكتب تُضيف ما تريد من برامج وحزم فيها؟ لو كان كذلك فستقدّم لك Debian أو Ubuntu Linux ما تحتاج. ننصحك بالرجوع إلى مقالة الدليل النهائي لاختيار توزيعة لينكس لمزيد من التفاصيل حول التوزيعات واختيارها. تثبيت لينكس لسان حال أغلب الناس عن تثبيت نظام التشغيل هو ”ماذا؟ صعب! مستحيل! محال!“. بينما الواقع (صدّقته أم لا) هو أنّ تثبيت نظام التشغيل لينكس هو الأسهل من بين كلّ أنظمة التشغيل. بل أنّ أغلب نُسخ لينكس تقدّم لك ما نسمّيه ”التوزيعة الحيّة“ (Live Distribution)، أي التي تشغّل منها نظام التشغيل وهو على اسطوانة CD/DVD أو على إصبع USB (فلاش ميموري) دون أن تُعدّل أيّ بايت في القرص الصلب. هكذا تعرف بمزايا التوزيعة كاملةً دون تثبتيها حتّى، وما إن تجرّبها وترتاح لها، وتقرّر وتقول ”هذه هي توزيعة أحلامي“، تنقر مرّتين أيقونة ”ثبِّت“ وسيأخذك مُرشد التثبيت في رحلة التثبيت البسيطة (فقط!). غالبًا ما تكون رحلة مُرشد التثبيت هي هذه الخطوات (نوضّح هنا عملية تثبيت Ubuntu Linux): التحضير: التأكّد من استيفاء الجهاز لمتطلّبات التثبيت. يمكن أن يسألك هذا لو أردت تثبيت برمجيّات من الأطراف الثالثة (مثل ملحقات تشغيل MP3 ومرمزات الفيديوهات وغيرها). إعداد الاتصال اللاسلكي (لو أردته): في حال كنت تستعمل حاسوبًا محمولًا (أو جهازًا يدعم الاتصال لاسلكيًا) فقد يُطلب منك الاتصال بالشبكة لتثبيت برمجيات الأطراف الثالثة والتحديثات. تخصيص المساحة للقرص الصلب: تُتيح لك هذه الخطوة اختيار المكان الذي سيُثبّت فيه نظام التشغيل، وهل تريد تثبيت لينكس مع نظام تشغيل آخر (أي ”الإقلاع المزدوج“) أو استعمال القرص الصلب كلّه أو ترقية نسخة لينكس المثبّتة أو تثبيت لينكس عوض النسخة التي لديك. المكان: أي، مكانك على الخريطة. تخطيط لوحة المفاتيح: لغات الكتابة التي تريدها في النظام. إعداد المستخدم: أي اسم المستخدم وكلمة السر. طبعًا، يمكنك ألّا تحذف كامل القرص بما فيه (مثلما ترى في الصورة أعلاه ”تحذير“)، بل تعديل بعضه وإبقاء الآخر عبر الخيار الآخر Something else (ويفضّل طبعًا تحديد مساحة لقرص التبديل/Swap تتناسب وحجم الذاكرة). وعلى سبيل الطرفة، كثير من مستعملي لينكس يواجهون هذه المشكلة أول مرة ويمسحون جميع بياناتهم المخزنة على القرص، حتّى أنا مترجم المقال فكن حذرًا إني لك من الناصحين :-). لكن هذا ليس سببًا بأنّ لينكس نظام سيئ (وبالعامية ”قمامة“)، لكنه سببٌ ”لأقرأ كامل السؤال قبل الإجابة“ :). يمكنك أيضًا تعمية القرص لتكون آمنًا من أيّ هجمات محتملة. فقط. هذا فقط. وما إن ينتهي تثبيت النظام، أعِد التشغيل واشرع العمل! لو أردت دليلًا لتثبيت لينكس معمّقًا أكثر، فطالع ” أسهل وأأمن طريقة لتثبيت لينكس وتجربته“ أو نزّل كتيّب PDF عن تثبيت لينكس من مؤسّسة لينكس نفسها. تثبيت البرمجيات في لينكس كما كان تثبيت نظام التشغيل سهلًا، فتثبيت التطبيقات سهل أيضًا. تحتوي أغلب توزيعات لينكس على ما يمكن تسميته بسوق للبرمجيات، وهو مكان موحّد يمكنك البحث فيه عن ما تريد من برامج وتثبيتها. تعتمد Ubuntu Linux (وغيرها الكثير) على «برمجيّات جنوم»، وتستعمل Elementary OS مركز AppCenter، أمّا Deepin فَـ Deepin Software Center، و openSUS أداة AppStore، وثمّة توزيعات تعتمد على Synaptic. مهما كان الاسم فالوظيفة واحدة: مكان واحد لتبحث عن برامج لينكس فيه، وتثبّتها أيضًا. وبالطبع، فهذه البرمجيات تعتمد على الواجهة الرسومية، لو لم تكن موجودة لما عملت. فلو لديك خادوم بدون واجهة فعليك استعمال واجهة سطر الأوامر لتثبيت البرامج. ولهذا سنأخذ نظرة سريعة على أداتين مختلفين لنوضّح سهولة التثبيت من سطر الأوامر، أسهل من شرب الماء ربما. تُستعمل هاتين الأداتين في التوزيعات المبنيّة على Debian، والمبنيّة على Fedora تستعمل الأولى (توزيعات دبيان) أداة apt-get لتثبيت البرمجيات، أمّا توزيعات فيدورا تستعمل أداة yum، ولكلتا الأداتين آلية عمل متشابهة سنوضّحها باستعمال أمر apt-get. فلنقل فرضًا أنّك تريد تثبيت أداة wget (أداة مفيدة جدًا لتنزيل الملفات عبر سطر الأوامر). لتثبيت هذه الأداة باستعمال apt-get، ستُدخل هذا الأمر: sudo apt-get install wget نُضيف أمر sudo لأنّ تثبيت البرمجيات يطلب امتيازات المستخدم الفائقة (مدير الجهاز). وكما دبيان، فتثبيت البرامج في توزيعات فيدورا على خطوتين: أولا su للامتيازات تلك (أي أن تكتب الأمر su وتُدخل كلمة سرّ الجذر)، بعدها: yum install wget هذا كل ما تحتاجه لتثبيت البرامج في جهاز لينكس. أكان صعبًا ومحالًا كما تخيّلته؟ لا تقل لي أنّك متردّد بعد؟! أتذكر ”كيفيّة تثبيت حزم LAMP“ التي تكلمنا عنها؟ بأمر واحد: sudo taskel بأمر واحد تُثبّت خادوم LAMP (اختصار Linux Apache MySQL PHP أي ”حزمة لينكس وأباتشي وMySQL وPHP“) متكامل على توزيعتك كانت للخواديم أم للأجهزة المكتبية. أجل، بأمر واحد فقط. سهل صحيح؟ مصادر أخرى للاستزادة توزيعات لينكس هي حقًا الخيار الأمثل لك لو أردت منصّة آمنة ثِقة لجهازك المكتبي وخادومك على الشبكة. كن على ثقة بأنّ لينكس سيُريحك وسطح المكتب من مختلف المشاكل، ويُشغّل لك خواديمك دون عناء، ويقلّل من طلباتك بحثًا للدعم إلى أدنى درجة. إليك بعض الروابط المفيدة لتستزيد عن لينكس بمعلومات تخدمك طول فترة استعمالك له: Linux.com: كل ما تحتاج لتعرف لينكس حقّ المعرفة (أخبار ودروس وغيرها). Howtoforge: دروس عن لينكس. مشروع توثيق لينكس: أدلّة تعليميّة وأسئلة شائعة وإجابات ”كيف أستطيع كذا“. قاعدة معلومات لينكس ودروس عنه: دروس وأدلّة عديدة وتدخل في الصميم. LWN.net: أخبار عن نواة لينكس وأكثر. قسم لينكس في الأكاديمية: مقالات متنوعة عن نظام التشغيل لينكس وكيفية تثبيت العديد من الخدمات والتطبيقات. مجتمع لينكس العربي كتاب سطر أوامر لينكس كتاب دليل إدارة خوادم أوبنتو كتاب دفتر مدير ديبيان كتاب الإدارة المتقدمة لجنو/لينكس كتاب أوبنتو ببساطة (تنويه: إصدار أوبنتو الذي يشرحه الكتاب قديم ولكن يمكن أخذ الفكرة العامة عنه وعن لينكس عمومًا) ترجمة -وبتصرف- للمقال What is linux?‎ من موقع linux.com
  2. أصبحت المشاريع مفتوحة المصدر شيئًا عظيمًا؛ لكن بالتزايد الكبير لأعداد المشاريع مفتوحة المصدر، ازدادت صعوبة جذب المساهمين. وتدعم الشركات الكبرى -مثل فيسبوك و تويتر- عددًا كبيرًا من تلك المشاريع، مما جعل الجميع يتنافس لنيل مساهمات المُبرمجين ولفت انتباههم. هذا ثاني درس في هذه السلسلة من المقالات التي سترشدك إلى كيفية بناء مجتمع حول مشروعك. الجمهور المستهدف وصفحة الهبوط كيف تجعل الوصول إلى مشروعك مفتوح المصدر أسهل (هذا الدرس) طرق التعريف بمشروعك مفتوح المصدر كيف تحول مستخدمي مشروعك مفتوح المصدر إلى مساهمين كيف تنمي المجتمع الخاص بمشروعك مفتوح المصدر تحدث الدرس السابق عن الفئة المستهدفة وكيف تُقدِّم مشروعك إليهم؛ وفي هذه المرة سننظر إلى جعل الوصول إليه سهلًا. عندما يرى المستخدم أنَّ مشروعك يفي باحتياجاته، فسيبحث عن تعليمات حول كيفية استعماله وطريقة عمله؛ ومن المفيد لك أن تجعل عملية التثبيت أسهل ما يمكن لتجنب خسارة الأشخاص على الطريق، وهذه هي طريقة فعل ذلك: ابن حزمة يأتي المشروع الاعتيادي مع مجموعة من الخطوات لبناءه وتثبيته، لكن من الأفضل اختصار تلك المجموعة إلى خطوة وحيدة: تثبيت حزمة. هل ستجرب مشروعًا يحتاج تثبيته إلى أمر sudo apt-get install وحيد، أم ستجرب مشروعًا يحتاج إلى إعداد بيئة لبناء البرامج، وتثبيت عدد هائل من الاعتماديات، ثم البناء من المصدر؟ حزم التوزيعات أول خيار أمامك هو إنشاء حزمة خاصة بنظام التشغيل، ربما لتوزيعة لينُكس (حزم deb، أو rpm، أو pacman) أو لنظام OS X باستعمال Homebrew. أو تستطيع إنشاء حزمة على مستوى اللغة البرمجية (language-level) إن كان هذا الخيار متوفرًا للتقنية التي بنيت مشروعك بها. الحزم الموجودة في مستودعات التوزيعات هي أكثر الحلول راحةً للمستخدم، سامحةً لهم بتثبيت البرمجيات التي تُوفرها من مصدرٍ موثوق. عملية تعلم إضافة حزمة مشروعك إلى المستودعات هي عمليةٌ مرهقةٌ وصعبة وعليك المرور على عشرات الصفحات من التوثيق حتى تُقبَل حزمتك في المستودعات؛ لكن ذلك العمل سيؤتي أُكله، فسيصبح تثبيت مشروعك يتطلب تنفيذ أمرٍ وحيدٍ من المستخدم؛ وذلك يستحق كل هذا الجهد لوجود الملايين من مستخدمي نفس نظام التشغيل. الحزم على مستوى اللغة أو يمكنك إنشاء حزمة على مستوى اللغة البرمجية -إن كان هذا الخيار متوفرًا للتقنية التي تستعملها- مثل PyPI، و Rubygems، و npm وغيرها. وإنشاء تلك الحزم أبسط، وتُخَلِّصُكَ من قراءة عشرات الصفحات من التوثيق التي عليك المرور بها كي تُقبَل حزمتك في مستودعات توزيعةٍ ما. وقد تكون هذه الطريقة أفضل بناءً على فئتك المستهدفة. إنشاء حزمة على مستوى اللغة هي ضرورة مُلِحَّة للمشاريع التي ستُستعمَل من بقية المطورين مثل المكتبات. فلمطوري روبي أو JS، لن تكون مكتبةٌ ما خيارهم المفضَّل إن لم يكن لديها حزمة gem أو npm. سينتشر مشروعك أكثر عندما تضعه في تلك المستودعات، إذ سيظهر عندما يبحث المبرمجون في تلك المستودعات عن المكتبات المفيدة. ربما يكون هنالك -في بعض الأحيان- أدوات أو خوارزميات لتحويل حزمة على مستوى اللغة إلى حزمة نظام، وبهذا تستطيع أخذ حزمة مشروعك على مستوى اللغة وإعادة استعمالها في توزيعاتٍ عدِّة؛ فيتمكن Debhelper -مثلًا- من بناء تطبيق بايثون تلقائيًا إن كان يأتي مع ملف setup.py. سكربت إعداد تلقائي إن لم تسطع توفير حزمة لمشروعك، فعليك -على الأقل- أن توفِّر سكربت لبناء وتثبيت البرمجية. وهذا السكربت قد يمثل بديلًا للحزمة لأنه يوفر طريقةً سهلةً للتثبيت. هذه بعض المشاريع الأخرى الشهيرة التي تستعمل سكربتات الإعداد: oh-my-zsh rvm لا يثق بعض الأشخاص في تلك السكربتات، وهم على حق في بعض الأوقات. أنت سيد قرارك هنا، فليس لديك أداة إدارة حزم موثوقة لتضمن أمان الحزمة. كن حذرًا جدًا وتأكد أن ما تضعه في السكربت لن يضر بأنظمة المستخدمين أو بياناتهم؛ خصيصًا عندما تفعل أشياءً تتطلب امتيازات الجذر (root – أي الامتيازات الإدارية)؛ لن يساعدك خسارة عدد كبير من الأشخاص لبياناتهم بسبب تطبيقك في حملتك التسويقية له. اكتب دليلا لاستعمال تطبيقك تمكن الآن المستخدمون من تثبيت مشروعك بسهولة، وعليك الآن أن تريهم طريقة استعماله. حان الوقت الآن لكتابة دليل المستخدم؛ وليس من الضرورة أن يكون هذا الدليل طويلًا ومفصلًا؛ فيجب أن يشرح الواجهة الأساسية، ويشير إلى أيّة حدود للتطبيق. لا تكتب كثيرًا من المعلومات التقنية وركِّز على ما يحتاج المستخدم الاعتيادي إلى معرفته. لا تجاهد لكي يكون الدليل مفصلًا وكاملًا من البداية؛ ابدأ من أهم النقاط ثم أكمل الباقي أثناء تطويرك للمشروعك، وستستفيد من أسئلة المستخدمين الجدد الذين يحاولون استعمال مشروعك في كتابة محتوى الدليل. أفضل بنية وأدوات لكتابة الدليل تعتمد على طبيعة وحجم مشروعك، وعمّا إذا كنت تولِّد الدليل من الشيفرة المصدرية أم كنت تكتبه بنفسك بأكمله يدويًا. يجب أن يَسهُل البحث في الدليل النهائي (حتى لو وضعت كل المعلومات في صفحة وحيدة واستعملت خاصية البحث في المتصفح). لا تنس الرخصة خطأٌ شائعٌ يقلل كثيرًا من استعمال مشروعك هو عدم وجود رخصة مفتوحة المصدر؛ تأكد أن شيفراتك تأتي مع رخصة معترف بها من FSF أو OSI؛ راجع الدرس كيف تختار رخصة مفتوحة المصدر لبرامجك لمزيدٍ من المعلومات حول هذا الصدد. ما التالي؟ أصبح مشروعك الآن جاهزًا للاستعمال من المستخدمين، فحان الوقت لنشره، وهذا هو موضوع المقالة القادمة. ترجمة -وبتصرّف- للمقال Make your open-source project accessible لصاحبه Radek Pazdera.
  3. انتشر صيت نظام التشغيل غنو لينكس Gnu Linux (المعروف اختصارًا بلينكس) في السنوات الأخيرة، بعد استيلاء منصة الهواتف الذكية أندرويد على أكثر من 85% من السوق، وكثرة الحديث عن كون هذه المنصة مبنية على نواة لينكس القوية، والمشهود لها بالاستقرار، سرعة التطوير والأمان، وخلافًا لما كان الحال عليه من قبل فقد لوحظ تنامي الرغبة لتجريب لينكس على أجهزة سطح المكتب، تارةً بدافع حب الفضول والاستكشاف، وتارةً بغرض التعلم واكتساب الخبرة، وأحيانًا أخرى لاستخدامه في محاولات الاختراق وتجاوز الحماية. إلا أن أول ما يصطدم به الراغب في خوض غمار التجربة الجديدة عدم وجود نظامٍ باسم لينكس يمكن تنزيله من موقع رسمي واستخدامه على الفور! إذ يمكن لمستخدمي Microsoft Windows الحصول على أقراص ليزرية من السوق تتضمن نسخ Windows المختلفة أو تحميلها من الشبكة، بينما تأتي أجهزة Apple محملةً أصلا بنظام التشغيل OS X، أما كتابة Download linux في محرّك البحث فسيفضي لنتائج بأسماء مختلفة، ولن يطول الوقت حتى يتعرف القادم إلى هنا على مفهوم «التوزيعة» وهي أقرب ما تكون بالمعنى إلى كونها «تجميعة»، فلينكس ما هو إلا النواة، بينما نحتاج إلى أدوات أخرى كالمترجمات Compilers والواجهات المرئية ومدراء النوافذ إضافة إلى تطبيقات المستخدم النهائي كمتصفح الإنترنت ومشغل الموسيقى إلخ، كلّ هذا حتى يصبح لدينا أخيرًا نظام تشغيل متكامل، ولتوفير مثل هذه الخطوات على المستخدمين تقوم فرق برمجية متطوعة أو تابعة لمؤسسات تجارية بالعمل المطلوب، كلّ وفق أفكاره وميوله، طارحين تجميعاتهم تلك على شكل حزمة واحدة جاهزة للاستخدام تسمى بالتوزيعة Distribution. ومع عدم وجود أية قيود على العملية السابقة فقد فاق عدد التوزيعات المتاحة للتحميل والإستخدام المجاني ال 300 توزيعة، ليقف المستخدم المبتدئ أمامها في حيرة من أمره؛ ماذا يستخدم؟ ما التوزيعة الأنسب له؟ أو على الأقل بماذا يبدأ ومن أين ينطلق؟ ولا تشكل الحيرة السابقة مشكلة بحدّ ذاتها، إلا أن المشكلة تنجم عن الكيفية التي يُتعامل بها مع هذا السؤال، حيث إن التعاطي مع التوزيعات والفرق المجمّعة لها بات أشبه بالتحزب السياسي، بمعنى أن كلّ فريق يرى في خياره الصواب الأنسب، والأداء الأفضل، منوهًا إلى مثالب التوزيعات الأخرى ونقاط الضعف التي تعاني منها، لتدور أحيانًا حربٌ طاحنة، لا يكون الخاسر الأكبر فيها سوى المبتدئ، الذي تزداد حيرته أمام مقارنات لا يفقه منها شيء غالبًا. خلال سبع سنوات من إستخدامي لـغنو لينكس كنظام تشغيل وحيد على مختلف الحواسيب، تعاملت مع التوزيعات العشرة الرئيسية، مثل Mint, Ubuntu, Debian, OpenSUSE, Fedora, Arch, Puppy وغيرها، والتي تتفرع منها وتبنى عليها باقي التنويعات المختلفة، وكمهووس بلينكس استغرق ذلك منيّ وقتًا طويلًا للغاية، كان سببًا في بعض الأحيان لتعطّل مهامي أو ضياع ملفاتي، إلا أنني راكمت أيضًا خبرة أودّ مشاركتها هنا. لنتعرّف بدايةً على التوزيعات الرئيسيّة في عالم غنو لينكس: دِبيان Debianأثناء دراسته في جامعة بوردو فرع علوم الحاسوب، كتب إيان موردك مع صديقته ديبرا (والتي ستصبح زوجته فيما بعد) «عقد دبيان» ويقصد به الفلسفة التي سيبنى عليها نظام التشغيل دبيان (منحوتًا من اسميهما ديب يان) والذي أطلق اصداره الأول عام 1993م مستمرًا حتى يومنا هذا، ليكون واحدًا من أعرق المشاريع المتعلقة بلينكس وأكثرها شعبية. قاد إيان فريقًا كبيرًا مكونًا من المبرمجين المتطوعين من مختلف دول العالم لبناء دبيان (يبلغ عددهم اليوم ألف مطوّر). دبيان في نقاط- مشروع دبيان هو مؤسسة مجتمعية لا مركزية يطوره متطوعون حول العالم ويقوده قائد يجري انتخابه من قبل المجتمع بشكل دوري، إضافة إلى وجود نظام داخلي ودستور وقواعد تنظم عمل المشروع وتعطي الأولوية دومًا لرأي المطورين، نادرًا ما يوجد مثل هذا التنظيم لدى باقي الفرق. - طَوّر مشروع دبيان نظام تحزيم يسمى Deb يهدف إلى إنشاء برامج جاهزة للتثبيت بدون تدخل برمجي من قبل المستخدم، حيث كانت برامج لينكس متوفرة أولًا بشكلها المصدري src (أي على شكل أكواد) وهي تتطلب من المستخدم أن يقوم بعمل Compile لها، وهذا ما يتطلب معرفة برمجية واسعة، وحل عدّة مشاكل أثناء ذلك (كالاعتماديات، وتضارب النسخ وغيرها). عام 1995 بدأ مشروع دبيان بتحزيم البرامج على شكل ملفات.deb جاهزة للتثبيت باستخدام الأداة Apt (ولاحقًا تم تسهيل ذلك من خلال أدوات أخرى مثل aptitude، apt-get من على سطر الأوامر، أو Synaptic على الواجهة الرسومية)، فبات كل ما يحتاجه المستخدم النهائي لتركيب أو تحديث أو إزالة البرامج هي بضع نقرات لا غير، متفوقًا بذلك على نظيره ويندوز. يضم اليوم مستودع دبيان الرئيسي 43000 حزمة، بالإضافة إلى مستودعات أخرى تجعل من تثبيت الحزم وإداراتها أمرًا في غاية السهولة. - يعتمد مشروع دبيان معايير صارمة في التحزيم وبناء النسخ الجديدة، لذا توصف التوزيعة عادةً بانها ثابتة كالصخر، ما دفع قرابة نصف توزيعات لينكس الأخرى على بناء نسخهم الخاصة إنطلاقًا منها. - تعتبر دبيان من أكثر التوزيعات إلتزامًا بفلسفة غنو، حيث لا تضم مستودعاتها الرسمية سوى برمجيات مفتوحة المصدر. - خلافًا لمعظم توزيعات غنو لينكس لا تتبع دبيان خططًا زمنية في إصداراتها، بل تتبع سياسة مفادها تصدر دبيان عندما تجهز! - تأتي دبيان إفتراضيًا مع واجهة رسومية، ومثبت رسومي، وبالتكامل مع مدير الحزم فإن مشروع دبيان سهّل للمستخدم العادي استخدام وتثبيت لينكس. Ubuntuعندما أطلقت شركة Canonical في أكتوبر 2004 نسختها المعدلة من نظام التشغيل دبيان لم تدرِ أنها ستفتتح بذلك صفحة واحدة من أكثر توزيعات لينكس شعبية على الإطلاق، ويعود ذلك بفضل تركيز فريق العمل الخاص بالتوزيعة على تحقيق المزيد من سهولة تثبيت وإدارة توزيعة لينكس، مع الأخذ بعين الاعتبار عدم تضمينها أية برمجيات محتكرة. تأتي Ubuntu مع مثبّت رسومي أكثر بساطة، إضافة إلى حزم أوسع من البرامج المثبتة مسبقًا، إضافة إلى أداة رسومية لإدارة تعاريف العتاد الصلب، وإدارة المحليات (لغة الواجهة)، علاوةً على مركز البرمجيات الخاص بهم والذي يجعل من تثبيت وحذف البرامج ممكنًا بنقرة واحدة. منذ اصدار أكتوبر 2012 اعتمد فريق أوبونتو على الواجهة الرسومية Unity الخاصة بهم. تعقد Canonical المالكة لـ Ubuntu صفقات تجارية مع شركات مثل أمازون، مما يسبب لها انتقادات واسعة في مجتمع البرمجيات الحرّة والذي يرفض إرسالها بعض بيانات المستخدمين للشركات المعلنة بهدف تحقيق الربح، رغم إمكانية تعطيل ذلك. Mintخلال أقل من شهر على إنطلاق أوبونتو في 2006 قام فريق من المتطوعين بإنشاء نسختهم الخاصة بناء عليها، بهدف تقديم توزيعة أكثر أناقة وسهولة في الإستخدام، وأكثر استقرارًا في نفس الوقت، وإن جاء ذلك على حساب تضمين التوزيعة برمجيات محتكرة بشكل افتراضي مثل مشغلات الصوت والفيديو وخطوط مايكروسوفت. (يقول مطورو Mint بأن مستخدمي سائر التوزيعات يستخدمون هذه الأجزاء، فلمَ لا نجهزها لهم). تأتي مِنت كذلك مع كم أكبر من البرامج بحيث تغني المستخدم عن تثبيت أي شيء إضافي تقريبًا، وتعتمد على مستودعات Ubuntu. لاحقًا عمل فريق التطوير على إعادة كتابة عدد من الأدوات الموجودة في Ubuntu مثل مدير البرمجيات، مدير التحديثات، أداة النسخ الاحتياطي، أداة الرفع Upload وغيرها. إضافة إلى عملهم على تطوير واجهتين مشتقتين من غنوم Gnome وهما Cinnamon و Mate. فيدورا Fedoraفي 2003 رعت شركة RedHat إندماج مشروعين أحدهما نسخة المستخدم العادي الذي كانت RedHat نفسها تعمل على إصدارها، والثاني مشروع نظام فيدورا، لينتج مشروع فيدورا، وهو نسخة من نظام التشغيل غنو لينكس، تستخدم تحزيم .rpm للحزم والبرامج، وتحظى بدعم غير رسمي من شركة RedHat حيث25% من موظفي مشروع فيدورا هم من موظفي RedHat. تلتزم فيدروا بفلسفة غنو لينكس حيث لا تضمن برمجيات مغلقة بشكل مسبق معها، وإن كانت مضمنة في مستودعاتها والتي تحتوي على برمجيات أقل عددًا من تلك الموجودة في دبيان وبناتها. OpenSUSEفي عام 2004 قررت شركة Novell الألمانية إيقاف مشروع SUSE Linux مغلق المصدر وتحويله إلى توزيعة OpenSUSE مفتوحة المصدر، لتطلق إصدارتها الأولى في تشرين الأول 2005. يستخدم المشروع نظام RedHat في توزيع الحزم RPM، ويهتم بتسهيل تجربة المستخدم النهائي في إدارة نظام لينكس، لا سيما من خلال مركز تحكم YaST الذي يقدم مجموعة كبيرة من الأدوات لإنجاز مختلف العمليات الإدارية في لينكس في مكانٍ واحد ومن خلال الواجهة الرسومية. Archlinuxتهدف Arch إلى تقديم توزيعة مرنة كفاية ليتمكن المستخدمون من تشكيلها بالأسلوب الذي يناسب إحتياجاتهم ومتطلباتهم المختلفة، إضافةً للمرونة تركّز Arch على مفاهيم أخرى (لا تهتم بها معظم توزيعات لينكس) مثل الخفة، حيث التركيب المبدئي لا يشمل سوى الحزم الأساسية جدًا، وبدون أية واجهة مرئية، الإختزالية والتي تعني أقل حد ممكن من متطلبات العتاد الصلب والاعتماديات البرمجية، إضافة لأناقة الكود. تركيب Arch يتم من خلال سطر الأوامر، وإعدادها يكون بتحرير ملفات نصيّة وتعديل بعض القيم فيها، يمكن متابعة استخدامها على هذا المنوال، أو تركيب واجهة رسومية. تعتبر Arch توزيعة متدحرجة، بمعنى أنها لا تقوم بإصدار نسخ جديدة منها خلافًا لباقي التوزيعات، بل يعمل المستخدم على تركيبها ومن ثم دحرجتها، أي تحديثها باستمرار من خلال مدير الحزم. تستخدم Arch أسلوب تحزيم tgz وهو أكثر الأساليب بساطة، ويدار باستخدام مدير pacman، كما يعتمد مستخدموها على بناء الحزم من المصدر (src) من خلال مستودع المجتمع aur، بهدف الحصول على البرمجيات غير الموجودة في المستودعات الرسمية. إلى جانب التعدد الكبير في تجميعات غنو لينكس، هناك تعدد أقل عددًا وأكثر أهمية يواجه القادم الجديد وهو اختيار بيئة العمل Desktop Environment والذي يقصد به الحزم البرمجية التي تقدم واجهة رسومية في التعامل مع لينكس بدلًا من سطر الأوامر، وخلافًا لما هو الحال عليه من وجود بيئة عمل واحدة لكل من نظامي Windows و OS X، فلدى لينكس ما يزيد عن عشرين واجهة، يعدّ اختيار واحدة منها أمرًا أكثر أهمية وأولوية من اختيار التوزيعة، وهو ما سأوضحه تفصيلًا بعد عرضي ﻷشهر الواجهات: XFCE في عام 1996 أطلق أوليفر فوردان مشروع XFCE (بالاعتماد على مكتبات GTK+) ليكون أقدم مشروع يهدف إلى تزويد المستخدم النهائي ببيئة عمل رسومية متكاملة مضمنة سطح مكتب ومجموعة من التطبيقات الأساسية، تركز Xfce على الخفة والاستقرار إضافةً لإمكانية تخصيصها بسهولة، وهذا ما يجعلها خيارًا ممتازًا للباحثين عن البساطة، المبتدئين، أو لمستخدمي الأجهزة القديمة. KDE في وقت آخر من عام 1996 كان فريق KDE مشغولًا بكتابة وتصميم بيئة العمل الخاصة بهم والتي صدرت بعد ذلك بعامين لتشمل سطح المكتب وباقة كاملة من التطبيقات، بالاعتماد على مكتبات Qt البرمجية، تركز البيئة على تقديم بصمة بصرية جذابة وتأثيرات أنيقة للغاية، وتهتم بتقديم إمكانية تعديل حتى أدق تفاصيل مظهرها وسلوكها لتناسب أذواق المستخدمين، وهي بذلك موجهة لهذه الشريحة التي تهتم بالمظهر والتخصيص. Gnome هي بيئة سطح المكتب التي عمل فريق غنوGNU على تصميمها أثناء عملهم في كتابة أدوات النظام، وذلك باعتبار مكتبات Qt المستخدمة في مشروع كدي لم تكن مرخصة بشكل حرّ آنذاك، مما أقلق فريق عمل غنو، فباشروا عملهم بكتابة مكتبات GTK+ وبناء Gnome عليها، ورغم أن مكتبات Qt رُخصت لاحقًا بشكل حرّ (في عام 2000) إلا أن المشروع بقي مستمرًا ومحققا لنجاح كبير. تركز Gnome على كونها أكثر بساطة وسهولة في السلوك والإعداد. في عام 2011 تم إعادة تصميم الواجهة بالكامل مع إطلاق إصدارها الثالث، وهدف التصميم الجديد لإلغاء الطبقات التقليدية (شريط مع قائمة) والتركيز أكثر على تجربة الاستخدام من خلال شاشات اللمس، الأمر الذي لم يلقَ ترحيبًا كبيرًا، مما أدى لظهور مشروعين مشتقين من Gnome: Mate وهو عبارة عن استمرار لواجهة Gnome 2 التقليدية، للعمل على تزوديها بترقيعات الأمان وإضافة ميزات جديدة. Cinnamon وهي استثمار في Gnome 3 والاستفادة من امكانياتها الجديدة لكن مع المحافظة على الأسلوب التقليدي في تصميم سطح المكتب، وهي تجمع بين الخفّة والمظهر الجذاب. Unity رغم حداثة عمرها (4 سنوات) إلا أن Unity حققت إنتشارًا واسعًا، وهي ليست بيئة عمل بمعنى الكلمة وإنما سطح مكتب لبيئة Gnome يهدف إلى استغلال المساحة بشكل أفضل للشاشات الصغيرة كدمج شريط القوائم بالشريط العلوي، وتتيح Unity إمكانية أفضل لمحبي استخدام لوحة المفاتيح، كمطلق Dash والذي يسهل الوصول إلى البرامج والملفات من خلال كتابة الأحرف الأولى منها، وكذلك ميزة HUD والتي تتيح البحث في قوائم البرامج لتنفيذ الأوامر المختلفة بدون الحاجة لاستخدام الفأرة. وخلافًا لباقي واجهات غنو لينكس فلا يمكن استخدام Unity سوى مع Ubuntu، بعض محاولات تشغيلها على توزيعات أخرى لا يمكن اعتبارها ناجحة بعد. لدينا كذلك مشروع LXDE المكتوب وفق GTK وهو يقدم واجهة بالحدّ الأدنى من الاعتماديات مما يجعلها أكثر بيئات سطح المكتب خفّة. وهناك مشروع Pantheon الوليد والذي يعمل فريق توزيعة elementaryOS على تطويره كسطح مكتب بديل لبيئة عمل Gnome 3. حسنًا، ماذا بعد؟ بعد سنوات من تجريبي للتوزيعات المذكورة وغيرها وفق معظم بيئات سطح العمل، وصلتُ أخيرًا إلى ما يمكن تسميته بالقاعدة الذهبية، ورغم بساطتها فهي "تعمل" ويمكنني القول بأنه يمكن للمبتدى أن يثق بها وأنها يضعها موضع التجريب والاختبار؛ باختصار لا تهتم باسم التوزيعة التي تستخدمها، انسَ موضوع الإسم والميزات وتابعني قليلًا: عشرة نقاط، ونقطة1 - باستثناء ما إذا كان لديك غرضٌ خاص، فلا تستخدم سوى التوزيعات عامة الأغراض، على سبيل المثال تعتبر Kali Linux توزيعة موجهة ﻷغراض الحماية والإختراق وليس للمستخدم العادي أو المبتدئ، كذلك الأمر مع التوزيعات الموجهة لأغراض الميديا أو سواها. 2 - لا تستخدم توزيعة لم تعدّ تطوّر أو توزيعة بُدئ تطويرها للتوّ، فتلك التي لم تعد تطوّر قد تحتوي على مشاكل أمنية أو علل برمجية غير محلولة، وأما التوزيعات التي بدُئ تطويرها للتوّ (بمعنى أن عمرها لم يتجاوز عامين أو ثلاثة) فهي لا تزال تفتقر للدعم الكبير ومن الصعوبة أن تجد من يساعدك في حلّ مشاكلها، إضافةً لعدم ضمان توقف تطويرها خلال وقتٍ قصير بعد أن تكون صرفت عليها وقتًا طويلًا في التثبيت والتعلم. 3 - استخدم واحدة من التوزيعات الكبيرة، تعلمها وابق معها، هذا هو سرّ نجاح تجربتك مع غنو لينكس وتمكنك من الانتقال النهائي إليه. لقد بقيتُ أستخدم Ubuntu لأربع سنوات متتالية قبل أن أنتقل لتجريب باقي التوزيعات والواجهات، وهذا ما أتاح لي الوقت لفهم لينكس ووفر عليّ الكثير من التشتت الذي لا يناسب المبتدئ. 4 - أقصد بالتوزيعات الكبيرة مثل التي سبق ذكرها إضافة لتوزيعات تجاوزت العشر سنوات مثل CentOS PCLinuxOS، Slackware وغيرها. 5 - توزيعات لينكس إما مبنية على تقنيات معينة أو لتحقيق أهداف وقيم ما، فالسهولة التي تريح فيها Mint المستخدم النهائي عن إعداد نظامه تكون على حساب الخفّة أحيانًا، والخفة والمرونة التي تقدمها Arch تكون على حساب السهولة، وهكذا. 6 - ورغم اختلاف الأهداف إلا أن الأمر ليس على إطلاقه إذ نتحدث هنا عن مجتمع حرّ فأية فكرة تصدر من أي فريق تعمم على الباقي، في معظم نقاشات «أيها أفضل» ستجد من يتغنى بأمجاد دبيان، أو من يذكر أن فريق فيدورا من أكثر الفرق البرمجية مساهمة في تطوير المشاريع مفتوحة المصدر، إلا أن ذلك لا يغيّر شيئًا في تجربة المستخدم النهائي، فكل ما بذله فريق دبيان (مثلا) لتسهيل عملية تركيب لينكس وإدارة الحزم بات موجودًا على جميع التوزيعات، والمساهمات التي يقدمها فريق فيدورا للبرمجيات الحرّة توزّع على باقي التنويعات أيضًا، لذا انتبه من مثل هذه الأفكار التي يُستشهد بها في نقاشات «أيها أفضل» فهي لن تغيّر شيئًا من تجربتك كمستخدم سطح مكتب. 7 - القاعدة الذهبية: الواجهة المرئية مع مدير الحزم هما ما يشكل أكثر من 80% من تجربة المستخدم النهائي، والباقي تفاصيل قد لا تفضّل أن تصدّع رأسك بها، حسب هذه النظرية فإن Fedora KDE أو OpenSUSE KDE يعني مقارنات لا طائل منها. Mint Xfce أو Xubuntu يعني اختلافات لا تكاد تذكر. تجربة المستخدم النهائي تتعلق بالواجهة المرئية أولًا، ونوع مدير الحزم ثانيًا، وعلى هذا يجب أن يدور الحديث. 8 - مدير الحزم يرتبط بالأسلوب والمعايير التي تتبعها كل توزيعة في تحزيم برامجها مما ينعكس على استقرار البرامج، حجمها، وسرعة وصول التحديثات، وكم الحزم المتوفرة لها، على سبيل المثال تفوق عدد الحزم المتوفرة في مستودعات دبيان deb تلك الموجودة في مستودعات فيدورا، بينما يتفوق مدير حزم Arch بسرعة وصول تحديثات البرامج إليه أولًا بأول. رغم ذلك فلا يجب أن تهتم كثيرًا بهذه النقطة، فالحزم غير المتوفرة على هيئة rpm لن تكون شائعة الاستخدام بالتأكيد. 9 - اختر الواجهة المرئية التي ترجّح أنها تناسبك، ثم أعطها وقتها في التجريب وطالما كانت مناسبة فلا تفكّر بتجريب غيرها قبل عدة أشهر. 10 - المشاكل، الانهيارات والعلل، موجودة أينما ذهبت في أي نظام تشغيل، وتحت أي توزيعة، وباستخدام أية واجهة، في الحقيقة ونظرًا لخبرتي فإن معظم ما نصفه بالمشاكل تأتي من قلة المعرفة والخبرة في إدارة النظام. 11 - عندما تفكّر بالانتقال إلى لينكس اعلم أنك تحتاج إلى القراءة الطويلة والمعمقة لمعرفة استخدامه، هذا النوع من القراءة قد يكلفك شهرًا أو اثنين تبعًا لوقت فراغك، لكنه سيريحك تمامًا على المدى البعيد، بينما سيسبب الاكتفاء بمواضيع المنتديات والتدوينات السطحية ونصائح من هنا وهناك ارهاقًا ومشاكل كثيرة على المدى الطويل. الواجهات في كلمات: KDE: تصميم بصري جذاب، قدرة هائلة على التخصيص، أكثر الواجهات تطلبًا للموارد.Gnome: تصميم غير تقليدي، تجربة أفضل لشاشات اللمس، بساطة في الإعدادات.XFCE: تصميم تقليدي، واجهة خفيفة للأجهزة القديمة، لكنها لا تزال تدعم التأثيرات البصرية والتخصيص العالي.LXDE: تصميم تقليدي، أخف واجهة يمكن استخدامها للأجهزة الأكثر قدمًا، امكانية تخصيص متوسطة.Unity: تصميم غير تقليدي، قدرة تخصيص متوسطة، ملاحظات على الأداء ومراعاة الخصوصية من قبل المجتمع، لا يمكن استخدامها سوى مع Ubuntu.تذكّر أخيرًا، أن ما يهمك كمستخدم سطح مكتب هو سطح المكتب ببساطة! أشياء مثل اسم التوزيعة، تاريخها، أمجادها، البرامج المبدئية، وسواها هي أشياء تصلح للنقاش في عطلة نهاية الأسبوع لا أكثر.
  4. إنّ كل مكتبات بايثون (مثل حزم التّطبيقات application packages) التي نقوم بتنزيلها باستخدام مدير الحزم package manager (مثل pip) يتمّ توزيعها باستخدام أداة مساعدة مُخصصة لهذا العمل، تقوم هذه الأدوات المساعدة بإنشاء توزيعات بايثون Python distributions والتي هي أساسا عبارة عن ملفات أرشيف مرقمة بإصدار ومضغوطة، تحتوي هذه الملفّات على جميع العناصر المتعلقة بما يتم توزيعه، مثل ملفات المصادر source files وملفات الموارد resource files. سنقوم في هذا الدرس بالتحدث عن الأدوات الضرورية للتوزيع، وسنتطرق إلى الخطوات الأساسية التي تسمح لنا بحزم المكتبات المفيدة الخاصة بنا، الوحدات modules، أو حتى التطبيقات applications والتي ستكون مفيدة لنا عند توزيع المشروع الخاص بنا على خادوم أو مشاركته على الإنترنت. توزيعات وحزم بايثونحتى ولو كنا قد عملنا قليلًا فقط مع بايثون، فنحن متآلفون مع مفهوم استخدام مدير الحزم (مثل pip ،easy_install) لتنزيل الوحدات والمكتبات (مثل هياكل تطوير التطبيقات application development frameworks) والتي يتم بعدها استيرادها واستخدامها لإنشاء واحدة جديدة. تقوم أدوات إدارة الحِزَم هذه -والتي تعمل محليا- بالاتصال إلى مصدر بعيد source (مثل دليل حزم بايثون Python Package Index – PyPI) وتنفيذ الإجراء المطلوب (كالبحث والتنصيب). تتكوّن طريقة توزيع تطبيق ما من تغليف الدليل directory الخاص به ببعض الملفّات الضّروريّة (مع القليل من الملفّات المُوصى بها)، تحديد العناصر المرتبطة (كالموارد resources والاعتماديات dependencies، إلخ) وإصدارها أو استخدامها في مكان آخر ببساطة. ملاحظة: نشجعك بشدة على العمل على بيئات افتراضيّة لعزل تنزيلات بايثون، الوحدات والتطبيقات التي تعمل عليها. 1. حزم بايثونالحزمة في بايثون هي تقنيا عبارة عن دليل قابل للاستيراد (باستخدام init__.py__ ) يحتوي على ملفات المصادر (كالوحدات)، ولا يجب الخلط بينها وبين حزم نظام التشغيل والتي هي تقنيًّا تطبيقات فعلية (مثل حزمة Debian)، ومع ذلك يجب أن نُلاحظ أنّ توزيعات بايثون في الواقع تدعى أيضًا بالحزم. مثال على بنية الحِزمة: package | |-- __init__.py2. تطبيقات بايثونعلى الرّغم من أنّه يُمكننا اعتبار أي شيء في بايثون كتطبيق وذلك ابتداء من ملف واحد وحتى مئات الملفات المُبعثرة عبر الحزم المُختلفة، فإنّ التطبيق في أغلب الحالات الواقعيّة يتكوّن من العديد من الوحدات والبعض من الاستيرادات الخارجيّة (من المكتبات). مثال على بنية التّطبيق: myapp | |-- __init__.py |-- amodule.py |-- anothermod.py |__ tests | | | |-- __init__.py | |-- .. | |-- . | ..3. مكتبات وأدوات توزيع بايثوننظرا لطبيعة شعبية لغة بايثون ووجود كميّة وافرة من مكتبات وتطبيقات الطرف الثالث third-party المكتوبة لأجلها فقد كان من الضّروري دوما إيجاد طريقة مُوحّدة وأبسط لتوزيعها، تُوجد العديد من المكتبات والأدوات المختلفة المُستخدمة لإنشاء توزيعات بايثون. تمّ إنشاء مجموعة الأدوات المساعدة لتوزيع بايثون والتي تدعى distutils من أجل التعامل مع مهام التوزيع. 4. دليل حزم بايثون (Python Package Index (PyPIدليل حزم بايثون أو PyPI هو مستودع مركزي (على الإنترنت Online) للمشاريع (توزيعات بايثون)، حيث تستخدم أدوات إدارة الحِزم مثل pip هذا المستودع من أجل استضافة، إيجاد وتثبيت الحِزَم. البدءفلنقم في البداية بإنشاء تطبيق بايثون بسيط وعام باستخدام إطار العمل المصغّر flask (إنشاء البنية) والذي يُمكننا لاحقًا تحزيمه. التطبيق عبارة عن تطبيق ويب بسيط جدا، ﻷن الهدف من الدرس هو كيفية التحزيم وليس التطبيق في حد ذاته. إنشاء بنية التطبيقنهدف إلى إنشاء مثال يشابه معظم مشاريع العالم الحقيقي، ولهذا من الأفضل أن نتخيّل حالة تحتوي على وحدات. بُنية المثال: /MyApplication |-- run.py |-- config.py |__ /app |-- __init__.py |-- /module_one |-- __init__.py |-- controllers.py |-- models.py |__ /templates |-- module_one |-- hello.html |__ /static |__ .. |__ .1. إنشاء المجلدات:/MyApplication |-- run.py |-- config.py |__ /app |-- __init__.py |-- /module_one |-- __init__.py |-- controllers.py |-- models.py |__ /templates |-- module_one |-- hello.html |__ /static |__ .. |__ .2. تعديل الملف run.py باستخدام برنامج nano:nano ~/MyApplication/run.pyنضع المحتويات التّالية بداخله: # Run a test server. from app import app app.run(debug=True)نقوم الآن بحفظه والخروج منه باستخدام CTRL+X ومن ثم تأكيد ذلك باستخدام Y. 3. تعديل الملف config.py باستخدام برنامج nano:nano ~/MyApplication/config.pyنضع المحتويات التّالية بداخله: DEBUG = True THREADS_PER_PAGE = 4 CSRF_ENABLED = True CSRF_SESSION_KEY = "secret"نقوم الآن بحفظه والخروج منه باستخدام CTRL+X ومن ثم تأكيد ذلك باستخدام Y. 4. تعديل الملف app/init.py باستخدام برنامج nano:nano ~/MyApplication/app/__init__.pyنضع المحتويات التّالية بداخله: from flask import Flask, render_template app = Flask(__name__) app.config.from_object("config") from app.module_one.controllers import module_one app.register_blueprint(module_one) نقوم الآن بحفظه والخروج منه باستخدام CTRL+X ومن ثم تأكيد ذلك باستخدام Y. 5. تعديل الملف app/module_one/controllers.py باستخدام برنامج nano:nano app/module_one/controllers.pyنضع المحتويات التّالية بداخله: from flask import Blueprint, request, render_template module_one = Blueprint("auth", __name__, url_prefix="/auth") @module_one.route("/hello") def hello(): return render_template("module_one/hello.html")نقوم الآن بحفظه والخروج منه باستخدام CTRL+X ومن ثم تأكيد ذلك باستخدام Y. 6. تعديل الملف app/templates/module_one/hello.html باستخدام برنامج nano:nano app/templates/module_one/hello.htmlنضع المحتويات التّالية بداخله: <DOCTYPE html> <html lang="en"> <head> <title>{% block title %}My Site{% endblock %}</title> {% block css %} {% endblock %} <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> Hello, world! </body> </html>نقوم الآن بحفظه والخروج منه باستخدام CTRL+X ومن ثم تأكيد ذلك باستخدام Y. البدء بتوزيع وحزم التطبيقبعد إنشاء بنية التطبيق المثالية لموقع ويب يستخدم flask، نستطيع المتابعة بالقيام بالخطوة الأولى في إعداد التوزيعة. 1. تبديل بنية المجلدمن أجل حَزْم تطبيقنا بشكل جيّد نحتاج للقيام ببعض الإضافات لبُنية مجلّدنا. /MyApplication |-- run.py |__ /app |-- __init__.py |-- /module_one |-- __init__.py |-- controllers.py |-- models.py |__ /templates |-- module_one |-- hello.html |__ /static |__ .. |__ . |-- setup.py # Distribution setup file |-- README.txt # Read-me file |-- MANIFEST.in # Distribution manifest file |-- CHANGES.txt # Changes logفلنقم بتبديل بنية المجلد لإنشاء الملفات الضروريّة: touch ~/MyApplication/setup.py touch ~/MyApplication/README.py touch ~/MyApplication/MANIFEST.py touch ~/MyApplication/CHANGES.py mv ~/MyApplication/run.py ~/MyApplication/bin/run2. إنشاء الملف setup.pynano ~/MyApplication/setup.pyنضع المحتويات التّالية بداخله: from distutils.core import setup setup( # Application name: name="MyApplication", # Version number (initial): version="0.1.0", # Application author details: author="name surname", author_email="name@addr.ess", # Packages packages=["app"], # Include additional files into the package include_package_data=True, # Details url="http://pypi.python.org/pypi/MyApplication_v010/", # # license="LICENSE.txt", description="Useful towel-related stuff.", # long_description=open("README.txt").read(), # Dependent packages (distributions) install_requires=[ "flask", ], )نقوم الآن بحفظه والخروج منه باستخدام CTRL+X ومن ثم تأكيد ذلك باستخدام Y. 3. إنشاء الملف MANIFEST.inإن كنا نحتاج إلى شحن دلائل إضافية (ثابتة static أو قوالب templates) يجب علينا التصريح عنها في manifest لكي يتمّ حَزْمها، سنقوم بفعل هذا في MANIFEST.in. nano ~/MyApplication/MANIFEST.inنضع المحتويات التّالية بداخله: recursive-include app/templates * recursive-include app/static *نقوم الآن بحفظه والخروج منه باستخدام CTRL+X ومن ثم تأكيد ذلك باستخدام Y. هذا هو كل ما نحتاجه ، الآن حِزمة توزيعة بايثون جاهزة ليتمّ تثبيتها وشحنها. 4. ملفات إضافيةيجب دومًا أن نتذكّر أنّه من أجل الحصول على توزيعة كاملة يجب أن يكون الملف/الدليل محتويًا على الملفّات التالية ومربوطًا بها: README.txtMANIFEST.inLICENSE.txtالتعامل مع التطبيق الجاهز للتوزيعبعد أن انتهينا من إنشاء تطبيقنا ومن ثم أجرينا التبديلات الضرورية لبنية الملف لتحضيره لبناء توزيعة لا تحتوي على أيّة أخطاء، نستطيع الآن البدء بالمرور على عمليّات الحَزْم. 1. كيف نقوم بإنشاء ملف التوزيعمن أجل توليد نسخة ملف التوزيع، نقوم بتنفيذ الأمر التالي: cd ~/MyApplication python setup.py sdistسيذهب هذا الأمر إلى إعداداتنا، يطبع العمليات التي يتمّ تنفيذها ويُوَلِّد ملف أرشيف tar داخل الدليل الجديد diet، مشابهًا لما يلي: # root@hostname:~/MyApplication# ls dist # MyApplication-0.1.0.tar.gzملاحظة: بما أنّنا لم نقم بتأهيل جميع المجلدات الفرعية (مثل static) وتعاملنا مع ملفات إضافية (مثل README.txt)، فقد نحصل على بعض التحذيرات أثناء عمليّة الإنشاء. 2. كيفية تثبيت التطبيقيستطيع الآخرون من الآن فصاعدًا تثبيت واستخدام التّطبيق باستخدام ملف setup.py الذي أنشأناه. من أجل تثبيت التطبيق نقوم بتنفيذ الأوامر التالية: python setup.py installإن كان هذا التثبيت من أجل التطوير وأردنا تثبيت المُتطلّبات سنقوم بتنفيذ ما يلي: python setup.py develop3. كيفية مشاركة التطبيقإن أردنا مشاركة الشيفرة على دليل حِزَم بايثون، نستطيع فعل ذلك عن طريق بدء الإجراء register كما يلي: python setup.py registerنستطيع إكمال هذا الإجراء عبر اتّباع التّعليمات التي تظهر على الشّاشة. وإن كنّا نملك تسجيل دخول مسجل registered login من أجل الرفع Upload فقط نستطيع استخدام الأمر التالي: python setup.py sdist upload4. كيفية إنشاء حزم من الإصدارات الجديدة للتطبيقنقوم بتحرير الملف setup.py عن طريق مُحرّر نصوص (مثل nano) وتعيين رقم الإصدار الجديد "version="0.1.1.نقوم بتحرير الملف CHANGES.txt لنعكس التغييرات.نقوم بإجراء التّعديلات الضّروريّة على الملفين LICENSE.txt و README.txt.رفع الشّيفرة بعد الخطوة السّابقة.ترجمة -وبتصرّف- لـلمقال How To Package And Distribute Python Applications لصاحبه O.S. Tezer. حقوق الصورة البارزة: Designed by Freepik.