Назад | Перейти на главную страницу

Не удается установить gem на ванильный ubuntu - EACCESS

Я пытаюсь установить гем Middleman на совершенно обычную установку Ubuntu Trusty (i386). Вот мой консольный ввод / вывод:

vagrant@vagrant-ubuntu-trusty-32:~/rj$ which ruby
/usr/bin/ruby
vagrant@vagrant-ubuntu-trusty-32:~/rj$ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [i686-linux]
vagrant@vagrant-ubuntu-trusty-32:~/rj$ gem install middleman
Fetching: bundler-1.7.7.gem (100%)
ERROR:  While executing gem ... (Errno::EACCES)
Permission denied - /var/lib/gems

Как видите, я использую Vagrant VM после получения аналогичных ошибок в моей хост-системе. (Другой ответ на чей-то предыдущий вопрос указал мне как на Vagrant, так и на Docker, каждый из которых выдавал результат, подобный приведенным выше строкам.) Интересно, что даже с использованием sudo gem install middleman доставляет мне проблемы.

(Я думал о том, чтобы вставить этот вывод сюда, и я все еще могу, если кто-то спросит, но, честно говоря, я бы предпочел по возможности избегать установки внешних гемов с правами root, предпочитая сосредоточиться на ошибках выше. Вся суть посредника после all, заключается в создании определенного набора плоских выходов, ограничивающего необходимость в привилегиях и настройках.)

Кто-нибудь раньше сталкивался с подобными ошибками?

======================

РЕДАКТИРОВАТЬ: По запросу, вот результат, когда я использую sudo gem install middleman:

Fetching: bundler-1.7.7.gem (100%)
Fetching: rack-1.5.2.gem (100%)
Fetching: tilt-1.4.1.gem (100%)
Fetching: erubis-2.7.0.gem (100%)
Fetching: uber-0.0.11.gem (100%)
Fetching: hooks-0.4.0.gem (100%)
Fetching: rack-test-0.6.2.gem (100%)
Fetching: thor-0.19.1.gem (100%)
Fetching: i18n-0.6.11.gem (100%)
Fetching: json-1.8.1.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing middleman:
ERROR: Failed to build gem native extension.

/usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from extconf.rb:1:in `<main>'

Gem files will remain installed in /var/lib/gems/1.9.1/gems/json-1.8.1 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/json-1.8.1/ext/json/ext/generator/gem_make.out

Похоже, вам нужно запустить эту установку gem с sudo поскольку он использует ограниченную системную папку.

ОШИБКА: при выполнении gem ... (Errno :: EACCES) В доступе отказано - / var / lib / gems

Попробуйте сделать это:

sudo gem install middleman