كيفية استخدام Pkg Package Manager على FreeBSD 12

المقدمة

FreeBSD هو نظام تشغيل مفتوح المصدر يشبه Unix يستخدم لتشغيل الخوادم الحديثة وأجهزة الكمبيوتر المكتبية والمنصات المدمجة. يستخدم عمالقة مثل Netflix و Yahoo! و WhatsApp و BBC و Sony FreeBSD بشكل ما. لا يعرف نظام FreeBSD على نطاق واسع باسم Linux ، ويرجع ذلك إلى حد كبير إلى أن Linux ركز لسنوات عديدة على سطح المكتب وتميل مشروع FreeBSD إلى أن يكون أكثر خادمًا.

في هذا الدليل ، ستتعرف على إدارة الحزم على FreeBSD 12.

المنافذ مقابل الحزم

على FreeBSD لدينا طريقتان مختلفتان لتثبيت البرنامج الإضافي: عبر Ports Collection أو Ports وعبر الحزم المهيأة مسبقًا لتثبيت البرنامج وإدارته.

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

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

شيء آخر مهم حول إدارة حزمة FreeBSD هو موقع ثنائيات الحزمة. تقوم الحزم بتثبيت ثنائيات تحت /usr/local، وتنتهي معظم ملفات التكوين /usr/local/etcبدلاً من ذلك /etc. إذا كنت قادمًا من عالم Linux ، فقد تجد هذا غير شائع جدًا.

مدير حزمة FreeBSD ، pkg

بديل الجيل التالي لأدوات إدارة حزمة FreeBSD التقليدية هو pkg. يعد تقديم العديد من الميزات التي تجعل التعامل مع الحزم الثنائية أسرع وأسهل ، pkgأسهل طريقة لتثبيت البرامج التي لم يتم تضمينها بالفعل في النظام الأساسي لـ FreeBSD. إنه برنامج واحد يحتوي على العديد من الأوامر الفرعية التي ستستخدمها فقط لكل عملية على الحزم مثل تثبيت الحزم وإزالتها والتحقيق فيها. يجب تشغيل جميع عمليات وتغييرات الحزمة كـ rootأو عبر sudo.

إليك كيفية تثبيت curlالحزمة على FreeBSD:

pkg install curl

يمكنك إطعام الأمر -yلتجنب Proceed with this action? [y/N]:السؤال عند تثبيت البرنامج أو يمكنك تكوين pkgلتفترض دائمًا -yفي ملف التكوين.

لإزالة الحزمة ، ستستخدم delete:

pkg delete curl

كما ترون ، إنه بسيط للغاية وبديهي.

استخدم pkg helpكمرجع سريع للأوامر الفرعية المتاحة ، أو pkg help <subcommand>لعرض الصفحة اليدوية لأمر فرعي معين:

pkg help
pkg help install
pkg help delete

التثبيت pkg

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

The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y

سوف ضرب Yو ENTERوسيبدأ تركيب أداة إدارة الحزم. بعد وضعها ، wgetسيتم تثبيت حزمة البرامج الأولية التي تريد تثبيتها ( ).

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

ملاحظة: تم pkgتثبيت مثيلات Vultr بشكل افتراضي ، لذلك لا تحتاج إلى تثبيتها.

التكوين pkg

و pkgتم تصميم البرنامج ليكون مرنا للغاية، مع كل subcommand وجود العديد من الخيارات. يمكنك إنشاء سلوك مخصص ، ولكن متناسق لمعظم البرامج مع ملف التكوين على مستوى النظام لـ pkg، الموجود في /usr/local/etc/pkg.conf.

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

#PKG_DBDIR = "/var/db/pkg";
#PKG_CACHEDIR = "/var/cache/pkg";
#PORTSDIR = "/usr/ports";
#INDEXDIR = "";
#INDEXFILE = "INDEX-10";        # Autogenerated
#HANDLE_RC_SCRIPTS = false;
#DEFAULT_ALWAYS_YES = false;
#ASSUME_ALWAYS_YES = false;
. . .

يمكنك تحديد الأسماء المستعارة pkgللأوامر الفرعية في pkg.conf. في الجزء السفلي pkg.conf، ستجد قسمًا يسمى ALIAS. عندما تجد نفسك تقوم بتشغيل أوامر معقدة بشكل متكرر ، يجب عليك إضافة الأسماء المستعارة.

لمزيد من المعلومات حول تنسيق الملف وخياراته ، يمكنك الرجوع إلى pkg.conf(5)صفحة الدليل :

man pkg.conf

إيجاد الحزم

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

يقدم مشروع FreeBSD عدة مجموعات من الحزم في مستودع عام ، ويتم تحديثها كل بضعة أيام. يوجد حاليا أكثر من 25000 حزمة.

