29 votes

Comment utiliser Homebrew pour installer une archive locale

Je suis en train d'essayer d'utiliser Homebrew pour installer wget, mais il se passe quelque chose où le téléchargement est toujours corrompu. Cela se produit pour tous les paquets, pas seulement wget. Je peux télécharger le tar.gz sans problème via un navigateur. Puis-je utiliser Homebrew pour installer une archive téléchargée localement? Quelque chose comme :

brew install wget-1.14.tar.gz

2 votes

Cela semble très étrange. Je ne sais pas si vous pouvez le faire, mais cela ressemble à quelque chose de plus sérieux se passe. Avez-vous essayé d'exécuter brew doctor ?

0 votes

Si vous avez l'archive exacte que Homebrew attend, vous pouvez la mettre dans ~/Library/Caches/Homebrew et ensuite essayer brew install. Mais ceci est mystérieux. Que diriez-vous de poster la sortie de brew install lorsque vous l'essayez de la manière normale?

0 votes

@echristopherson Votre méthode a fonctionné. Si vous la postez en tant que réponse, je l'accepterai.

27voto

aquaherd Points 5970

Si Homebrew a déjà une formule pour cela (dans /usr/local/Library/Formula), et que vous avez l'archive exacte que la formule attend (c'est-à-dire le même nom de fichier et le même contenu, tel que déterminé par SHA1 ou tout autre type de hachage utilisé par la formule), vous pouvez mettre l'archive dans ~/Library/Caches/Homebrew puis essayer brew install nom_de_la_formule (en remplaçant le nom correct par nom_de_la_formule, bien sûr).

0 votes

Oh, j'avais laissé cela implicite. Je corrige cela dans ma réponse.

3 votes

Le dossier Homebrew n'existe pas, mais cela fonctionne après avoir exécuté la commande mkdir pour en créer un.

0 votes

brew install n'a pas fonctionné pour moi, mais brew install l'a fait. Merci!

14voto

rstml Points 191

Il est possible de pré-télécharger un fichier pour une formule mais vous aurez besoin du nom de cache correct qui peut être généré en utilisant brew --cache -s .

Par exemple, pour la formule Erlang, brew --cache -s erlang affichera le nom correct du téléchargement en cache. Cela signifie qu'au lieu de renommer manuellement une formule, vous pouvez exécuter :

wget source-version.tar.gz
mv source-version.tar.gz $(brew --cache -s )

Pour gérer des versions spécifiques autres que la dernière, connectez la version pertinente au nom de formule avec un @.

mv source-version.tar.gz $(brew --cache -s @)

Par exemple:

mv node-v16.20.2.tar.xz $(brew --cache -s node@16)

1 votes

C'est celui qui fonctionne avec la dernière version de brew 2.2.1

0 votes

Cela fonctionne pour la version actuelle d'une formule - mais si je veux réinstaller le nœud 11 plutôt que le nœud 12 actuel, brew --cache -s node me donne toujours le chemin pour le nœud 12. Savez-vous comment je peux forcer Homebrew à installer l'ancienne version ?

0 votes

You can get the sha using shasum shasum -a 256 file.tar.gz but i've found that without the formula it won't install. like this other comment. apple.stackexchange.com/questions/84403/…

11voto

Mario César Points 1206
$ brew installer -f wget-1.14.tar.gz

2 votes

Différent package mais même exigence, -f ne semble pas fonctionner: zaynehalsall@mbp:~$ brew install -f Library/Caches/Homebrew/pwgen-2.07.tar.gz Erreur: Aucune formule disponible avec le nom "Library/Caches/Homebrew/pwgen-2.07.tar.gz" ==> Recherche de formules de nom similaire... Erreur: Aucune formule de nom similaire trouvée. ==> Recherche dans les tarauds... Erreur: Aucune formule trouvée dans les tarauds. zaynehalsall@mbp:~$

2 votes

Même erreur se produit

0 votes

Intéressant, cela fonctionne sur certains packages mais pas tous. Attention, cela supprime votre package après l'installation.

5voto

shuttle87 Points 153

Cinq ans et quelques de retard à la fête, mais :

Le truc consiste à déplacer l'archive dans le cache de brew. Ce cache peut être difficile à trouver à la main; heureusement, vous n'avez pas à le faire. Il suffit de demander à brew lui-même avec brew --cache.

Cela vous permet de faire ce qui suit dans bash :

mv wget-1.14.tar.gz $(brew --cache)

ou, en fish :

mv wget-1.14.tar.gz (brew --cache)

Après quoi, exécuter brew install wget devrait entraîner brew à annoncer qu'il télécharge l'archive, suivi immédiatement par sa réalisation que l'archive est "Déjà téléchargée", et tout se déroule ensuite sans problème.

4voto

Gpx Points 328

According to ce lien:

Pas vraiment sans modifier le fichier de formule.

si votre archive locale est un fichier pré-construit, également appelé 'bottle' dans Brew. Voici ce que j'ai découvert :

La bouteille Brew est liée à la version de MacOS.

Prenons pkg-config par exemple.

ici sur https://bintray.com/homebrew/bottles/pkg-config#files/, il répertorie différents fichiers pour différentes versions de MacOS.

Après avoir téléchargé le fichier correct, vous devez le déplacer vers le chemin correct qui peut être généré par brew --cache --force-bottle pkg-config

pour 10.14 : c'est comme :

/Users/username/Library/Caches/Homebrew/downloads/dd6c78ec64b7c09961ccdb1bf873b5852fd93783cf25ae9b9399c5896a420462--pkg-config-0.29.2.mojave.bottle.tar.gz

pour 10.13 : c'est comme :

/Users/username/Library/Caches/Homebrew/downloads/8b865a8ad8179d4a45289cab9267cc5e3a6153d06432d90cf1745caf5d92a64d--pkg-config-0.29.2.high_sierra.bottle.tar.gz

après cela, Brew peut trouver le fichier local mis en cache lorsque vous exécutez brew install pkg-config. sinon, il continuera à télécharger à partir d'une URL.


simplement déplacer le fichier vers $(brew --cache) ne fonctionnera plus, du moins pour le Brew d'aujourd'hui (version 2.19 dans mon cas).

1 votes

Si le fichier local est du code source, et non une bouteille. Le déplacer vers $(brew --cache -s formula) fonctionnera si vous forcez son installation avec l'option --build-from-source.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X