ruby-build est un outil de ligne de commande qui simplifie l'installation de n'importe quelle version de Ruby à partir des sources sur des systèmes de type Unix.
Il est disponible sous forme de plugin pour rbenv en tant que commande rbenv install
ou en tant que programme autonome en tant que commande ruby-build
.
brew install ruby-build
Mise à niveau avec :
brew upgrade ruby-build
git clone https://github.com/rbenv/ruby-build.git " $( rbenv root ) " /plugins/ruby-build
Mise à niveau avec :
git -C " $( rbenv root ) " /plugins/ruby-build pull
Tout d'abord, téléchargez une archive tar depuis https://github.com/rbenv/ruby-build/releases/latest. Alors:
tar -xzf ruby-build- * .tar.gz
PREFIX=/usr/local ./ruby-build- * /install.sh
# As a standalone program
$ ruby-build --list # lists latest stable releases for each Ruby
$ ruby-build --definitions # lists all definitions, including outdated ones
$ ruby-build 3.2.2 ~ /.rubies/ruby-3.2.2 # installs Ruby 3.2.2
$ ruby-build -d ruby-3.2.2 ~ /.rubies # alternate form for the previous example
# As an rbenv plugin
$ rbenv install 3.2.2 # installs Ruby 3.2.2 to ~/.rbenv/versions/3.2.2
Avertissement
ruby-build ne vérifie généralement pas que les dépendances du système sont présentes avant de télécharger et de tenter de compiler Ruby à partir des sources. Veuillez vous assurer que toutes les bibliothèques requises telles que les outils de construction et les en-têtes de développement sont déjà présentes sur votre système.
Fondamentalement, ce que fait Ruby-build lors de l'installation d'une version Ruby est le suivant :
./configure --prefix=/path/to/destination
dans le code source ;make install
pour compiler Ruby ;Selon le contexte, ruby-build fait un peu plus que ce qui précède : par exemple, il essaiera de lier Ruby à la version OpenSSL appropriée, même si cela signifie télécharger et compiler OpenSSL lui-même ; il découvrira et créera des liens vers les instances installées par Homebrew de certaines bibliothèques comme libyaml et readline, etc.
Pour installer une version de Ruby qui n'est pas reconnue par ruby-build, vous pouvez spécifier le chemin d'accès à un fichier de définition de build personnalisé à la place d'un numéro de version Ruby.
Consultez les définitions de build par défaut comme exemples sur la façon d'écrire des fichiers de définition.
Le processus de construction peut être configuré via les variables d'environnement suivantes :
Variable | Fonction |
---|---|
TMPDIR | Où les fichiers temporaires sont stockés. |
RUBY_BUILD_BUILD_PATH | Où les sources sont téléchargées et construites. (Par défaut : un sous-répertoire horodaté de TMPDIR ) |
RUBY_BUILD_CACHE_PATH | Où mettre en cache les fichiers de package téléchargés. (Par défaut : ~/.rbenv/cache s'il est invoqué en tant que plugin rbenv) |
RUBY_BUILD_HTTP_CLIENT | L'un des aria2c , curl ou wget à utiliser pour le téléchargement. (Par défaut : premier trouvé dans PATH) |
RUBY_BUILD_ARIA2_OPTS | Options supplémentaires à transmettre à aria2c pour le téléchargement. |
RUBY_BUILD_CURL_OPTS | Options supplémentaires à transmettre à curl pour le téléchargement. |
RUBY_BUILD_WGET_OPTS | Options supplémentaires à transmettre à wget pour le téléchargement. |
RUBY_BUILD_MIRROR_URL | Racine de l'URL du miroir personnalisé. |
RUBY_BUILD_MIRROR_PACKAGE_URL | URL miroir complète personnalisée (par exemple http://mirror.example.com/package-1.0.0.tar.gz). |
RUBY_BUILD_SKIP_MIRROR | Contournez le miroir de téléchargement et récupérez tous les fichiers du package à partir de leurs URL d'origine. |
RUBY_BUILD_TARBALL_OVERRIDE | Remplacez l'URL à partir de laquelle récupérer l'archive tar Ruby, éventuellement suivie de #checksum . |
RUBY_BUILD_DEFINITIONS | Liste de chemins séparés par des deux-points pour rechercher les fichiers de définition de build. |
RUBY_BUILD_ROOT | Préfixe de chemin pour rechercher les fichiers de définitions de build. Obsolète : utilisez RUBY_BUILD_DEFINITIONS |
RUBY_BUILD_VENDOR_OPENSSL | Construire et vendre openssl même si le système openssl est compatible |
CC | Chemin d'accès au compilateur C. |
RUBY_CFLAGS | Options CFLAGS supplémentaires ( par exemple, pour remplacer -O3 ). |
CONFIGURE_OPTS | Options ./configure supplémentaires. |
MAKE | Commande make personnalisée ( par exemple, gmake ). |
MAKE_OPTS / MAKEOPTS | Options make supplémentaires. |
MAKE_INSTALL_OPTS | Options make install supplémentaires. |
RUBY_CONFIGURE_OPTS | Options ./configure supplémentaires (s'applique uniquement à la source Ruby). |
RUBY_MAKE_OPTS | Options make supplémentaires (s'applique uniquement à la source Ruby). |
RUBY_MAKE_INSTALL_OPTS | Options make install supplémentaires (s'applique uniquement à la source Ruby). |
NO_COLOR | Désactivez les couleurs ANSI en sortie. La valeur par défaut consiste à utiliser des couleurs pour la sortie connectée à un terminal. |
CLICOLOR_FORCE | Utilisez les couleurs ANSI en sortie même lorsque vous n'êtes pas connecté à un terminal. |
Les commandes rbenv install
et ruby-build
prennent en charge l'indicateur -p/--patch
pour appliquer un correctif au code source Ruby avant la construction. Les patchs sont lus à partir de l'entrée standard :
# applying a single patch
$ rbenv install --patch 1.9.3-p429 < /path/to/ruby.patch
# applying a patch from HTTP
$ rbenv install --patch 1.9.3-p429 < <( curl -sSL http://git.io/ruby.patch )
# applying multiple patches
$ cat fix1.patch fix2.patch | rbenv install --patch 1.9.3-p429
Tous les fichiers de définition Ruby fournis avec ruby-build incluent des sommes de contrôle pour les packages, ce qui signifie que l'intégrité de tous les packages téléchargés en externe est automatiquement vérifiée après la récupération.
Consultez la section suivante pour plus d’informations sur la création de sommes de contrôle.
Pour accélérer les téléchargements, ruby-build récupère les fichiers du package à partir d'un miroir hébergé sur Amazon CloudFront. Pour en bénéficier, les packages doivent préciser leur somme de contrôle :
# example:
install_package " ruby-2.6.5 " " https://ruby-lang.org/ruby-2.6.5.tgz# "
ruby-build essaiera d'abord de récupérer ce package à partir de $RUBY_BUILD_MIRROR_URL/
(remarque : il s'agit de l'URL complète), où
est la somme de contrôle du fichier. Il faudra télécharger le package à partir de l'emplacement d'origine si :
RUBY_BUILD_SKIP_MIRROR
est activé. Vous pouvez spécifier un miroir personnalisé en définissant RUBY_BUILD_MIRROR_URL
.
Si un site miroir n'est pas conforme au format d'URL ci-dessus, vous pouvez spécifier l'URL complète en définissant RUBY_BUILD_MIRROR_PACKAGE_URL
. Il se comporte de la même manière que RUBY_BUILD_MIRROR_URL
sauf qu'il s'agit d'une URL complète.
Le miroir de téléchargement Ruby-Build par défaut est sponsorisé par Basecamp.
ruby-build
et rbenv install
acceptent tous deux l'indicateur -k
ou --keep
, qui indique à ruby-build de conserver la source téléchargée après l'installation. Cela peut être utile si vous devez utiliser gdb
et memprof
avec Ruby.
Le code source sera conservé dans une arborescence de répertoires parallèle ~/.rbenv/sources
lors de l'utilisation --keep
avec la commande rbenv install
. Vous devez spécifier l'emplacement du code source avec la variable d'environnement RUBY_BUILD_BUILD_PATH
lorsque vous utilisez --keep
avec ruby-build
.
Veuillez consulter le wiki Ruby-build pour les solutions aux problèmes courants.
Si vous ne trouvez pas de réponse sur le wiki, ouvrez un ticket sur l'outil de suivi des tickets. Assurez-vous d'inclure le journal de build complet pour les échecs de build.