vim não está iniciando no shell bash

1

Meu terminal (FREE BSD) usa o CShell por defualt, sob o qual o vim está funcionando bem. Mas para executar alguns scripts de teste, eu tenho que usar o bash shell, onde algumas das minhas variáveis env são definidas. Uma vez que eu estou no bash shell, se eu iniciar o vim, ele mede este erro

/libexec/ld-elf.so.1: Shared object "libgtk-12.so.2" not found, required by "vim"

vi está funcionando bem.Podem me ajudar a resolver isso?

    
por woodstok 06.09.2010 / 12:01

2 respostas

2

Uma explicação plausível é que, dependendo de qual shell você está executando, você tem diferentes configurações de variáveis de ambiente. Compare a saída de

echo $PATH
echo $LD_LIBRARY_PATH

sob o bash e sob csh. Talvez $LD_LIBRARY_PATH inclua a localização de libgtk-12.so.2 quando você está no csh, mas não quando está no bash. Ou talvez $PATH leve a um executável vim diferente no csh e no bash (um que requer o gtk no bash e um que não requer gtk no csh). Para verificar isso, execute type vim sob bash e which vim em csh.

EDITAR : com base nos seus comentários, há um vim em /volume/perl/bin/vim que não funciona para você, mas você também precisa de algo em /volume/perl/bin para vir em primeiro lugar no PATH , provavelmente perl . Você tem várias soluções:

  • Coloque /volume/perl/bin/vim primeiro em $PATH e coloque alias vim=/usr/local/bin/vim em .bashrc e .cshrc .

  • Não coloque /volume/perl/bin/vim em $PATH , mas organize os scripts perl com /volume/perl/bin/vim em vez de seu perl local.

  • Não coloque /volume/perl/bin/vim em $PATH . Em vez disso, coloque ~/bin primeiro em $PATH e crie links simbólicos para o que você precisa de /volume/perl/bin em ~/bin , por exemplo, ln -s /volume/perl/bin/perl ~/bin .

  • Tente definir PERL5LIB e não PATH , caso você não precise de uma versão mais recente do perl, mas de algumas bibliotecas extras. Por exemplo. setenv PERL5LIB /volume/perl/lib/perl/5.10 (ajuste para os diretórios que forem necessários; você pode ver os diretórios padrão para /volume/perl/bin/perl executando /volume/perl/bin/perl -le 'map print, @INC' ).

  • Atualize seu perl para que seus scripts funcionem com eles (talvez além da sugestão anterior).

  • Instale as bibliotecas que o /volume/perl/bin/vim precisa.

  • Remova vim de /volume/perl/bin .

O que quer que você faça, eu não recomendo ter diferentes configurações de PATH em diferentes shells, isso torna-se confuso muito rapidamente (como você já notou). Defina PATH em .login (assumindo que csh é seu shell de login, caso contrário, em .profile ).

    
por 06.09.2010 / 20:55
0

Você menciona terminal, mas a biblioteca que está reclamando é uma biblioteca GUI. Você se importa com GUI? se não, você pode forçar nenhum gui e não tentar carregar este lib, mas eu estou longe de ser um guru vim. Você pode até mesmo cancelar o seu DISPLAY, e o vim terá que rodar no modo terminal.

Como os outros já responderam, provavelmente é o seu LD_LIBRARY_PATH, ou você está usando um vim diferente do que está pensando. Veja o que está definido no bash e no csh. E as diferenças

Experimente também o comando ldd , que mostrará quais bibliotecas seu aplicativo pode carregar. ele deve falhar no bash para resolver

Em muitos sistemas, o vi e o vim são duas instalações separadas, com mais recursos para edição geral, e uma versão de dependência muito reduzida chamada vi para o modo de emergência. Tenho certeza que o vi funcionará em ambos.

    
por 07.09.2010 / 00:18