Экземпляр 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/