Проблема с Heroku - удалить/переустановить инструментарий heroku Ubuntu

Я запускаю экземпляр Ubuntu в Amazon Web Services для разработки приложения Ruby on Rails (которое используется для тестирования работы локального сервера rails) и отправляю приложение в Heroku для развертывания.

Эта установка работала у меня без проблем до вчерашнего дня, когда я захотел передать содержимое моей базы данных разработки в производство, а не только само приложение. После небольшого поиска в Google это оказалось легко сделать с помощью Taps. Я не был уверен, были ли краны предварительно загружены с помощью Heroku Toolbelt (это то, что я использовал), поэтому, следуя документации по Heroku, я просто выполнил команду rake db:push - это вернуло ошибку:

Taps Load Error: cannot load such file -- taps/operation
You may need to install or update the taps gem to use db commands.
On most systems this will be:

sudo gem install taps

Достаточно легко, верно? Неправильно. После запуска sudo gem install taps (и наблюдения за запуском установки без каких-либо проблем) я повторно запустил команду rake db:push только для того, чтобы столкнуться с тем же самым Taps Load Error. Учитывая, как легко сервисы Heroku работали раньше, было немного неожиданно, что с первого раза все пошло не так, как надо.

Еще немного погуглив, я наткнулся на проблему, которая была открыта более двух лет назад на странице Heroku на github, которая получила сообщения вплоть до 3 месяцев назад с людьми, занимающимися этой проблемой, поэтому, прочитав несколько отзывов, я решил попробуйте прямо установить гем heroku (даже несмотря на то, что он устарел и полностью заменен на Toolbelt), поскольку люди, похоже, получали правильные результаты.

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

rm -rf /usr/local/heroku
rm -rf /usr/bin/heroku

И эти команды не учитывают зависимости и т. д. Я думаю, что это частично (если не полностью) корень моей проблемы. В этот момент я запустил команду sudo gem install heroku, получил предупреждение об устаревании, а затем просто попытался запустить команду heroku login в качестве лакмусовой бумажки, чтобы убедиться, что она была установлена ​​правильно, но я получил ужасное Gem:LoadError, в котором говорилось

Could not find heroku (>= 0) amongst [... a bunch of gems ...]

Итак, я решил просто попытаться вернуться к началу и не беспокоиться о вещах, поэтому я удалил гем heroku, который был простым sudo gem uninstall heroku, удалил связанные исполняемые файлы, а затем попытался переустановить Toolbelt, выполнив указанную команду. на Героку:

wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh

После того, как на экран была напечатана куча позитивного вывода, я решил, что все будет в порядке, но последние сообщения процесса установки были такими:

heroku-toolbelt is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 102 not upgraded.

И вот где я, я удалил очевидно важное содержимое, следуя ссылка (шлепните меня еще раз, пожалуйста), и теперь установка тулбелта не замечает их отсутствия, и я застрял без хероку или тапов! (Кроме того, расстраивает то, что heroku не предоставляет чистого способа удаления пояса инструментов — это сделало бы что-то подобное гораздо менее сложным)

Помощь приветствуется.


person MandM    schedule 04.03.2013    source источник


Ответы (2)


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

sudo apt-get install heroku-toolbelt

Поэтому мне пришлось удалить пакеты heroku и heroku-toolbelt с помощью apt-get, запустив

sudo apt-get --purge remove heroku
sudo apt-get --purge remove heroku-toolbelt

А затем переустановка пояса инструментов с помощью

wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh

И теперь все, кажется, снова играет хорошо.

person MandM    schedule 04.03.2013
comment
Вместо использования apt-get --purge remove heroku heroku-toolbelt вы можете выполнить apt-get autoremove heroku, и он удалит все связанные пакеты. - person Stuart Robertson; 09.10.2014

Я просто хочу добавить, что если у вас был плагин heroku-accounts, вам также необходимо проверить файл ~/.gitconfig на наличие старых записей учетной записи и удалить их. В противном случае свежая установка как тулбелта, так и плагина учетных записей приведет к полностью нерабочей среде.

person Serge Mosin    schedule 15.07.2014