Стек бамбука и стек кедра весьма различны с точки зрения того, что включено в него.Но лежащее в основе ядро и архитектура linux одинаковы, поэтому копирование файлов должно быть безопасным
(local)$ heroku run bash --app bamboo-app-name
(remote)$ uname -a
Linux 2.6.32-316-ec2 #31-Ubuntu SMP Wed May 18 14:10:36 UTC 2011 x86_64 GNU/Linux
(local)$ heroku run bash --app cedar-app-name
(remote)$ uname -a
Linux 2.6.32-316-ec2 #31-Ubuntu SMP Wed May 18 14:10:36 UTC 2011 x86_64 GNU/Linux
Допустим, ваше приложение использует гем tidy_ffi, для которого требуется общий объектный файл libtidy.soприсутствовать в / usr / lib.
В кедре любой вызов, такой как TidyFFI :: Tidy.new (" Hello "), завершится с ошибкой
LoadError: Could not open library 'lib.so': lib.so: cannot open shared object file: No such file or directory
Чтобы исправить это, вы можете получить копиюlibtidy.so из бамбука (вы можете использовать scp для любого удаленного блока для этого) и зафиксировать его в своем репо (может быть в RAILS_ROOT / lib / native) и добавить следующую строку в environment.rb
ENV['LD_LIBRARY_PATH'] ||="/usr/lib"
ENV['LD_LIBRARY_PATH'] +=":/app/lib/native"
Это сделает гем tidy_ffi заглядывающим в lib / native для разделяемых библиотек.Перенесите эти изменения в приложение Cedar, и все должно работать нормально.