كيفية تثبيت واستخدام LinuxBrew على خادم Linux

الحالة: مهجور

تم تجاهل هذه المقالة ولا تصلح للصيانة بعد الآن.

السبب

Homebrew الآن يوفر الدعم الأساسي لنظام Linux.

انظر بدلاً من ذلك

قد تظل هذه المقالة مفيدة كمرجع، ولكن قد لا تعمل أو تتبع أفضل الممارسات. نوصي بشدة باستخدام مقال أحدث مكتوب لنظام التشغيل الذي تستخدمه.

مقدمة


LinuxBrew هو نسخة مخصصة لنظام Linux من مدير الحزم الشهير HomeBrew على نظام Mac OS X.

LinuxBrew هو برنامج إدارة الحزم يمكّن من تثبيت الحزم من المصدر، فوق نظام إدارة الحزم الافتراضي للنظام (مثل “apt/deb” في Debian/Ubuntu و “yum/rpm” في CentOS/RedHat).

لماذا استخدام LinuxBrew ؟


  • HomeBrew تم تطويره أصلاً لنظام Mac OS X (الذي لا يحتوي على نظام افتراضي لإدارة الحزم مفتوح المصدر). لقد تم استبدال أنظمة إدارة الحزم مثل MacPorts و Fink. LinuxBrew هو الإصدار المنقول من Homebrew إلى نظام Linux.

  • معظم توزيعات Linux تحتوي على نظام جيد لإدارة الحزم (مثل “apt/deb” في Debian/Ubuntu و “yum/rpm” في CentOS/RedHat)، ولكن

    • الحزم في المستودعات القياسية غالباً ما تكون أقدم من الإصدارات الأحدث المتوفرة، و

    • العديد من الحزم مفتوحة المصدر غير متوفرة في المستودعات القياسية (مثل الأدوات الحيوية الشائعة).

  • لينكس برو يوفر مستودعًا لوصفات تثبيت البرامج (يتم تثبيت الحزم من المصدر وتجميعها على الجهاز المحلي) لتكملة الحزم من مستودع النظام القياسي.

  • لينكس برو يوفر طريقة سهلة لبناء مستودعات خاصة بك (أي قائمة من الحزم مفتوحة المصدر مصممة وفقًا لاحتياجاتك).

  • لينكس برو يقوم بتثبيت البرامج في الدليل المحدد من قبل المستخدم (ليس على مستوى النظام)، ولا يتطلب وصول sudo.

  • LinuxBrewHomeBrew) يدمجان بشكل جيد جدًا مع GitHub، مما يمكّن من مشاركة وصفات التثبيت بسهولة.

خاصة مع DigitalOcean، التي (في وقت كتابة هذا) لا توفر صورًا قابلة للمشاركة لـ Droplet (مع برمجيات مثبتة مُعدلة حسب الطلب)، يمكن أن يوفر مستودع LinuxBrew طريقة سريعة لتثبيت الحزم والإصدارات المحددة على جهاز Linux قياسي.

جوهر LinuxBrew


ببساطة، يقوم LinuxBrew بتنزيل ملف tar.gz وتشغيل ./configure && make && make install بالنيابة عنك (أو أي أوامر أخرى مطلوبة لتثبيت الحزمة).

A LinuxBrew Formula is a Ruby script which defines where to find the tar.gz file, how to build the package, and how to install it.

A formula file can be as simple as hmmer.rb (a bioinformatics tool):

class Hmmer < Formula
  homepage 'http://hmmer.janelia.org/'
  url 'http://selab.janelia.org/software/hmmer3/3.1b1/hmmer-3.1b1.tar.gz'

  def install
    system "./configure", "--prefix=#{prefix}"
    system "make"
    system "make install"
  end
end

أو بتعقيد emacs.rb.

بمجرد تعريف ملف الصيغة بشكل صحيح، يكون تثبيت الحزمة مسألة بسيطة تتمثل في تشغيل:

$ brew install FORMULA

التحضير لـ LinuxBrew – Debian/Ubuntu


لأنظمة Debian/Ubuntu، قم بتشغيل الأوامر التالية:

$ sudo apt-get update
$ sudo apt-get upgrade -y
$ sudo sudo apt-get install -y build-essential make cmake scons curl git \
                               ruby autoconf automake autoconf-archive \
                               gettext libtool flex bison \
                               libbz2-dev libcurl4-openssl-dev \
                               libexpat-dev libncurses-dev

