#ruby-on-rails #ubuntu #deployment
Вопрос:
При попытке развернуть приложение Rails на Ubuntu 20 невозможно установить pg, и любая попытка сборки приведет к ошибкам
$ gem install pg
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
current directory: /home/user/.rvm/gems/ruby-2.6.1/gems/pg-1.2.3/ext
/home/user/.rvm/rubies/ruby-2.6.1/bin/ruby -I /home/user/.rvm/rubies/ruby-2.6.1/lib/ruby/site_ruby/2.6.0 -r ./siteconf20210417-119158-37ke72.rb extconf.rb
checking for pg_config... yes
Using config values from /usr/bin/pg_config
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for pg_config_manual.h... yes
checking for PQconnectdb() in -lpq... yes
checking for PQsetSingleRowMode()... yes
checking for PQconninfo()... yes
checking for PQsslAttribute()... yes
checking for PQresultVerboseErrorMessage()... yes
checking for PQencryptPasswordConn()... yes
checking for PQresultMemorySize()... yes
checking for timegm()... yes
checking for rb_gc_adjust_memory_usage()... yes
checking for unistd.h... yes
checking for inttypes.h... yes
checking for C99 variable length arrays... yes
creating extconf.h
creating Makefile
current directory: /home/user/.rvm/gems/ruby-2.6.1/gems/pg-1.2.3/ext
make "DESTDIR=" clean
current directory: /home/user/.rvm/gems/ruby-2.6.1/gems/pg-1.2.3/ext
make "DESTDIR="
compiling gvl_wrappers.c
compiling pg.c
compiling pg_binary_decoder.c
compiling pg_binary_encoder.c
compiling pg_coder.c
compiling pg_connection.c
compiling pg_copy_coder.c
compiling pg_errors.c
compiling pg_record_coder.c
compiling pg_result.c
compiling pg_text_decoder.c
compiling pg_text_encoder.c
compiling pg_tuple.c
compiling pg_type_map.c
compiling pg_type_map_all_strings.c
compiling pg_type_map_by_class.c
compiling pg_type_map_by_column.c
compiling pg_type_map_by_mri_type.c
compiling pg_type_map_by_oid.c
compiling pg_type_map_in_ruby.c
compiling pg_util.c
linking shared-object pg_ext.so
current directory: /home/user/.rvm/gems/ruby-2.6.1/gems/pg-1.2.3/ext
make "DESTDIR=" install
make: /usr/bin/mkdir: Command not found
make: *** [Makefile:201: .sitearchdir.time] Error 127
make install failed, exit code 2
Gem files will remain installed in /home/user/.rvm/gems/ruby-2.6.1/gems/pg-1.2.3 for inspection.
Results logged to /home/user/.rvm/gems/ruby-2.6.1/extensions/x86_64-linux/2.6.0/pg-1.2.3/gem_make.out
ни над bundle install
чем, кажется, не работающим:
При установке bcrypt (3.1.16) произошла ошибка, и связыватель не может продолжить. Убедитесь, что gem install bcrypt -v '3.1.16' --source 'https://rubygems.org/'
это удастся, прежде чем связывать.
В файле Gemfile: bcrypt
При установке nio4r (2.5.7) произошла ошибка, и пакет не может продолжить работу. Убедитесь, что gem install nio4r -v '2.5.7' --source 'https://rubygems.org/'
это удастся, прежде чем связывать.
В файле Gemfile: rails был разрешен до 6.1.3.1, что зависит от actioncable, был разрешен до 6.1.3.1, что зависит от nio4r
При установке racc (1.5.2) произошла ошибка, и связыватель не может продолжить. Убедитесь, что gem install racc -v '1.5.2' --source 'https://rubygems.org/'
это удастся, прежде чем связывать.
Кажется, ничего не работает, и нет полезной информации о том, как решить проблему
Ответ №1:
make: /usr/bin/mkdir: Command not found
вот в чем причина.
Пожалуйста, напишите эту команду с помощью sudo perm.
sudo ln -s $(which mkdir) /usr/bin/mkdir
И попробуйте еще раз.
Комментарии:
1. блестяще! большое спасибо, но почему это так? Я
mkdir
обычно пользовался этим пользователем.. почему бандл не смогла его найти? для меня это не имело смысла2. Я не знаю 😅 Я только что исправил ошибку, которую видел
Ответ №2:
Это происходит потому, что вам необходимо установить следующие пакеты, которые pg gem
требуются:
sudo apt install postgresql postgresql-contrib libpq-dev
Затем настройте postgres и убедитесь, что он запущен.