установка драгоценного камня не восстанавливает все экземпляры драгоценного камня

user@sv1 [/home/user/]# env|grep GEM
GEM_HOME=/home/user/.gems/2.1
GEM_PATH=/home/user/.gems/2.1

user@sv1 [/home/user/]# gem install mysql2
Building native extensions.  This could take a while...
Successfully installed mysql2-0.3.18
1 gem installed

that installs mysql2.so in multiple locations:
user@sv1 [/home/user/]# find /home/user/.gems -name mysql2.so
/home/user/.gems/2.1/extensions/x86_64-linux/2.1.0-static/mysql2-0.3.18/mysql2/mysql2.so
/home/user/.gems/2.1/gems/mysql2-0.3.18/ext/mysql2/mysql2.so
/home/user/.gems/2.1/gems/mysql2-0.3.18/lib/mysql2/mysql2.so

user@sv1 [/home/user/]# ls -l /home/user/.gems/2.1/extensions/x86_64-linux/2.1.0-static/mysql2-0.3.18/mysql2/mysql2.so
-rwxr-xr-x 1 user user 64842 mar 18 16:13 /home/user/.gems/2.1/extensions/x86_64-linux/2.1.0-static/mysql2-0.3.18/mysql2/mysql2.so
user@sv1 [/home/user/]# ls -l /home/user/.gems/2.1/gems/mysql2-0.3.18/ext/mysql2/mysql2.so
-rwxr-xr-x 1 user user 64842 mar 18 16:13 /home/user/.gems/2.1/gems/mysql2-0.3.18/ext/mysql2/mysql2.so

now I want to rebuild this extension so I do:
user@sv1 [/home/user/]# gem install mysql2
Building native extensions.  This could take a while...
Successfully installed mysql2-0.3.18
1 gem installed

user@sv1 [/home/user/]# ls -l /home/user/.gems/2.1/extensions/x86_64-linux/2.1.0-static/mysql2-0.3.18/mysql2/mysql2.so
-rwxr-xr-x 1 user user 64842 mar 18 16:13 /home/user/.gems/2.1/extensions/x86_64-linux/2.1.0-static/mysql2-0.3.18/mysql2/mysql2.so
user@sv1 [/home/user/]# ls -l /home/user/.gems/2.1/gems/mysql2-0.3.18/ext/mysql2/mysql2.so
-rwxr-xr-x 1 user user 87485 mar 18 16:16 /home/user/.gems/2.1/gems/mysql2-0.3.18/ext/mysql2/mysql2.so

как Вы видите,/home/user/.gems/2.1/extensions/x86_64-linux/2.1.0-static/mysql2-0.3.18/mysql2/mysql2.so не был, восстанавливают. что хуже, этот файл на самом деле используется, когда "требуют 'mysql2'" в коде Ruby. Это блокирует rebuilding/updateing драгоценный камень. Конечно, я могу решить его путем удаления этого старого файла и "установки драгоценного камня" затем, но это заставляет много новых переменных помнить и много из трудно для диагностирования проблем. Как я восстанавливаю все файлы драгоценного камня (mysql2.so здесь) с командой драгоценного камня? Или возможно это - ошибка в программе "драгоценного камня"?

Эта проблема не характерна для mysql2 драгоценного камня, поскольку другие драгоценные камни ведут себя тот же путь.

Можно было бы сказать, что не необходимый для восстановления драгоценного камня, когда его версия не изменилась - но это - когда освобождает это, его связанный с был обновлен/изменен (например, libmysqlclient для mysql2 драгоценного камня)

0
задан 18 March 2015 в 17:29
1 ответ

Возможно, вы ищете вариант безупречный :

gem pristine mysql -v 0.3.18

или без -v I полагаю, что он будет работать только с самой последней версией, но есть также опция - все .

См. gem help pristine для документации:

Restores installed gems to pristine condition from files located in the gem
cache

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

0
ответ дан 5 December 2019 в 12:53

Теги

Похожие вопросы