على سبيل المثال ، دعنا نحاول البحث عن خادم الويب Apache:

pkg search apache
# apache24-2.4.38                Version 2.4.x of Apache web server

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

يمكن لبعض عمليات البحث توليد مئات النتائج. ستحتاج إلى استخدام خيارات سطر الأوامر المختلفة لقص نتائج البحث أو ضبطها. راجع pkg-searchصفحة الدليل أو صفحة المساعدة pkg help searchلمعرفة المزيد حول خيارات البحث الشائعة.

إذا لم تكن متأكدًا مما إذا كانت الحزمة هي ما تريده حقًا ، فيمكنك استخدام الأمر التالي للبحث عن تفاصيل الحزمة:

pkg search -R apache24

# name: "apache24"
# origin: "www/apache24"
# version: "2.4.38"
# comment: "Version 2.4.x of Apache web server"
# maintainer: "[email protected]"
# www: "https://httpd.apache.org/"
# abi: "FreeBSD:12:amd64"
# arch: "freebsd:12:x86:64"
# prefix: "/usr/local"
# . . .
# . . .

سيعطيك هذا الأمر الكثير من المعلومات المفيدة حول الحزمة.

تثبيت الحزم

لتثبيت البرنامج ، استخدم الأمر installالفرعي واسم الحزمة لتثبيت:

pkg install apache24

عند تثبيت الحزم مع pkg install، pkgاستشر كتالوج الحزم المحلي ، ثم قم بتنزيل الحزمة المطلوبة من المستودع على pkg.FreeBSD.org. بمجرد تثبيت الحزمة ، يتم تسجيلها في قاعدة بيانات SQLite المحفوظة /var/db/pkg/local.sqlite. احرص على عدم حذف هذا الملف ، وإلا ، سيفقد نظامك الحزم التي تم تثبيتها. إذا كان البرنامج يحتوي على تبعيات ، pkgفسوف يكتشفها ويثبتها مع الحزمة الأساسية. الحزم التي تم تركيبها على أنها تبعيات تسمى الحزم التلقائية .

يتمتع مدير الحزم بالقدرة على تنزيل الحزم عبر الإنترنت وحفظها في مكان واحد على القرص. هذا يسمح لك بتثبيتها في وقت آخر. يمكنك استخدام pkg fetchالأمر لتنزيل الحزمة دون تثبيتها:

pkg fetch nginx

سيجلب هذا الأمر Nginx فقط بدون تبعياته. يمكنك استخدام -dالعلم للحصول على كل التبعيات وكذلك الحزمة المسماة:

pkg fetch -d nginx

يتم تنزيل الحزم إلى دليل ذاكرة التخزين المؤقت للحزمة /var/cache/pkg. بعد إحضار الحزم ، قم pkgبإضافتها إلى هذا الدليل. يمكنك إدراج الملفات لمعرفة ما تحتوي عليه:

ls /var/cache/pkg

الآن ، لتثبيت حزمة تم تنزيلها بعد الجلب ، قم بتشغيلها بشكل pkg installطبيعي. تستخدم عملية التثبيت الملفات المخزنة مؤقتًا بدلاً من الملفات التي تم تنزيلها.

بمرور الوقت ، يمكن أن يزداد حجم دليل ذاكرة التخزين المؤقت للحزمة. و pkg cleanالقيادة يزيل أية حزم المخبأة التي تم استبدالها من قبل الإصدارات الجديدة، وكذلك أي ملفات الحزمة التي لم تعد في المستودع:

pkg clean

إذا كنت تريد إزالة جميع الحزم المخزنة مؤقتًا ، فاستخدم -aالعلامة:

pkg clean -a

إذا كنت تريد تنظيف ذاكرة التخزين المؤقت للحزمة تلقائيًا بعد كل تثبيت أو ترقية للحزمة ، فقم بتعيين pkg.confالخيار AUTOCLEANعلى true.

الحصول على معلومات حول الحزم المثبتة

إذا نسيت الحزم التي قمت بتثبيتها على نظام ، يمكنك استخدامها pkg infoللحصول على قائمة كاملة بالبرامج المثبتة:

pkg info
# atk-2.28.1                     GNOME accessibility toolkit (ATK)
# avahi-app-0.7_2                Service discovery on a local network
# ca_root_nss-3.42.1             Root certificate bundle from the Mozilla Project
# . . .
# . . .

إذا كنت تريد المزيد من المعلومات حول حزمة مثبتة ، فاستخدم pkg infoواسم الحزمة. يعرض هذا تفاصيل تثبيت الحزمة في تقرير صديق للإنسان:

