Homebrew Offloading Package compilação -- acos campo com install campo com homebrew campo com binary camp apple Relacionado O problema

HomeBrew offloading package compilation


1
vote

problema

português

Meu pobre antigo MacBook de alumínio de 2008 não é o único kit antigo que eu tenho correndo pacotes de homebrew, eu realmente aprecio a capacidade de ter um gerente de pacote no Mac OS, pelo menos enquanto eu faço meu caminho para o Linux. No entanto, até mesmo o meu iMac de 2014 está sentindo algum peso do gerenciamento de pacotes homebrew. É lento embora muito automatizado, gostaria de acelerar as coisas um pouco nos meus computadores mais antigos.

Existe alguma maneira, que o código-fonte para pacotes como o YouTube-DL, a Aircrack-ng ou a maioria dos pacotes não engarrafados pode ser pré-compilado e instalado como um arquivo binário para Mac OS / OS X? Ou no mínimo, algo semelhante a um arquivo .deb (como uma garrafa), onde o código-fonte foi compilado e é deixado para o sistema para descomprimir adequadamente e copiar arquivos e bibliotecas para seus locais apropriados? Obrigado!

english

My poor old 2008 aluminium MacBook isn't the only old piece of kit I have running homebrew packages, I really appreciate the ability to have a package manager in Mac OS, at least while I make my way to linux. However, even my 2014 iMac is feeling some weight from Homebrew package management. It's slow although very automated, I would like to speed things up a little on my older computers.

Is there any way, that the source code for packages like youtube-dl, aircrack-ng, or most non-bottled packages could be pre-compiled and installed as a binary file for Mac OS / OS X? Or at the very least, something similar to a .deb file (like a bottle), where the source code has been compiled and it's left to the system to appropriately decompress and copy files and libraries to their appropriate locations? Thanks!

           

Lista de respostas

2
 
vote
vote
Melhor resposta
 

Por padrão, os pacotes são instalados da maneira que você descreve ... "garrafas" são binários pré-compilados baixados como arquivos de fita compactados, cujo conteúdo é "derramado" nos caminhos apropriados.

Se você especificar opções ou usar bandeiras de compilação personalizadas, então a Brew naturalmente será construída da fonte. Mas se você, por exemplo, brew install nmap htop bmon , ele vai baixar a garrafa para a versão do sistema e despejá-lo junto com qualquer dependência ausente.

Dito isto, há definitivamente situações em que a Brew compila da fonte, então para tentar responder a sua pergunta, com que frequência é que você acha isso um problema?

Não há como configurá-lo para que a Brew compila em uma máquina diferente "automagicamente" (ou seja, a menos que você implemente isso como um recurso e implemente em sua instalação de Brew). Você pode imaginar como isso pode ser difícil; Diferenças de arquitetura de lado, conflitos / dependências que precisam ser resolvidos, as diferenças no ambiente, etc. tornariam isso um pesadelo.

Se este é mais um aborrecimento ocasional do que um problema regular, o que você pode querer tentar é instalar qualquer fórmula que você quiser na máquina mais rápida com --build-bottle . Então você pode "garrafa" o pacote a si mesmo executando brew bottle para instalar na máquina mais lenta.

Eu não posso recomendar isso com qualquer nível de confiança, já que não sei como funcionaria para todas as fórmulas. Você precisaria estar na mesma arquitetura / arquitetura, e os binários serão compilados para a CPU de denominador comum mais baixo (a menos que você especifique qual) para que a compilação possa ser pior, dependendo de quais recursos foi projetado para usar.

.

Se a diferença no tempo de compilação é tão grande que isso parece ser uma rota viável, as duas máquinas podem nem ser compatíveis (não lembro o que o MacBook 2008 foi, Core 2?) e compilação cruzada dentro Brew seria uma dor de cabeça totalmente separada, você pode ser melhor apenas não usar um gerente de pacote e compilando / configurando o software.

 

By default, packages are installed in the way you describe... "Bottles" are precompiled binaries downloaded as compressed tape archives, the contents of which are then "poured" into the appropriate paths.

If you specify options, or use custom compile flags, then naturally brew will build from source. But if you for example, brew install nmap htop bmon, it will download the bottle for your system version and pour it along with any missing dependencies.

That being said, there are definitely situations where brew compiles from source, so to try to answer your question, how often is it that you find this a problem?

