macOS /etc/paths.d [fechado]

0

Portanto, este thread Use '/ etc / paths' ou '/etc/paths.d' para adicionar itens ao PATH no macOS Sierra? discute / etc / paths e / etc / paths. d brevemente em conexão com o macOS (ne OS X 12, sierra) / usr / libexec / path_helper, que utilmente coloca / usr / bin: / bin: /usr/sbin: / sbin (o conteúdo de / etc / paths, um por line) no início do seu PATH.

Eu entendo a intenção (juntamente com a intenção por trás do SIP), mas o que se realmente faz sabe o que se está fazendo e realmente faz querer ter executáveis em um próprio ~ / bin (por exemplo) que substitui o executável com o mesmo nome que a Apple, em sua ilimitada beneficência, modificou ou limitou em uma de suas muitas formas inúteis. Ou talvez queira que / opt / ... versões sejam encontradas antes dos padrões da Apple. (Se alguém quiser executar uma versão em janela do emacs, por exemplo).

Estou disposto a usar esse mecanismo. O meu entendimento é que eu precisarei desabilitar o SIP antes de poder modificar o /etc/paths.d/, mas alguém sabe se é possível colocar um arquivo (00LookHereFirst, por exemplo) em /etc/paths.d/ que será precedido aqueles em / etc / paths? (OW, é claro, modifique o / etc / paths. Mas estou tentando ser legal. E, claro, ele será destruído se eu permitir que eles façam um downgrade para uma versão mais nova).

As respostas do formulário "Se você quiser ser tratado como um palito adulto com o BSD" não seriam consideradas úteis.

(Desculpem as tags. Elas são o mais próximo que posso de meus poderes limitados.)

    
por TheRealJRogers 07.06.2017 / 05:01

1 resposta

1

Para responder minha própria pergunta: diretórios em / etc / paths são adicionados, em ordem de ocorrência no arquivo antes de qualquer um dos diretórios em arquivos em /etc/paths.d. diretórios em 00Que estão incluídos antes de qualquer um daqueles em arquivos que não iniciam com 00

Não está claro para mim, ainda, como as modificações no PATH nos próprios arquivos de inicialização do usuário são incorporadas ao mecanismo de ajuda do caminho (se for o caso). path-helper é invocado em / etc / profile que tradicionalmente é avaliado antes do $ HOME /. [whatever] (Parece ser apenas .bash_profile no meu caso, mas então estou executando o bash. Houve um tempo em que a distinção pretendida entre .bash_profile e .bashrc eram respeitados. Os tempos eram bons.) No entanto, path-helper é invocado depois que os arquivos de iniciação $ HOME são avaliados.

Peço desculpas por fazer a pergunta, quando foi tão fácil responder. Eu tinha assumido que, porque / etc é restrito a árvore sob ele seria, e, portanto, eu teria que arrancar a partir da partição de recuperação, a fim de verificar. Como eu estou no final da cauda (espero) de um longo processo de migração do 10.aLongTimeAgo para 10.12.5 e eu não queria reiniciar ainda. Mas / etc é um link e, por mais que eu saiba, nenhum dos arquivos na árvore / etc / é restrito.

Comentário: Colocar o / etc / ports antes de tudo é coercitivo e indesejável. Se a Apple leva a sério a estruturação da geração de PATH, e fico feliz em ver isso acontecer, então o que eles colocam em / etc / paths deve ir em /etc/paths.d/00SystemDefault ou algo assim. Nesse caso, pode-se sobrescrevê-lo com /etc/paths.d/000ScrewYourDefaults e continuar jogando bem.

Obrigado pela sua paciência

    
por 07.06.2017 / 18:55