ルビー・オン・レール


私は主にRuby on Railsアプリケーションで動作します.それで、私の甘い新しいWSLセットアップで1つで働くことができることは、かなり重要です.

必要条件の混合バッグ


より標準的なDebianまたは新鮮なMacOSインストールとは異なり、きれいなWSL Debianインストールはインストールされているツールの非常に最小限のセットを持っています.それで、厳密にRubyやRailsに関連する何かに入る前に、私はRailsのdev環境設定を取得するなど、あらゆる種類の仕事を達成するために到達するためにいくつかの一般的なツールをインストールする必要があります.
sudo apt install ssh git man-db curl gnupg2 wget keychain
前にUnixのようなシステムで働いている誰にでも、ここでは何も論争してはいけません.
私は、私がインストールする必要が少し驚いたman データベースですが🤷‍♂️. インストールssh , git , curl and wget Linuxシステムでは、基本的にはRubyとNodeをバージョン管理者にインストールする必要があります.私の使用gnupg2 to sign my commits Gitthubでその甘い確かめられたバッジを得るために.

インストールkeychain 私にとって新しいです.それはあなたのSSHとGPGキーを管理するための便利なツールです.インストールが完了すると
eval `keychain --eval --agents ssh id_rsa`
to .bashrc/.bash_profile , その後、GPPGまたはSSHコマンドを実行するたびにパスフレーズを入力する必要はありませんお楽しみください!

Rubyをインストールする旅


写真でMatt Howard on Unsplash いくつかの助けを借りてMatz
DebianのパッケージマネージャーからRuby(またはノード用)のバージョンを取得することは可能ですが、それらをインストールするのに最も一般的であるか推奨される方法ではないと思います.私は常に1つの理由や別の複数のまたは利用できないバージョンを必要とするので、私はrbenv これらのバージョンのインストールと切り替えを管理する.

Use rbenv to pick a Ruby version for your application and guarantee that your development environment matches production. Put rbenv to work with Bundler for painless Ruby upgrades and bulletproof deployments.


私はrbenvをインストールすることを選んだrbenv-installer スクリプト(ソースを読んだ後)
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash
現在RBENVとruby-build インストールする必要がありますちょうど走るのを忘れないでくださいrbenv init そして、シェルが認識して、Rubyバイナリを見つけるために、指示に従ってください.
理論的には、ルビーのどのバージョンもこの時点でインストール可能です.
$ rbenv install 2.7.2
Downloading ruby-2.7.2.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.2.tar.bz2
Installing ruby-2.7.2...

BUILD FAILED (Debian 10 using ruby-build 20201225-2-g5de6d5f)

Inspect or clean up the working tree at /tmp/ruby-build.20201230170140.1599.9kPeZh
Results logged to /tmp/ruby-build.20201230170140.1599.log

Last 10 log lines:
checking for ruby... false
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/tmp/ruby-build.20201230170140.1599.9kPeZh/ruby-2.7.2':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
まあ、それは良い🙈.
そのエラーメッセージを見た後、私はGCC しかし、もちろん、不足している図書館の束があった!私は半分のダースを書くことを余儀なくされます私はすべての必要なライブラリをインストールし、ポイントを得るために私を取った.
sudo apt install gcc libc-dev make libssl-dev zlib1g-dev libreadline-dev
これらはRubyのためだけに必要です.私の柵アプリのために、私もインストールする必要がありましたlibpq-dev コンパイルするPostgres gem , and g++ のためにsassc gem .

ノードのインストール


Rubyと同様に、すべてのノードに必要なバージョンマネージャを持つことができます.ノードのための私の好ましいバージョンマネージャはnodenv , どれがうまくいけば、RBENVのノードバージョンです.😎
同様のインストールプロセスもあります.
curl -fsSL https://raw.githubusercontent.com/nodenv/nodenv-installer/master/bin/nodenv-installer | bash
再び、RBenvと同様に、シェルが認識して、バイナリを見つけるのを確実にするために、ポストインストール命令に従ってください.うまくいけば、私に関しては、ノードをインストールすることはRubyよりもはるかに少ないです.

Railsの前提条件



