Jak korzystać z Homebrew, aby zainstalować lokalne archiwum

16

Próbuję użyć Homebrew do zainstalowania wget, ale coś się dzieje, gdy pobieranie jest zawsze uszkodzone. Dzieje się tak dla wszystkich pakietów, nie tylko wget. Mogę pobrać plik tar.gz w porządku za pośrednictwem przeglądarki. Czy mogę użyć Homebrew, aby zainstalować lokalnie pobrane archiwum? Coś takiego jak:

brew install wget-1.14.tar.gz 
MD6380
źródło
2
Wydaje się bardzo dziwne. Nie wiem, czy potrafisz to zrobić, ale wygląda na to, że dzieje się coś poważniejszego. Próbowałeś biegać brew doctor?
boyfarrell
Jeśli masz dokładne archiwum, którego oczekuje Homebrew, możesz umieścić je w ~ / Library / Caches / Homebrew, a następnie spróbować brew install. Ale to jest tajemnicze. Co powiesz na opublikowanie wyniku, brew installgdy wypróbujesz go w normalny sposób?
echristopherson
@echristopherson Twoja metoda zadziałała. Jeśli opublikujesz to jako odpowiedź, zaakceptuję.
MD6380,
Wiem dlaczego to nie działa. Doktor Brew nie wykazuje żadnych problemów. Wygląda na to, że używany serwer proxy HTTP nie zezwala na pobieranie.
MD6380,
Uwaga: jest to przydatne, gdy istnieje wiele kopii lustrzanych, a ta w przepisie nie działa. Możesz ustawić inne lustro SourceForge za pomocą zmiennej środowiskowej, ale dla innych zaakceptowane rozwiązanie jest bardzo przydatne.
Dan

Odpowiedzi:

21

Jeśli Homebrew ma już dla niego formułę (w / usr / local / Library / Formula), a Ty masz dokładne archiwum, którego oczekuje formuła (tj. Ta sama nazwa pliku i ta sama zawartość, określona przez SHA1 lub inny typ skrótu używany przez formułę ), możesz umieścić archiwum w ~ / Library / Caches / Homebrew, a następnie spróbować brew install formula_name(zastępując poprawną nazwę formułą nazwa , oczywiście).

echristopherson
źródło
2
Homebrewfolder nie istnieje, ale działa po nim mkdir.
eccstartup
brew installnie działało dla mnie, ale działało brew install <package>. Dzięki!
Zayne S Halsall
Och, zostawiłem to ukryte. Naprawiam to w mojej odpowiedzi.
echristopherson
7
$ brew install -f wget-1.14.tar.gz
Xuri
źródło
1
Inny pakiet, ale ten sam wymóg, -f nie wydaje się działać: zaynehalsall@mbp:~$ brew install -f Library/Caches/Homebrew/pwgen-2.07.tar.gz Error: No available formula with the name "Library/Caches/Homebrew/pwgen-2.07.tar.gz" ==> Searching for similarly named formulae... Error: No similarly named formulae found. ==> Searching taps... Error: No formulae found in taps. zaynehalsall@mbp:~$
Zayne S Halsall
1
zdarza się ten sam błąd
Ben
4

Pięć lat i późno przechodzę na imprezę, ale:

Sztuką jest przeniesienie archiwum do pamięci podręcznej naparu. Wspomniany bufor może być trudny do znalezienia ręcznie; na szczęście nie musisz. Po prostu zapytaj się napar brew --cache.

Dzięki temu możesz wykonać następujące czynności w bash:

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

na przemian u ryb:

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

Po tym, jak uruchomi się, brew install wgetBrew powinien ogłosić, że pobiera archiwum, a następnie natychmiast uświadomić sobie, że archiwum jest już „pobrane”, a wszystko przebiega bezproblemowo.

Dan Martinez
źródło
2

Możliwe jest wstępne pobranie pliku dla formuły, ale będziesz potrzebować poprawnej nazwy pliku pamięci podręcznej, którą można wygenerować za pomocą brew --cache -s <formula>.

Na przykład dla formuły Erlang brew --cache -s erlangwydrukuje poprawną nazwę pobranego pliku z pamięci podręcznej. Oznacza to, że zamiast ręcznie zmieniać nazwę formuły, możesz uruchomić:

wget source-version.tar.gz
mv source-version.tar.gz $(brew --cache -s <formula>)
rstml
źródło
Działa to dla bieżącej wersji formalnej - ale jeśli chcę ponownie zainstalować węzeł 11 zamiast obecnego węzła 12, brew --cache -s węzeł nadal daje mi ścieżkę do węzła 12. Czy wiesz, jak mogę zmusić Homebrew do zainstalować starszą wersję?
John Y,
Jest to ten, który działa z najnowszą wersją naparu 2.2.1
LnxSlck
2

Zgodnie z tym :

Niezupełnie bez modyfikacji pliku formuły.

jeśli twoje lokalne archiwum jest plikiem gotowym do kompilacji, w Brew również jest to „butelka”. Oto, co wykopałem:

Butelka parzenia jest związana z wersją MacOS.

Weźmy na przykład pkg-config.

tutaj na  https://bintray.com/homebrew/bottles/pkg-config#files/ , zawiera listę różnych plików dla różnych wersji MacOS.

Po pobraniu poprawnego pliku należy go przenieść do właściwej ścieżki, którą może wygenerować brew --cache --force-bottle pkg-config

dla 10.14: to jest jak:

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

dla 10.13: to jest jak:

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

po tym, brew może znaleźć buforowany plik lokalny po uruchomieniu  brew install pkg-config. w przeciwnym razie nadal będzie pobierany z adresu URL.


po prostu przenieś plik do $ (brew - cache) już nie będzie działać, przynajmniej dla dzisiejszego naparu (w moim przypadku wersja 2.19).

gebitang
źródło
jeśli plik lokalny to kod źródłowy, a nie butelka. Przeniesienie go do $ (formuła brew - cache -s) będzie działać, jeśli wymusisz instalację z opcją --build-from-source.
gebitang
1

Według https://github.com/Homebrew/homebrew-cask/issues/21346

ale teraz zmieniono lokalizację źródła, możesz wyszukać plik download_strategy.rb na swoim komputerze

moja lokalizacja to „/ usr / local / Homebrew / Library / Homebrew” wprowadź opis zdjęcia tutaj

a następnie zablokuj plik źródłowy rb (lub użyje narzędzia git, aby się przywrócić)

kiedy spróbujesz użyć „brew install xxx” w terminalu, otrzymasz lokalizację ścieżki do pamięci podręcznej plików: wprowadź opis zdjęcia tutaj

DaSqy Stc
źródło
0

Brew zaktualizował swoją strategię buforowania, musisz umieścić pobrany plik ~/Library/Caches/Homebrew/downloadsi postępować zgodnie z jego konwencją nazewnictwa.

Możesz pozwolić brew rozpocząć pobieranie, wtedy zobaczysz .incompleteplik, np. 544b4d734091aeb6482dbe2496a8ff223d15bc970fa330d3dccbb0bb6fb0e13e--qemu-4.2.0.catalina.bottle.tar.gz.incompleteWtedy możesz zmienić nazwę pliku na 544b4d734091aeb6482dbe2496a8ff223d15bc970fa330d3dccbb0bb6fb0e13e--qemu-4.2.0.catalina.bottle.tar.gz.

Piasy
źródło