Як використовувати Homebrew для встановлення локального архіву


16

Я намагаюся використовувати Homebrew для встановлення wget, але щось відбувається там, де завантаження завжди пошкоджене. Це відбувається для всіх пакетів, а не лише для wget. Я можу завантажити tar.gz штраф через браузер. Чи можу я використовувати Homebrew для встановлення локально завантаженого архіву? Щось таке, як:

brew install wget-1.14.tar.gz 

2
Здається, дуже дивно. Я не знаю, що ви можете це зробити, але це здається, що відбувається щось більш серйозне. Ви пробували бігати brew doctor?
boyfarrell

Якщо у вас є точний архів, який очікує Homebrew, ви можете помістити його в ~ / Library / Caches / Homebrew і потім спробувати brew install. Але це загадково. Як щодо публікації результатів, brew installколи ви намагаєтесь це нормальним способом?
echristopherson

@echristopherson Ваш метод спрацював. Якщо ви опублікуєте це як відповідь, я прийму його.
MD6380

Я знаю, чому це не працює. Лікар-пивовар не має жодних проблем. Схоже, проксі-сервер HTTP не дозволяє завантажувати.
MD6380

Зауважимо лише, що це корисно, коли є кілька дзеркал, і те, що в рецепті, не працює. Ви можете встановити інше дзеркало SourceForge за допомогою змінної середовища, але для інших прийняте рішення є дуже корисним.
День

Відповіді:


21

Якщо Homebrew вже має формулу для нього (in / usr / local / Library / Formula), і у вас є точний архів, який формула очікує (тобто те саме ім'я файлу та той самий вміст, як визначено SHA1 або будь-який тип хеша, який використовує формула ), ви можете помістити архів у ~ / Library / Caches / Homebrew, а потім спробувати brew install formula_name( замінюючи , звичайно, правильне ім'я для form_name , звичайно).


2
Homebrewпапка не існує, але вона працює після mkdirпершого.
eccstartup

brew installне працював для мене, але brew install <package>робив. Спасибі!
Zayne S Halsall

О, я залишив це неявно. Я це фіксую у своїй відповіді.
ехрістоферсон

7
$ brew install -f wget-1.14.tar.gz

1
Різний пакет, але однакова вимога, -я, здається, не працює: 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
трапляється
Бен

4

П’ять років і пізно змінити партію, але:

Трюк полягає в переміщенні архіву в кеш-пам'ять пива. Згаданий кеш може бути болем знайти рукою; на щастя, не потрібно. Просто попросіть заварити себе brew --cache.

Це дозволяє робити наступне в bash:

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

по черзі, в рибі:

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

Після цього запуск brew install wgetповинен призвести до того, що пивоварення оголошує, що він завантажує архів, з подальшим його усвідомленням, що архів "вже завантажений", і все протікає звідти плавно.


2

Можна заздалегідь завантажити файл для формули, але вам знадобиться правильне ім’я файлу кешу, яке можна створити за допомогою brew --cache -s <formula>.

Наприклад, для формули Erlang brew --cache -s erlangбуде надруковано правильну назву кешованого завантаження. Це означає, що замість перейменування формули вручну ви можете запускати:

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

Це працює для поточної версії формальної - але якщо я хочу перевстановити вузол 11, а не поточний вузол 12, заварювати - cache -s вузол все одно дає мені шлях до вузла 12. Чи знаєте ви, як я можу змусити Homebrew до встановити старішу версію?
Джон Y

Це той, який працює з останньою версією версії 2.2.1
LnxSlck

2

Відповідно до цього :

Не дуже, не змінюючи файл формули.

якщо ваш локальний архів - це файл попереднього збирання, він називається "пляшка" в Brew. Ось що я викопав:

Пляшка заварювання стосується версії MacOS.

Візьмемо, наприклад, pkg-config.

тут, на  https://bintray.com/homebrew/bottles/pkg-config#files/ , перераховані різні файли для різних версій MacOS.

Завантаживши правильний файл, вам потрібно перенести його на правильний шлях, який може генерувати brew --cache --force-bottle pkg-config

для 10.14: це як:

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

за 10.13: це як:

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

після цього Brew може знайти кешований локальний файл під час запуску  brew install pkg-config. в іншому випадку він все одно завантажиться з URL-адреси.


просто перемістити файл до $ (варити - кеш) більше не працюватиме, принаймні для сьогоднішньої заварки (у моєму випадку версія 2.19).


якщо локальний файл є вихідним кодом, а не пляшкою. Переміщення його до $ (варити формула - кеш -s) спрацює, якщо ви змусите його встановити з опцією --build-from-source.
gebitang

1

Відповідно до https://github.com/Homebrew/homebrew-cask/isissue/21346

але тепер розташування джерела змінено, ви можете шукати download_strategy.rb на своєму комп’ютері

моє місцезнаходження "/ usr / local / Homebrew / Library / Homebrew" введіть тут опис зображення

а потім заблокуйте вихідний файл rb (або він використовуватиме інструмент git, щоб відновити себе)

при спробі використовувати "варити встановити xxx" в терміналі, ви отримаєте весь шлях до кеш-файлу файлу: введіть тут опис зображення


0

Brew оновив стратегію кешування, потрібно помістити завантажений файл ~/Library/Caches/Homebrew/downloadsі дотримуватися його правила іменування.

Ви можете дозволити Brew розпочати завантаження, тоді ви побачите .incompleteфайл, наприклад 544b4d734091aeb6482dbe2496a8ff223d15bc970fa330d3dccbb0bb6fb0e13e--qemu-4.2.0.catalina.bottle.tar.gz.incomplete, потім можете перейменувати свій файл у 544b4d734091aeb6482dbe2496a8ff223d15bc970fa330d3dccbb0bb6fb0e13e--qemu-4.2.0.catalina.bottle.tar.gz.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.