私がここで柵セットアップの可能なバリエーションをカバーするのを知っている合理的な方法が、ありません.明快さと健全さのために、私はブランドの新しいアプリケーションを生成するには、このガイドを制限します.さらに狭いことに、これは私が働きたいコマンドです.
rails new mycoolapp --skip-turbolinks --skip-action-cable --webpack=stimulus --database=postgresql


ノードが正常にインストールされている限り、インストール糸は1ライナーです.
npm install --global yarn
糸は現在のノードのバージョンにインストールされますので、期待しているものと確認してくださいnodenv version .

PostgreSQL


Postgresは任意のプロジェクトのデータベースに移動します.この文書の執筆時点では、APTで入手可能なプライマリバージョンはPostgres 11ですが、Debianのテストソースからの引き込みではGEST EDGEデータベースの楽しみのためにPostgres 13が得られます.ありがたいことに、インストールは簡単です.前に述べたようにlibpq-dev いくつかの時点でインストールされているので、pggemはコンパイルできます.
sudo apt install postgresql libpq-dev
後のバージョンのPostgresで経験を積んでいる人、あるいはそれを通して働いただけの人には、それは黙示録ではありませんHomebrew on a Mac , しかし、私はデータベースに接続するために実行するために必要ないくつかの追加の手順に走った.Postgresがインストールされた後、私はユーザ、データベース、あるいはpsqlを使ってアクセスする方法を持っていませんでした.自分をブートしなければならなかったthrough the postgres (sometimes postgresql ) system user .
sudo -u postgres createuser --createdb --pwprompt WHATEVERUSERNAMEYOUWANT
私はいつも使用しているときにロール名を指定しない場合は、私のLinuxユーザ名にマッチするPostgresの役割を常に作成することを好むpsql .
ローカルでデータベースを扱うもう一つの方法がありますが、セキュリティ上では少しのifffyかもしれません.これが開発目的のために厳密であるならば、私はそれが多くの問題であると思いません.ユーザーの作成時に--pwprompt 代わりにPostgres設定を変更します.trust any local connections . これは更新によって行うことができます/etc/postgresql/11/main/pg_hba.conf 持つlocal and host 用途trust 認証用.
# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
構成変更後、任意のユーザーまたはアプリケーションのローカル接続は、ユーザー名だけで接続され、パスワードが必要です.

バンドル


ルビーで働くことは、バンドルなしで何ですか?Rubyがインストールされている限り、これは
gem install bundler

レール自体🤔


完全酒のためにinstalling the Rails gem 私がこのセクションの始めで言及したそのコマンドを走らせるパズルの最後の部分であるべきです.バンドルと同じようにグラマー
gem install rails

新しいアプリケーションを構築する


$ rails new mycoolapp --skip-turbolinks --skip-action-cable --webpack=stimulus --database=postgresql
      create  README.md
      create  Rakefile
      create  .ruby-version
      create  config.ru
      create  .gitignore
      create  .gitattributes
      create  Gemfile
         run  git init from "."
Initialized empty Git repository in /home/username/mycoolapp/.git/
      create  package.json
      create  app
         run  bundle install

Bundle complete! 16 Gemfile dependencies, 72 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
         run  bundle binstubs bundler
       rails  webpacker:install
      create  config/webpacker.yml
Copying webpack core config
Copying postcss.config.js to app root directory
Copying babel.config.js to app root directory
Copying .browserslistrc to app root directory
The JavaScript app source directory already exists
  Copying binstubs
Installing all JavaScript dependencies [5.2.1]
         run  yarn add @rails/[email protected] from "."
yarn add v1.22.10
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
success Saved 594 new dependencies.
Done in 11.39s.
Installing dev server for live reloading
         run  yarn add --dev webpack-dev-server from "."
yarn add v1.22.10
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
success Saved 102 new dependencies.
Done in 4.35s.
Webpacker successfully installed 🎉 🍰
       rails  webpacker:install:stimulus
      append  app/javascript/packs/application.js
Creating controllers directory
Installing all Stimulus dependencies
         run  yarn add stimulus from "."
yarn add v1.22.10
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
success Saved 5 new dependencies.
Done in 4.43s.
Webpacker now supports Stimulus.js 🎉
出力のコンパクトなバージョンが、すぐに新しいRailsアプリケーションを生成する必要があります!多分休憩を取る、いくつかの水と軽食をつかむし、偉大な側面プロジェクトを構築する作業を得る.
写真でMike Enerio on Unsplash