Bundle не может видеть nokogiri, даже если установлен нетронутый - PullRequest
0 голосов
/ 03 апреля 2020

Экземпляр Amazon EC2 под управлением Amazon Linux 2 имеет установленный Jekyll и пытается обслуживать приложение, код которого соответствует структуре этого примера github , который, как вы можете видеть, управляет зависимостями с помощью gemspe c file .

Проблема в том, что при запуске bundle exec jekyll serve для запуска приложения выдается ошибка, указывающая на то, что nokogiri не может быть найден.

Я много раз выполнял следующие две команды во многих коллекциях диагностических последовательностей c, но связка все еще не может найти nokogiri:

gem install nokogiri -v '1.10.9' --source 'https://rubygems.org/'  
gem pristine nokogiri --version 1.10.9  

Я также повторно -установил экземпляр EC2 с нуля много раз, используя terraform.

Какие конкретные команды c необходимо выполнить, чтобы bundle правильно использовал nokogiri без ошибок?

Вот последовательность команд и выходных данных, указывающих на проблему:

[admin@server.ip jekyll-files]$ bundle info nokogiri  
Could not find nokogiri-1.10.9 in any of the sources  

[admin@server.ip jekyll-files]$ bundle exec jekyll serve  
Could not find nokogiri-1.10.9 in any of the sources  
Run `bundle install` to install missing gems.  

[admin@server.ip jekyll-files]$ gem pristine nokogiri --version 1.10.9  
Restoring gems to pristine condition...  
Building native extensions. This could take a while...  
Restored nokogiri-1.10.9  

[admin@server.ip jekyll-files]$ bundle install  
Ignoring nokogiri-1.10.9 because its extensions are not built. Try: gem pristine nokogiri --version 1.10.9  
Fetching gem metadata from https://rubygems.org/.........  
Using public_suffix 4.0.3  
Following files may not be writable, so sudo is needed:  
  /usr/bin  
Using addressable 2.7.0  
Using ast 2.4.0  
...(redacting unrelated excess output for stack overflow)  
Fetching nokogiri 1.10.9  
Installing nokogiri 1.10.9 with native extensions  
...(redacting unrelated excess output for stack overflow)  
Bundle complete! 8 Gemfile dependencies, 46 gems now installed.  
Use `bundle info [gemname]` to see where a bundled gem is installed.  

[admin@server.ip jekyll-files]$ bundle exec jekyll serve  
Could not find nokogiri-1.10.9 in any of the sources  
Run `bundle install` to install missing gems.  

[admin@server.ip jekyll-files]$  

Чтобы устранить приведенное выше предупреждение, относящееся к sudo, я не смог запустить sudo перед bundle командами и я не смог изменить владельца /usr/bin для пользователя, не являющегося root, но я выполнил следующие команды несколько раз во время диагностики c последовательностей без изменений в ошибках, показанных выше:

sudo chown -R jekyll-host:jekyll-host /usr/local/share/gems/  
sudo chown -R jekyll-host:jekyll-host /usr/local/lib64/gems/  
sudo chown -R jekyll-host:jekyll-host /usr/share/gems/  
sudo chown -R jekyll-host:jekyll-host /usr/bin/openssl  
sudo chown -R jekyll-host:jekyll-host /usr/bin/ruby   
sudo chmod -R 775 /usr/share/gems/  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...