2013-02-08 7 views
2

Я установил Ubuntu 12.04, а мое (производство!) Приложение Rails сильно снизилось.Ubuntu 12.04 сломал Mysql

Я тороплюсь, пытаясь исправить это, пока мой сайт просто полностью опущен.

A source file that the application requires, is missing. 
It is possible that you didn't upload your application files correctly. Please check whether all your application files are uploaded. 
A required library may not installed. Please install all libraries that this application requires. 
Further information about the error may have been written to the application's log file.  Please check it in order to analyse the problem. 
Error message: 
libmysqlclient_r.so.16: cannot open shared object file: No such file or directory - /domains/myapp.com/shared/bundle/ruby/1.9.1/gems/mysql2-0.3.11/lib/mysql2/mysql2.so 

Я попытался sudo gem install mysql2, но это ничего не изменило. Пожалуйста помоги! Я понятия не имею, что не так, и мое приложение показывает трассировку стека для моих пользователей тем временем! Спасибо за любые идеи, которые у вас могут быть!

У меня есть подозрение, что это может быть проблема с пути. Например, я пытался cd -ный мой путь к этому файлу mysql2.so недостающих и нашел странное сообщение:

cd /domains/myapp.com/shared/bundle/ruby/1.9.1/gems/ 
[email protected]:/domains/myapp.com/shared/bundle/ruby/1.9.1/gems$ cd mysql2-0.3.11/ 
mkdir: cannot create directory `/usr/local/rvm/gems/[email protected]': Permission denied 
-bash: /usr/local/rvm/environments/[email protected]: Permission denied 
Using /usr/local/rvm/gems/ruby-1.9.3-p0 with gemset mysql2 
[email protected]:/domains/myapp.com/shared/bundle/ruby/1.9.1/gems/mysql2-0.3.11$ pwd 
/domains/myapp.com/shared/bundle/ruby/1.9.1/gems/mysql2-0.3.11 
[email protected]:/domains/myapp.com/shared/bundle/ruby/1.9.1/gems/mysql2-0.3.11$ ls -l 

Этих сообщения были причудливыми и сами по себе. cd обычно запускает mkdir? Это как-то подсказывает, что файл существует, но мне нужно каким-то образом добавить путь к нему?

+0

Хорошо, во-первых, расслабиться. Вдох. Все будет хорошо. Можно ли временно приостановить приложение, чтобы предотвратить показ трассировки стека? –

+1

Надеюсь, это послужит напоминанием о том, что в надлежащей инфраструктуре развертывания будет установлен промежуточный сервер, который настроен как можно ближе к рабочей среде. Вы бы увидели это, если бы у вас было место, чтобы проверить его. Даже экземпляр [VirtualBox] (https://www.virtualbox.org) - отличное место для начала. – tadman

+0

@ tadman, это отличное предложение. Я просто скромная команда из одного, делающего этот сайт без любви, поэтому вполне законная инфраструктура развертывания может быть вне меня, но VirtualBox - отличный совет, и я обязательно посмотрю на него, спасибо! – isthmuses

ответ

4

Похоже, вам нужно повторно развернуть приложение и восстановить свои драгоценные камни с помощью системных зависимостей. Установка gem-системы не поможет. Это указано, потому что shared/bundle находится на пути.

+0

Я пробовал передислоцировать из Capistrano и получил ту же проблему: 'rake aborted!' 'Libmysqlclient_r.so.16: не удается открыть файл общих объектов: нет такого файла или каталога - /domains/myapp.com/shared/bundle/ruby/1.9.1/gems/mysql2-0.3.11/lib/mysql2/mysql2.so' – isthmuses

+0

Я попытался восстановить драгоценные камни, используя 'gem pristine -all -no-extensions', но не кубик, та же проблема. – isthmuses

+6

Возможно, вам захочется временно переименовать '/ domains/myapp.com/shared/bundle' в другое место и посмотреть, будет ли новое развертывание перестраивать этот каталог с нуля. Ваш существующий gem mysql2 связан с библиотекой, которая больше не существует, но считается «установленной», поэтому ее последующие развертывания не будут затронуты. Если он работает, удалите старый каталог 'bundle'. – tadman