Установка Ruby в WSL (подсистема Windows для Linux)

Прежде всего, извините за мой плохой английский.

Я пытаюсь установить Ruby 2.3.0 в моей системе с rbenv через Windows Subsystem для Linux, также известную как Ubuntu в Windows 10. Я следовал этой инструкции (но не на 100% точно). но каждый раз, когда я пытаюсь, не удается собрать Ruby с этим журналом.

check struct members..
check libraries....
Use ActiveTcl libraries (if available).
Search tclConfig.sh and tkConfig.sh..............................
Fail to find [tclConfig.sh, tkConfig.sh]
Use X11 libraries (or use TK_XINCLUDES/TK_XLIBSW information on tkConfig.sh).
Warning:: cannot find X11 library. tcltklib will not be compiled (tcltklib is disabled on your Ruby. That is, Ruby/Tk will not work). Please check configure options. If your Tcl/Tk don't require X11, please try --without-X11.
Can't find X11 libraries. 
So, can't make tcltklib.so which is required by Ruby/Tk.
Failed to configure tk. It will not be installed.
Failed to configure tk/tkutil. It will not be installed.
configuring zlib
make[1]: Entering directory `/tmp/ruby-build.20160522033606.7696/ruby-2.3.1'
make -C ext/digest/sha2 -w --jobserver-fds=6,7 -j V= realclean
make[2]: Entering directory `/tmp/ruby-build.20160522033606.7696/ruby-2.3.1/ext/digest/sha2'
Makefile:39: *** missing separator.  Stop.
make[2]: Leaving directory `/tmp/ruby-build.20160522033606.7696/ruby-2.3.1/ext/digest/sha2'
make[1]: *** [ext/digest/sha2/realclean] Error 2
make[1]: Leaving directory `/tmp/ruby-build.20160522033606.7696/ruby-2.3.1'
make: *** [build-ext] Error 2

и это мой список установленных пакетов

libx11-data/trusty,now 2:1.6.2-1ubuntu2 all [installed]
libx11-dev/trusty,now 2:1.6.2-1ubuntu2 amd64 [installed]
libx11-doc/trusty,now 2:1.6.2-1ubuntu2 all [installed,automatic]
libx11-xcb1/trusty,now 2:1.6.2-1ubuntu2 amd64 [installed,automatic]
libtk8.4/trusty,now 8.4.20-7 amd64 [installed,automatic]
libtcl8.4/trusty,now 8.4.20-7 amd64 [installed,automatic]

Как видите, я установил X11, tcl, tk, но моя система не может их обнаружить. Я сделал не так? или это просто баг?

Любая помощь будет оценена. Спасибо за чтение.

2 ответа

1. Установите Ruby

Сначала некоторые зависимости для Ruby:

sudo apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev

Теперь для Ruby: есть 3 способа установки, каждый из которых конфликтует друг с другом, поэтому выберите тот, который, по вашему мнению, вам больше подходит, или мое предложение: rbenv

Использование rbenv (рекомендуем)

cd
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL

rbenv install 2.3.1
rbenv global 2.3.1
ruby -v

Использование rvm

sudo apt-get install libgdbm-dev libncurses5-dev automake libtool bison libffi-dev
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
rvm install 2.3.1
rvm use 2.3.1 --default
ruby -v

Из источника

cd
wget http://ftp.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
tar -xzvf ruby-2.3.1.tar.gz
cd ruby-2.3.1/
./configure
make
sudo make install
ruby -v

После установки Ruby установите Bundler

gem install bundler

2. Установите Rails

Сначала вам нужен NodeJS:

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

Затем установите рельсы:

gem install rails -v 4.2.6

Если вы используете rbenv, вам нужно будет выполнить следующую команду, чтобы сделать исполняемый файл rails доступным:

rbenv rehash

Теперь, когда вы установили Rails, вы можете запустить команду rails -v, чтобы убедиться, что все установлено правильно:

rails -v
# Rails 4.2.6

3. Установите БД

MySQL:

Вы можете установить сервер и клиент MySQL из пакетов в хранилище Ubuntu. В процессе установки вы установите пароль для пользователя root. Эта информация будет добавлена ​​в файл database.yml вашего Rails-приложения в будущем.

sudo apt-get install mysql-server mysql-client libmysqlclient-dev

PostgreSQL:

В настоящее время некоторые ошибки не позволяют правильно установить Postgres, поэтому я рекомендую вам сейчас MySQL.

sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main' > /etc/apt/sources.list.d/pgdg.list"
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql-common
sudo apt-get install postgresql-9.5 libpq-dev

При установке postgres пользователь не настраивается, поэтому вам необходимо выполнить следующие шаги, чтобы создать пользователя с правами на создание баз данных. Не стесняйтесь заменить Крис с вашим именем пользователя.

sudo -u postgres createuser chris -s

# If you would like to set a password for the user, you can do the following
sudo -u postgres psql
postgres=# \password chris

Заключительные шаги

Теперь убедитесь, что думает идти направо, а не налево

#### If you want to use SQLite (not recommended)
rails new myapp

#### If you want to use MySQL
rails new myapp -d mysql

#### If you want to use Postgres
# Note that this will expect a postgres user with the same username
# as your app, you may need to edit config/database.yml to match the
# user you created earlier
rails new myapp -d postgresql

# Move into the application directory
cd myapp

# If you setup MySQL or Postgres with a username/password, modify the
# config/database.yml file to contain the username/password that you specified

# Create the database
rake db:create

rails server

Мои установки следуют этому замечательному учебнику: ссылка здесь

Убедитесь, что вы обновили установку Windows - запустите "Помощник по обновлению до Windows 10" и установите обновление для создателей Windows 10. Что-нибудь до этого пронизано ошибками и моей rbenv Установка Rails не будет работать. Если после обновления Windows до CU он все равно не будет работать, вы всегда можете просто использовать rvm вместо. Вам может понадобиться переустановить все в любом случае, так как рекомендуется переустановить / обновить Ubuntu, если вы используете WSL.

Другие вопросы по тегам