Mac OS X: locais convencionais onde os arquivos binários devem viver

45

Eu baixei um aplicativo que é um aplicativo de linha de comando, e quero colocá-lo em algum lugar onde eu possa executá-lo a partir da linha de comando sem ter que digitar o caminho explicitamente.

  1. Quais são os caminhos convencionais usados para algo assim? %código%? Existem opções diferentes, uma se eu quiser para todos os usuários e uma se eu quiser para apenas um usuário em particular, como minha conta de administrador?

  2. Ou devo colocá-lo em seu próprio diretório no diretório Aplicativos e adicioná-lo ao caminho? Em caso afirmativo, qual arquivo controla onde o caminho está definido?

por Jason S 17.07.2009 / 16:44

3 respostas

37

Macs são incomuns a esse respeito. A variável $PATH padrão para um usuário normal se parece com isso:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Ao colocar /usr/local/bin após /usr/bin e /bin , o Mac atualiza o sistema normal. Normalmente, você pode colocar algo em /usr/local/bin (digamos, um segundo interpretador Perl, compilado de alguma maneira não padrão), e então um usuário comum acessará o personalizado em vez do primeiro em todo o sistema. Isso é bom. Os usuários podem obter variantes, mas o sistema permanece puro. Porém, considerando o padrão $PATH da Apple, os itens em /usr/bin ou /bin serão encontrados antes de qualquer coisa em /usr/local/bin . (Isso basicamente anula o propósito de instalar, por exemplo, o Perl personalizado em /usr/local/bin .)

Para corrigir isso, você pode alterar o $PATH do usuário comum editando o arquivo .profile no diretório pessoal do usuário. (Esse arquivo não existe inicialmente, mas você pode criá-lo facilmente.) Eu faço isso logo depois de começar a usar um novo Mac.

Semi-relacionado: Homebrew oferece excelente gerenciamento de pacotes para Macs. Por padrão, o Homebrew instala o software em /usr/local , mas o faz de uma maneira que torna muito fácil remover as coisas e retornar a um estado de baunilha depois.

    
por 17.07.2009 / 16:55
9

/usr/local/bin e /usr/local/sbin vale a pena adicionar ao seu caminho, já que muitos makefiles para compilações de origem são instalados por padrão.

Se você usar MacPorts , vale a pena adicionar também /opt/local/bin e /opt/local/sbin .

A melhor maneira de fazer isso é adicionar

export PATH=/usr/local/bin:/usr/local/sbin:/opt/local/bin:/opt/local/sbin:$PATH

para o arquivo .bashrc em seu diretório inicial (que está oculto, portanto, a CLI é a melhor maneira de fazer isso) ou, se você quiser alterar o caminho do sistema, adicione a mesma linha a /etc/bashrc (não oculto), mas você precisará sudo para fazer isso.

Se você não tiver um .bashrc na casa de qualquer usuário, poderá criar um e adicionar essa linha a ele, mas lembre-se de alterar as permissões no arquivo criado para torná-lo legível pelo usuário em questão ( obviamente não é relevante se você estiver fazendo isso para o seu próprio perfil).

O $PATH no final acrescenta o caminho padrão do sistema ao que você colocou antes. Observe que o sistema procura binários na ordem de caminhos indicados, portanto, se você instalar um binário em /usr/local ou /opt/local que também é instalado por padrão no sistema, as versões instaladas serão encontradas primeiro, o que pode ( embora raramente) perturbar as coisas. Vale a pena ficar atento.

Boas informações são aqui .

Devo observar que o acima pressupõe que você está usando o Bash para o shell, que é o padrão em Mac OS X v10.4 (Tiger) e Mac OS X v10.5 (Leopard), mas não em sistemas anteriores, que usaram tcsh , que tem uma sintaxe diferente.

Espero que ajude ...

    
por 17.07.2009 / 17:10
6

Eu costumo ir com /usr/local . Aqui está uma boa explicação do porquê .⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢ ⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢

    
por 17.07.2009 / 16:47