Status: Verouderd
Dit artikel is verouderd en wordt niet langer onderhouden.
Reden
Homebrew biedt nu rechtstreekse ondersteuning voor Linux.
Zie in plaats daarvan
Dit artikel kan nog steeds nuttig zijn als referentie, maar werkt mogelijk niet meer of volgt niet de beste praktijken. We raden ten zeerste aan om een recent artikel te gebruiken dat is geschreven voor het besturingssysteem dat u gebruikt.
Inleiding
LinuxBrew is een Linux-vertakking van de populaire Mac OS X HomeBrew pakketbeheerder.
LinuxBrew is pakketbeheersoftware, waarmee het installeren van pakketten vanaf de bron mogelijk is, bovenop het standaard pakketbeheer van het systeem (bijvoorbeeld “apt/deb” in Debian/Ubuntu en “yum/rpm” in CentOS/RedHat).
Waarom LinuxBrew gebruiken?
-
HomeBrew werd oorspronkelijk ontwikkeld voor Mac OS X (dat geen standaard open-source pakketbeheersysteem heeft). Het verving pakketbeheersystemen zoals MacPorts en Fink. LinuxBrew is Homebrew geporteerd naar Linux.
-
De meeste Linux distributies hebben een goed pakketbeheersysteem (bijvoorbeeld “apt/deb” in Debian/Ubuntu en “yum/rpm” in CentOS/RedHat), echter
-
Pakketten in de standaard repositories zijn vaak ouder dan de nieuwste beschikbare versies, en
-
Veel open-source pakketten zijn niet beschikbaar in de standaard repositories (bijvoorbeeld veelvoorkomende bioinformatica-tools).
-
-
LinuxBrew biedt een repository van software installatierecepten (pakketten worden geïnstalleerd vanaf de bron en gecompileerd op de lokale machine) om de pakketten uit de standaard repository van de distributie aan te vullen.
-
LinuxBrew biedt een eenvoudige methode om uw eigen repositories te bouwen (d.w.z. een lijst van open-source pakketten op maat gemaakt voor uw behoeften).
-
LinuxBrew installeert software in een door de gebruiker opgegeven directory (niet systeembreed), en vereist geen
sudo
toegang. -
LinuxBrew (en HomeBrew) integreert zeer goed met GitHub, waardoor het gemakkelijk is om installatierecepten te delen.
Vooral met DigitalOcean, dat (ten tijde van dit schrijven) geen deelbare Droplet-images (met aangepaste geconfigureerde geïnstalleerde software) biedt, kan een LinuxBrew-repository een snelle methode bieden om specifieke pakketten en versies te installeren op een standaard Linux-machine.
De essentie van LinuxBrew
Kort gezegd, zorgt LinuxBrew ervoor dat het tar.gz
-bestand wordt gedownload en ./configure && make && make install
voor je wordt uitgevoerd (of welke commando’s er ook nodig zijn om het pakket te installeren).
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
Of zo ingewikkeld als emacs.rb.
Zodra een formulebestand correct is gedefinieerd, is het installeren van het pakket eenvoudigweg een kwestie van uitvoeren:
$ brew install FORMULA
Voorbereiden op LinuxBrew – Debian/Ubuntu
Voor Debian/Ubuntu-gebaseerde systemen, voer de volgende commando’s uit:
$ 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
Voorbereiden op LinuxBrew – CentOS/RedHat
Voor RedHat/CentOS-gebaseerde systemen, voer de volgende commando’s uit:
$ 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 installeren
Het installeren van LinuxBrew is simpelweg een kwestie van het klonen van de LinuxBrew Repository.
Stap 1 – LinuxBrew klonen
Om alles netjes te houden, kloon LinuxBrew in een verborgen map in de home directory van de gebruiker:
$ git clone https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew
Maar elke andere directory zou net zo goed werken.
Stap 2 – Werk omgevingsvariabelen bij
De volgende stap is om LinuxBrew toe te voegen aan de omgevingsvariabelen van de gebruiker.
Voeg de volgende regels toe aan het einde van het bestand ~/.bashrc
van de gebruiker:
# Totdat LinuxBrew is opgelost, is het volgende vereist.
# Zie: 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
## Opzetten van 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
OPMERKING: Als je LinuxBrew hebt geïnstalleerd in een andere directory, wijzig dan het pad in LINUXBREWHOME
hierboven.
Stap 3 – Test installatie
Om ervoor te zorgen dat deze wijzigingen van kracht worden, log uit en log opnieuw in. De shell zou dan deze nieuwe instellingen moeten gebruiken.
Om deze nieuwe instellingen te testen, probeer:
$ 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:
Pakketten installeren met LinuxBrew
Welke pakketten zijn beschikbaar?
Type brew search
om de lijst van alle beschikbare pakketten te zien (alle pakketten die de huidige installatie van LinuxBrew kent – zie hieronder voor het toevoegen van repositories).
Type brew search WOORD
om alle pakketten (genaamd Formules in HomeBrew-jargon) te zien die WOORD bevatten. Voorbeeld:
$ 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
Een pakket installeren
Om een pakket te installeren, voer brew install PAKKET
uit.
Voorbeeld, het installeren van jq – JSON-processor:
$ 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
De bruikbaarheid van LinuxBrew is duidelijk: hoewel Ubuntu jq heeft in de laatste repositories, is de versie ervan oud (1.2). Debian Stable en Testing hebben helemaal geen jq-pakket. De versie van LinuxBrew is de meest recente (1.3). Bovendien installeert LinuxBrew het programma op een pad dat niet conflicteert met de standaardlocatie van het systeem.
Bestaande HomeBrew-repositories toevoegen
HomeBrew/LinuxBrew repositories worden TAPS genoemd. Dit zijn eenvoudigweg GitHub-repositories die Ruby-scripts (‘Formules’) bevatten. De HomeBrew Githab Gebruiker heeft verschillende gemeenschappelijke repositories.
Voorbeeld: het toevoegen van de homebrew-science repository (met veel handige open-source wetenschappelijke programma’s) en de HomeBrew-Games repository:
$ 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
Lijst met beschikbare taps:
$ brew tap
homebrew/science
homebrew/games
Installeer elk pakket van die repositories:
$ 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
Het bijwerken van TAPs en Pakketten
Om updates voor Formules te downloaden, voer je het volgende uit:
$ brew update
Om pakketten te upgraden (indien updates beschikbaar zijn), voer je het volgende uit:
$ brew upgrade PACKAGE
Het maken van Aangepaste/Privé TAPs (Repositories)
A HomeBrew TAP/Repository is simply a collection of Formulas – Ruby scripts stored in local files or in GitHub repositories.
Formules in lokale bestanden
Om een formule vanuit een lokaal bestand te installeren, voer je het volgende uit:
$ brew install /full/path/to/file.rb
Dit is handig bij het maken (en debuggen) van een nieuwe formule.
Formules in GitHub-repositories
Om een aangepaste TAP-repository te maken in GitHub, maakt u een nieuwe GitHub-repository (in het GitHub-account van uw gebruiker) en noemt u deze homebrew-NAAM
. Het moet beginnen met ‘homebrew-‘ om te werken als een HomeBrew/LinuxBrew tap. NAAM
kan elke gewenste naam zijn.
Voorbeeld:
GitHub-gebruiker agordon heeft een HomeBrew-repository met de naam gordon, de volledige URL is: https://github.com/agordon/homebrew-gordon.
Om deze repository te gebruiken (“tappen”):
$ 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
NOTITIES
-
brew tap
gebruikte de gebruikersnaamagordon
en de repositoriesuffixgordon
(achtervoegsel van ‘homebrew-gordon’) en leidde de GitHub-URL af om toegang te krijgen. -
Formules in aangepaste repositories kunnen conflicteren met formules in de officiële HomeBrew-repositories. Dat is volkomen normaal. Zie hieronder hoe dergelijke pakketten te installeren.
Om niet-conflicterende pakketten van aangepaste repositories te installeren, voer het volgende uit:
$ brew install libjson
Om pakketten van specifieke taps te installeren, voer het volgende uit:
$ brew install agordon/gordon/coreutils
Meer informatie
LET OP: Bij het lezen van HomeBrew-gerelateerde informatie, houd er rekening mee dat HomeBrew is ontwikkeld voor Mac OS X.
LinuxBrew (de Linux-poort van HomeBrew) heeft veel overeenkomsten met HomeBrew, maar ook enkele Linux-specifieke verschillen.
<div class=“auteur”>Ingezonden door <a href=“https://github.com/agordon”>Assaf Gordon</a></div>
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-linuxbrew-on-a-linux-vps