LINUX.ORG.RU

Команда vim-addons завершается с ошибкой

 ,


0

2

Здравствуйте!

При выполнении из под puppet, команда фейлится:

[c0der@rock ~/puppet]$ sudo puppet apply --modulepath=$PWD/modules --verbose manifests/site.pp
Warning: Could not retrieve fact fqdn
Warning: Config file /etc/puppet/hiera.yaml not found, using Hiera defaults
Info: Applying configuration version '1377374842'
Notice: /Stage[main]/Packages/Exec[Enable puppet module for vim]/returns: /usr/bin/vim-addon-manager:201:in `join': can't convert nil into String (TypeError)
Notice: /Stage[main]/Packages/Exec[Enable puppet module for vim]/returns: 	from /usr/bin/vim-addon-manager:201:in `parse_cmdline'
Notice: /Stage[main]/Packages/Exec[Enable puppet module for vim]/returns: 	from /usr/bin/vim-addon-manager:251:in `<top (required)>'
Notice: /Stage[main]/Packages/Exec[Enable puppet module for vim]/returns: 	from /usr/bin/vim-addons:2:in `load'
Notice: /Stage[main]/Packages/Exec[Enable puppet module for vim]/returns: 	from /usr/bin/vim-addons:2:in `<main>'
Error: vim-addons --system-wide install puppet returned 1 instead of one of [0]
Error: /Stage[main]/Packages/Exec[Enable puppet module for vim]/returns: change from notrun to 0 failed: vim-addons --system-wide install puppet returned 1 instead of one of [0]
Notice: Finished catalog run in 1.44 seconds

Вот определение:

  # See: http://nosuchhost.blogspot.ru/2011/01/puppet-addon-for-vim.html
  exec { 'Enable puppet module for vim':
    command => 'vim-addons --system-wide install puppet',
    onlyif  => 'test "$(vim-addons status puppet | sed 1d | awk "{print $3}")" != "installed"',
    path    => ['/bin', '/usr/bin', '/sbin', '/usr/sbin'],
    require => Package['vim-puppet']
  }

Но при этом отлично отрабатывает и от рута, и при запуске под sudo. Куда смотреть, чтобы понять каким таким странным образом puppet команды запускает? Что это может быть?

Заранее благодарю вас за помощь!

★★★★★

Ответ на: комментарий от Spirit_of_Stallman

:-)

Случайно Enter нажал, не написав вопрос.

(Кстати, возможно, в этом месте движок ЛОРа можно улучшить..)

php-coder ★★★★★ ()
Ответ на: комментарий от ziemin

Там вот такой код:

    :target_dir   => File.join(ENV['HOME'], '.vim'),

Ага, похоже, что при выполнении puppet-ом, не установлена $HOME. Интересно почему?...

php-coder ★★★★★ ()

зачем такие вещи ставить через системный менеджер пакетов, если есть менеджера пакетов для вима?

установка, обновление, временное отключение, удаление плагина - это дело одной секунды.

Сам плагин для паппета живёт здесь: https://github.com/rodjek/vim-puppet

science ★★☆ ()
Ответ на: комментарий от php-coder

С некоторых пор Puppet сбрасывает переменную $HOME (см. http://projects.puppetlabs.com/issues/5224), так что мне пришлось установить её вручную, с помощью атрибута environment:

 exec { 'Enable puppet module for vim':
    command     => 'vim-addons --system-wide install puppet',
    onlyif      => 'test "$(vim-addons status puppet | sed 1d | awk "{print $3}")" != "installed"',
    path        => ['/bin', '/usr/bin', '/sbin', '/usr/sbin'],
    environment => 'HOME=/',
    require     => Package['vim-puppet']
  }
php-coder ★★★★★ ()
Ответ на: комментарий от science

Спасибо за ваш ответ!

Насколько я понял, vim-addons это то ли в самом виме менеджер плагинов, то ли что-то debian/ubuntu специфичное. И он позволяет включать/выключать плагины для конкретного пользователя (по умолчаниию), либо для всей системы (если указать ключик, как я сделал)

Я мог бы использовать эти менеджеры, но стараюсь использовать что-то более системное, по возможности. Согласен, что это дело пары секунд, но я-то хочу, чтобы всё делалось само, поэтому сейчас на это нужно потратить десяток минут.

php-coder ★★★★★ ()
Ответ на: комментарий от php-coder
    onlyif      => 'test "$(vim-addons status puppet | sed 1d | awk "{print $3}")" != "installed"',

Кстати, здесь есть баг с кавычками из-за которого команда выполняется каждый раз.

php-coder ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.