Эта проблема вызвана отсутствующей зависимостью или, что еще хуже, зависимостью от зависимости. Распространено, когда вы не используете rubygems.org в качестве своего gemserver (корпоративная среда).
Общие шаблоны:
- У вас не установлен этот драгоценный камень
- У вас не установлены зависимости этого драгоценного камня
- Этот драгоценный камень не установлен без его зависимостей
Самая простая техника
создайте новый набор гемов и повторно объедините. Это решает проблему много раз.
Если вы не можете сделать это по производственным причинам, и , у вас нет истории приложений, из которой можно было бы подумать, когда был добавлен гем проблемы, тогда:
Более простая техника
Изучив немного с момента написания этого ответа, я подумал, что передам эту замечательную статью о том, как запустить упаковщик с подробным отладочным выводом
export DEBUG_RESOLVER=1
bundle 2> debug_output.txt 1> stdio.txt &
Это выведет все выходные данные отладки (err) в debug_output.txt
и обычные экранные данные в stdio.txt
.
Вы также захотите сбросить 1>
, потому что каждый раз, когда упаковщик сбрасывает строку в 2
(stderr), он помещает crlf в 1
. Так что либо сбросьте 1
, либо справьтесь с заданием. Я делаю оба, чтобы я мог работать в одном терминале.
Обычно я слежу за этим:
tail stdio.txt
, чтобы убедиться, что все началось, тогда:
tail -n 10000 -f debug_output.txt
Для поиска с помощью /FAIL]
в файле неудачных попыток установить зависимость. Найдите пару одинаковых, и вы, как правило, нашли своего преступника. stderr
работает для bundle install
или bundle update
.
Отладка вашей личной техники Gemserver
Мне нужно было использовать этот метод исключения, чтобы определить, поврежден ли мой (корпоративный) индекс gemserver
- закомментируйте все драгоценные камни
- запустить
bundle update
для подтверждения пустого набора работ
- откомментируйте один камень и
bundle update
- GOTO 3, пока вы не столкнетесь с проблемой
- исследуйте его зависимости
Когда вы закончите
Сброс ENV
var с
unset DEBUG_RESOLVER