Моя среда
Ванильная Ubuntu 12.10, без rvm или renv.
> gem --version
1.8.23
> ruby --version
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
> bundle --version
Bundler version 1.2.1
Моя проблема
У меня есть задача по грабли, чтобы упаковать мои драгоценные камни и загрузить их на мои серверы разработки и производства. Проблема в том, что задача rake завершается сбоем, когда Gemfile включает git или path gems. Bundler уже поддерживает упаковку драгоценных камней такого типа, и он отлично работает на моем терминале, но не работает с задачей rake, и я не могу понять, почему.
Моя рейк-задача
> cat lib/tasks/upload.rake
namespace :deploy do
desc "Package all gems and upload to remote server"
task :upload => [:environment] do |t, args|
if ! system("bundle package --all")
raise "TOTAL FAIL"
end
# Magic method to upload vendor/cache to remote server
end
end
Мои попытки
Запуск bundle package в терминале работает:
> bundle package --all
....
Using bson (1.7.0)
Using bson_ext (1.7.0)
Using cancan (1.6.8) from git://github.com/ryanb/cancan.git (at /home/ryujin/Projects/rails/Encluster4/vendor/cache/cancan-4dcd54459482)
Using carrierwave (0.7.0)
Using coffee-script-source (1.4.0)
....
Updating files in vendor/cache
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
Updating files in vendor/cache
Запуск bundle package в irb также работает:
> irb
irb> system("bundle package --all")
...
Using ansi (1.4.3)
Using bson (1.7.0)
Using bson_ext (1.7.0)
Using cancan (1.6.8) from git://github.com/ryanb/cancan.git (at /home/ryujin/Projects/rails/Encluster4/vendor/cache/cancan-4dcd54459482)
Using carrierwave (0.7.0)
Using coffee-script-source (1.4.0)
...
Updating files in vendor/cache
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
Updating files in vendor/cache
=> true
Но пакет пакетов не работает при выполнении в моей простой задаче rake:
> bundle exec rake deploy:upload
Updating files in vendor/cache
Could not find cancan-1.6.8.gem for installation
rake aborted!
TOTAL FAIL
Tasks: TOP => deploy:upload
(See full trace by running task with --trace)
Я не нахожу причин, почему это может потерпеть неудачу. Я все время работаю в одной и той же среде. Я уже проверил, что исполняемый файл пакета один и тот же (/usr/local/bin/bundle) во всех трех случаях. У меня нет следов, ни rvm, ни renv, ни чего-то в этом роде. Также попытался запустить задачу без выполнения пакета и с той же проблемой.
Заранее спасибо за любые советы о том, почему это происходит.