التحضير لـ LinuxBrew – CentOS/RedHat


لأنظمة RedHat/CentOS، قم بتشغيل الأوامر التالية:

$ sudo yum update -y
$ sudo yum groupinstall -y "Development Tools"
$ sudo yum install -y \
        autoconf automake19 libtool gettext \
        git scons cmake flex bison \
        libcurl-devel curl \
        ncurses-devel ruby bzip2-devel expat-devel

تثبيت LinuxBrew


تثبيت LinuxBrew هو مسألة بسيطة من استنساخ مستودع LinuxBrew.

الخطوة 1 – استنساخ LinuxBrew


للحفاظ على الأمور منظمة، قم بتشغيل LinuxBrew في دليل مخفي في دليل المستخدم الرئيسي:

$ git clone https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew

ولكن يمكن استخدام أي دليل آخر بنفس الكفاءة.

الخطوة 2 – تحديث المتغيرات البيئية


الخطوة التالية هي إضافة LinuxBrew إلى متغيرات البيئة للمستخدم.

أضف السطور التالية إلى نهاية ملف ~/.bashrc للمستخدم:

# حتى يتم إصلاح LinuxBrew ، يُطلب الواجب التالي.
# انظر: https://github.com/Homebrew/linuxbrew/issues/47
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH
## إعداد Linux Brew
export LINUXBREWHOME=$HOME/.linuxbrew
export PATH=$LINUXBREWHOME/bin:$PATH
export MANPATH=$LINUXBREWHOME/man:$MANPATH
export PKG_CONFIG_PATH=$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH

ملاحظة: إذا قمت بتثبيت LinuxBrew في دليل مختلف ، فقم بتغيير المسار في LINUXBREWHOME أعلاه.

الخطوة 3 – اختبار التثبيت


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

للاختبار هذه الإعدادات الجديدة ، جرب:

$ which brew
/home/ubuntu/.linuxbrew/bin/brew
$ echo $PKG_CONFIG_PATH
/home/ubuntu/.linuxbrew/lib64/pkgconfig:/home/ubuntu/.linuxbrew/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:

تثبيت الحزم باستخدام LinuxBrew


أي الحزم المتاحة؟


اكتب brew search لرؤية قائمة جميع الحزم المتاحة (جميع الحزم التي يعرفها التثبيت الحالي لـ LinuxBrew – انظر أدناه حول إضافة المستودعات).

اكتب brew search WORD لرؤية جميع الحزم (التي يُطلق عليها صيغ في لغة HomeBrew) التي تحتوي على WORD. مثال:

$ brew search xml
blahtexml       libnxml   libxml2     xml-coreutils   xml2        xmlrpc-c
html-xml-utils  libwbxml  libxmlsec1  xml-security-c  xmlcatmgr   xmlsh
libmxml         libxml++  tinyxml     xml-tooling-c   xmlformat   xmlstarlet

تثبيت حزمة


لتثبيت حزمة، قم بتشغيل brew install PACKAGE.

مثال، تثبيت jq – معالج JSON:

$ brew install jq
==> Downloading http://stedolan.github.io/jq/download/source/jq-1.3.tar.gz
==> ./configure
==> make
/home/ubuntu/.linuxbrew/Cellar/jq/1.3: 7 files, 256K, built in 10 seconds
$ which jq
/home/ubuntu/.linuxbrew/bin/jq
$ jq --version
jq version 1.3

يتضح الفائدة من LinuxBrew: بينما تحتوي أوبونتو على jq في المستودعات الأحدث، إلا أن إصدارها قديم (1.2). لا يحتوي Debian Stable وTesting على حزمة jq على الإطلاق. إصدار LinuxBrew هو الأحدث (1.3). بالإضافة إلى ذلك، يقوم LinuxBrew بتثبيت البرنامج في مسار لن يتعارض مع المسار الافتراضي للنظام.

إضافة مستودعات HomeBrew الحالية الموجودة


المستودعات HomeBrew/LinuxBrew تُعرف بـ TAPS. هذه ببساطة مستودعات GitHub تحتوي على سكربتات Ruby (‘صيغ’). المستخدم HomeBrew في GitHub لديه العديد من المستودعات الشائعة.

