O Applescript não consegue encontrar sed durante a instalação da aplicação

0

Estou tentando instalar um aplicativo, mas o instalador falha com a seguinte mensagem de erro:

sh: sed: comando não encontrado

e há um botão Editar e OK na caixa de diálogo, então eu clico no botão Editar que inicia o Editor AppleScript para mostrar o script que está sendo executado. Executá-lo de dentro do Editor também não funciona.

A primeira linha do script com sed é

defina currdir_modified como shell script ("echo" & currdir & "| sed 's / / \\ / g'")

Eu fui ao terminal para ter certeza de que o sed estava disponível e está em / usr / bin.

Isso soa como um problema de caminho, mas não tenho certeza para onde ir a partir daqui. O que posso fazer para solucionar ou solucionar esse problema?

Eu instalei este aplicativo com sucesso em outro mac executando a mesma versão do OS X, por isso é específico para o meu mac e o suporte do aplicativo não está fornecendo mais ajuda porque é problema do meu mac, não deles.

    
por jsmorris 28.04.2010 / 03:23

2 respostas

1

Parece que você modificou o PATH padrão que é herdado pelos aplicativos GUI (incluindo a maioria dos corredores AppleScript). Se você quer apenas uma solução rápida, você deve ser capaz de fazer o que o Hasaan Chop indicar: basta alterar sed para /usr/bin/sed no código AppleScript, salvá-lo e executar novamente o instalador (embora você possa ter problemas semelhantes com outros comandos).

Se você quiser corrigir o problema que causou a falta de /usr/bin do PATH padrão, será necessário pesquisar um pouco para descobrir onde o problema começou.

Note que (como você descobriu indiretamente) o “PATH padrão” que um aplicativo vê é diferente do PATH que um shell de “login” iniciado pelo Terminal irá configurar para si mesmo. Shells na família Bourne ( bash , zsh , ksh , etc.) no modo “login” executará /etc/profile , que (normalmente) redefine completamente o PATH para um novo valor (também os arquivos de inicialização do shell por usuário geralmente adicionam vários outros diretórios ao PATH). O ponto principal aqui é que arquivos de inicialização de shell não têm nada a ver com o PATH que os aplicativos veem (há exceções (por exemplo Aquamacs ), mas eles são raros).

  • Um local comum para variáveis de ambiente padrão personalizadas é ~/.MacOSX/environment.plist .

    Este arquivo é lido no momento do login e é usado para adicionar novas variáveis de ambiente (ou substituir existentes) para aplicativos iniciados na sessão de login atual.

    Para visualizar e / ou editar este arquivo, você pode usar uma ferramenta especializada como o RCEnvironment (recomendado). < br> Ou, como esse arquivo é um arquivo plist , você pode usar Editor de lista de propriedades (das ferramentas de desenvolvimento), ou ferramentas de linha de comando como padrões ou PlistBuddy . Se o arquivo estiver no formato XML (provavelmente), você poderá usar um editor de texto simples.

  • Outro local possível para variáveis de ambiente padrão personalizadas é o conjunto de arquivos de configuração launchd .

    Esses arquivos podem conter qualquer launchctl subcomandos, incluindo os subcomandos setenv e unsetenv que podem alterar o ambiente herdado pelos processos filhos.

    A personalização por usuário pode ser feita em ~/.launchd.conf . A personalização em todo o sistema é feita em /etc/launchd.conf .

Se você achar que um desses arquivos está manipulando a variável de ambiente PATH, você deve se livrar da manipulação PATH (para permitir que o valor padrão passe para os aplicativos) ou adicionar os diretórios padrão de baixo nível (por exemplo, /usr/bin:/bin:/usr/sbin:/sbin ) para quaisquer diretórios personalizados que você precise ter no PATH.

Se você fizer alterações em um arquivo por usuário ( ~/.MacOSX/environment.plist ou ~/.launchd.conf ), a maneira mais fácil de efetivar as alterações é efetuar logout (logout completo, não apenas uma troca rápida de usuário) e login . Se você tivesse que modificar um arquivo de todo o sistema, a melhor coisa a fazer seria reinicializar. Tecnicamente, é possível começar a usar os novos valores sem reinicializar ou fazer logout, isso é deixado como um "exercício para o leitor".

O seguinte é um aparte sobre as implicações dessa única linha de código AppleScript, não é relevante para o problema PATH.

Essa linha de código tem outro erro potencial também (falha em citar corretamente o valor da string currdir no código shell). A própria linha é suposto para adicionar barras invertidas antes de cada caractere de espaço em uma seqüência de caracteres. A razão mais provável para fazer isso é para que a string resultante possa ser inserida diretamente em outro código de shell de bits. O problema é que existem muitos outros caracteres que precisam ser escapados da mesma maneira, se o código shell funcionar corretamente com qualquer string. Ambos os problemas (na verdade, são o mesmo problema) podem ser facilmente resolvidos usando o comando quoted form of do AppleScript. O fato de o script não estar usando quoted form of é um sinal de inexperiência que me deixa nervoso com o que mais o script pode estar fazendo incorretamente.

    
por 28.04.2010 / 09:31
2

Use um caminho absoluto para o binário sed em vez de apenas o nome do comando.

    
por 28.04.2010 / 03:53