There's no way to set it up so that brew compiles on a different machine "automagically" (that is, unless you implement this as a feature and implement it into your installation of brew). You can imagine how this could be difficult; architecture differences aside, conflicts/dependencies needing to be resolved, the differences in environment, etc. would make this a nightmare.

If this is more of an occasional annoyance than a regular problem, what you might want to try is install whatever formula you want on the faster machine with --build-bottle. Then you can "bottle" the package yourself by running brew bottle to install on the slower machine.

I can't recommend this with any level of confidence though, since I don't know how well it would work for all formulae. You would need to be on the same OS/architecture, and the binaries will be compiled for the lowest common denominator CPU (unless you specify which one) so the build might perform worse, depending on which features it was designed to use.

If the difference in compilation time is so large that this seems like a viable route, the two machines might not even be compatible (I don't remember what the 2008 MacBook was, core 2?), and cross-compiling within brew would be a whole separate headache all on its own, you might be better off just not using a package manager at all and compiling/configuring the software yourself.

 
 
         
         

Perguntas relacionadas

5  Eu baixei uma concha executável e as páginas man a partir de uma fonte que eu confio. Onde devo colocá-los?  ( I downloaded a shell executable and man pages from a source i trust where shoul ) 
Eu baixei um arquivo binário para um executável shell e as páginas do homem correspondente, de uma fonte que eu confio. Desembalar o arquivo retorna um arquiv...

1  Como fazer meu processo de tradutor binário vários números binários  ( How to make my binary translator process multiple binary numbers ) 
Atualmente estou construindo um tradutor binário (binário para texto) no editor AppleScript. O código que eu escrevi só permite inserir um número binário de c...

3  Qual é a marca "@" na descrição do arquivo?  ( Whats the mark at the file description ) 
Eu instalei Princebml para Mac. Com ls -alF , eu tenho -rwxr-xr-x@ 1 prosseek admin 14190120 Jun 8 16:11 prince* . Qual é o significado de @ em -rwx...

1  Homebrew Offloading Package compilação  ( Homebrew offloading package compilation ) 
Meu pobre antigo MacBook de alumínio de 2008 não é o único kit antigo que eu tenho correndo pacotes de homebrew, eu realmente aprecio a capacidade de ter um g...

1  Existe documentação oficial para o formato de arquivo Mach-O / ABI usado pela OSX que ainda existe em dezembro de 2018?  ( Is there official documentation for the mach o file format abi used by osx that ) 
Por que não consigo encontrar qualquer documentação oficial para o formato de arquivo? Eu já vi link Muito, mas parece que eles levaram o que costumava es...

15  Por que um arquivo binário é mostrado como 0s e 1s?  ( Why isnt a binary file shown as 0s and 1s ) 
No My Mac OS, sabemos que os arquivos sob /bin todos são arquivos binários.: crafts-MBP:bin ldl$ pwd /bin crafts-MBP:bin ldl$ ls [ csh ed ...

2  Como faço para adicionar executáveis ​​UNIX aos controles parentais "permitidos os apps" de aplicativos?  ( How do i add unix executables to the parental controls allowed apps whitelist ) 
Um exemplo é alguns de karabiner 's executáveis, recebo popups dizendo "você não" t Ter permissão para usar o aplicativo "karabiner_grabber". Assim como kar...

0  Equivalente de ObjCopy -0 binário para arquivos de objeto mach-o em macos?  ( Equivalent of objcopy 0 binary for mach o object files in macos ) 
Equivalente de objcopy -O binary <FILE> <FILE>.bin para arquivos de objeto mach-o em macos? Eu quero despejar o código executável no segmento abcdefghgjk...

0  Será um trabalho binário do Leão Fortran no leão da montanha?  ( Will a lion fortran binary work on mountain lion ) 
Eu quero instalar um binário Fortran daqui gcc wiki gfortran binários , mas o Binário para leão da montanha ainda não está disponível. Seria o binário para o...

1  Existe uma maneira de atualizar o cliente SFTP do terminal?  ( Is there a way to upgrade terminal sftp client ) 
O binário SFTP pré-instalado em MacOS é uma droga. Quando eu uso minha máquina Ubuntu, o SFTP tem coisas gloriosas como uma conclusão de histórico e tab. Eu o...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.