مثال: إضافة مستودع homebrew-science (الذي يحتوي على العديد من البرامج العلمية مفتوحة المصدر المفيدة) ومستودع HomeBrew-Games:

$ brew tap homebrew/science
Cloning into '/home/ubuntu/.linuxbrew/Library/Taps/homebrew-science'...
Tapped 237 formula
$ brew tap homebrew/games
Cloning into '/home/ubuntu/.linuxbrew/Library/Taps/homebrew-games'...
Tapped 57 formula

قائمة المستودعات المتاحة:

$ brew tap
homebrew/science
homebrew/games

تثبيت أي حزمة من تلك المستودعات:

$ brew install gnu-go
==> Downloading http://ftpmirror.gnu.org/gnugo/gnugo-3.8.tar.gz
#################################################################
==> ./configure --prefix=/home/ubuntu/.linuxbrew/Cellar/gnu-go/3.8 --with-readline=/usr/lib
==> make install
/home/ubuntu/.linuxbrew/Cellar/gnu-go/3.8: 9 files, 7.0M, built in 60 seconds

تحديث TAPs والحزم


لتنزيل أي تحديثات للصيغ، قم بتشغيل:

$ brew update

لترقية الحزم (إذا كانت هناك تحديثات متاحة)، قم بتشغيل:

$ brew upgrade PACKAGE

إنشاء TAPs (مستودعات) مخصصة/خاصة


A HomeBrew TAP/Repository is simply a collection of Formulas – Ruby scripts stored in local files or in GitHub repositories.

صيغ في ملفات محلية


لتثبيت صيغة من ملف محلي، قم بتشغيل:

$ brew install /full/path/to/file.rb

هذا مفيد عند إنشاء (وتصحيح الأخطاء في) صيغة جديدة.

الصُيَغ في مستودعات GitHub


لإنشاء مستودع TAP مخصص في GitHub، قم بإنشاء مستودع GitHub جديد (في حساب GitHub الخاص بالمستخدم) وقم بتسميته homebrew-NAME. يجب أن يبدأ بـ “homebrew-“ ليعمل كمستودع HomeBrew/LinuxBrew tap. يمكن أن يكون NAME أي اسم تريده.

مثال:

المستخدم في GitHub agordon لديه مستودع HomeBrew يُسمى gordon، الرابط الكامل هو: https://github.com/agordon/homebrew-gordon.

لاستخدام هذا المستودع (“تثبيته كـ TAP”):

$ brew tap agordon/gordon
Cloning into '/home/ubuntu/.linuxbrew/Library/Taps/agordon-gordon'...
Warning: Could not tap agordon/gordon/libestr over Homebrew/homebrew/libestr
Warning: Could not tap agordon/gordon/coreutils over Homebrew/homebrew/coreutils
Tapped 12 formula

ملاحظات

  1. brew tap استخدم اسم المستخدم agordon ولاحقة المستودع gordon (لاحقة “homebrew-gordon”) واستنتج عنوان URL للوصول إلى GitHub.

  2. الصُيَغ في المستودعات المخصصة قد تتعارض مع الصُيَغ في مستودعات HomeBrew الرسمية. هذا أمر طبيعي تمامًا. انظر أدناه لمعرفة كيفية تثبيت مثل هذه الحزم.

لتثبيت الحزم بدون تعارض من مستودعات مخصصة، قم بتشغيل:

$ brew install libjson

لتثبيت الحزم من حنفيات محددة، قم بتشغيل:

$ brew install agordon/gordon/coreutils

مزيد من المعلومات


ملاحظة: عند قراءة المعلومات المتعلقة بـ HomeBrew، خذ في الاعتبار أن HomeBrew تم تطويره لنظام التشغيل Mac OS X.

LinuxBrew (الإصدار المخصص لنظام التشغيل لينكس من HomeBrew) يشترك في العديد من الأمور مع HomeBrew، ولكنه يختلف أيضًا في بعض النقاط الخاصة بنظام التشغيل لينكس.

ويكي HomeBrew

أسئلة متكررة عن HomeBrew

كتاب الوصفات لـ HomeBrew

حلول مشاكل HomeBrew

موقع ويب LinuxBrew

مشاكل معروفة في LinuxBrew

<div class=“author”>تم التقديم بواسطة <a href=“https://github.com/agordon”>أساف جوردن</a></div>

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-linuxbrew-on-a-linux-vps