pkg info nginx
# nginx-1.14.2_3,2
# Name           : nginx
# Version        : 1.14.2_3,2
# . . .
# . . .

يمكنك الاطلاع على الكثير من المعلومات المفيدة مثل إصدار البرنامج ووقت تثبيت البرنامج وترخيص البرنامج وإشارات وقت الترجمة والمزيد. تحقق من pkg-infoصفحة الدليل للحصول على التفاصيل الكاملة.

إزالة الحزم

لإلغاء حزم ثنائية استخدم الأمر pkg deleteالفرعي. إنه متاح أيضًا على النحو التالي pkg remove:

pkg delete nginx
# or
pkg remove nginx

ستحصل على قائمة الحزم المراد إزالتها ومقدار المساحة التي ستحررها.

إذا قمت بإزالة حزمة تعتمد عليها الحزم الأخرى ، pkgتزيل الحزم التابعة أيضًا.

حزم القفل

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

استخدم pkg lockلقفل حزمة:

pkg lock openssl

هذه opensslالحزمة مقفلة الآن.

لإدراج جميع الحزم المقفلة حاليًا على النظام ، استخدم -lالعلامة:

pkg lock -l

لإزالة القفل ، استخدم pkg unlockالأمر:

pkg unlock openssl

لقفل أو إلغاء قفل جميع الحزم على النظام مرة واحدة ، استخدم -aالعلم:

pkg lock -a
pkg unlock -a

مستودعات الحزمة

يتم دعم مستودعات الحزم بواسطة pkg، والتي تسمى مجموعات الحزم. يمكنك إضافة مستودعات وإزالتها وتمكينها وتعطيلها. يجب عليك تكوين كل مستودع في ملفه الخاص باستخدام تنسيق UCL. تنتمي مستودعات FreeBSD الرسمية إلى /etc/pkgالدليل. يأتي FreeBSD مع تمكين الريبو "FreeBSD". ستجد ملف التكوين الخاص به في /etc/pkg/FreeBSD.conf:

FreeBSD: {
  url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly",
  mirror_type: "srv",
  signature_type: "fingerprints",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes
}

يمكنك إضافة وإزالة المستودعات حسب الحاجة. كما /etc/pkgهو محجوز لمستودعات FreeBSD الرسمية ، ستحتاج إلى دليل آخر. الموقع التقليدي /usr/local/etc/pkg/repos. إذا كنت تريد استخدام دليل مختلف ، فستحتاج إلى تعيين موقع pkg.confباستخدام REPO_DIRSالخيار. دليل المستودع المحلي غير موجود افتراضيًا ، لذا ستحتاج إلى إنشائه باستخدام mkdir -p /usr/local/etc/pkg/repos. ضع تكوينات المستودع الخاصة بك في هذا الدليل.

أمثلة على pkgالأوامر الفرعية

يسرد هذا القسم بعض الأوامر الفرعية الأكثر استخدامًا التي ستستخدمها على الأرجح عند إدارة خادم FreeBSD:

# Installs a package without asking any questions
pkg install -y package

# Makes a backup of the local package database
pkg backup

# Lists all installed packages
pkg info

# Shows extended information for a package
pkg info package

# Searches package repository
pkg search -i package

# Shows packages with known security vulnerabilities
pkg audit -F

# Shows which package owns the named file
pkg which file

# Removes unused packages
pkg autoremove

# Uninstalls a package
pkg delete package

# Removes cached packages from /var/cache/pkg 
pkg clean -ay

# Updates local copy of the package catalog
pkg update

# Upgrades installed packages to their latest version
pkg upgrade

# Checks the integrity of all your packages
pkg check -saq

# Verifies that a package's files are unaltered
pkg check -s nginx

# Shows what files came with the package
pkg info -l nginx

# Lists non-automatic packages
pkg prime-list

الملفات والدلائل الهامة

  • في pkgملف التكوين -/usr/local/etc/pkg.conf
  • دليل محفوظة لمستودعات FreeBSD الرسمية - /etc/pkg
  • ملف مستودع فري - /etc/pkg/FreeBSD.conf
  • الموقع التقليدي للمستودعات المخصصة - /usr/local/etc/pkg/repos
  • دليل ذاكرة التخزين المؤقت للحزمة - /var/cache/pkg
  • قاعدة بيانات SQLite - /var/db/pkg/local.sqlite

ملخص

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



Leave a Comment

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

6 أشياء شديدة الجنون حول نينتندو سويتش

6 أشياء شديدة الجنون حول نينتندو سويتش

يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.

وظائف طبقات معمارية مرجعية للبيانات الضخمة

وظائف طبقات معمارية مرجعية للبيانات الضخمة

اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

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

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

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

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

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