создать запланированное задание из работающего сценария Ruby в Ubuntu в Windows10 - PullRequest
0 голосов
/ 30 ноября 2018

У меня установлена ​​среда bash для Windows 10 Ubuntu.На нем установлено несколько rubygems (без докера, упаковщика, без rvm, а также это не рельсы).Сценарий работает нормально, когда я запускаю его вручную из терминала Ubuntu, в домашней папке пользователя ~ /

Теперь моя цель - создать запланированное задание Windows с помощью приложения Task Scheduler ,запускать скрипт ежедневно, как я бы делал с crontab в Unix.

Действие в этой запланированной задаче является проблемой.При тестировании вручную из командной строки Windows CMD я получил:

C:\>C:\Windows\System32\bash.exe -c "ruby ~/myscript.rb"

Не удалось:

Traceback (most recent call last):
    2: from /home/lam/ruby/remind_prepare_dad_before_iterative_ends.rb:15:in `<main>'
    1: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require': cannot load such file -- tiny_tds (LoadError)

Приведенная выше ошибка говорит мне, что не может найти мой драгоценный камень, TinyTDS.Что мне добавить в командную строку, чтобы она нашла мои драгоценные камни?

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Я нашел грубый обходной путь для своей проблемы: просто установите гем из той же командной строки:

C:\>C:\Windows\System32\bash.exe -c "sudo gem install tiny_tds"

Мне пришлось переустановить еще несколько драгоценных камней, которые я использую таким же образом.

После этого я ввел аргумент -C, чтобы запустить ruby ​​в нужном каталоге, например, так:

C:\>C:\Windows\System32\bash.exe -c "ruby -C ~/ruby myscript.rb"

работает как шарм.Полагаю, теперь у меня есть дубликаты драгоценных камней, плавающих в пробелах на машине, но мы решим эту проблему, если она когда-нибудь станет проблемой.: -)

0 голосов
/ 30 ноября 2018

Попробуйте bundle exec ruby ~/myscript.rb

...