win10でvirtualbox+vagrantでrubyの開発マシン環境を構築する
この記事を書く前に、カイリンをインストールするためにwmware仮想マシンなど他の代替手段をたくさん試しましたが、常に問題があることに気づきました。設定もとても簡単だと思いました。次にこのことについて詳しく説明します。
(注:著者自身のサーバー構成はcentos7.2 + ruby2.3.4 + mariadb + redis、win10用の独自のラップトップ、さらに、多くのオンライン類似の記事は長い時間前に書かれている、内容の多くはもはや適用されていない、とさえ多くの重要なリンクは、著者の初期構成では、ピットの多くに足を踏み入れた結果、明確ではありません。(だから、経験を要約するために、この記事を書く)。
コンフィギュレーションプロセス
1. ボックスミラーの選択
今回は、centos7.2のWebサーバシステムのため、centosのイメージを選択するのが理にかなっています。(ミラー公式サイト、サポート検索設定。
https://app.vagrantup.com/boxes
. vagrantについては、この記事は繰り返されませんが、vagrant + virtualboxについて多くのオンライン情報は、基本的な構成も非常にシンプルでトラブルフリーです)。
最初、私はランダムに高いダウンロードセントスをダウンロードし、内部構成は多くの問題を抱えていることがわかった、主な問題は、多くのソフトウェアのバージョンが古すぎると更新が非常に面倒で、手動で依存関係の多くを解決する必要があります(いくつかのも解決できないので、ピットを放棄することにしました)。その後、公式ミラーを変更したので、大きな改善があります。(ミラーを容易にするために、私は使用しています。 https://app.vagrantup.com/centos/boxes {未定義 )
鏡像を選ぶときは、次のことに注意してください。
-完全にわからない場合は、ミラーの新しい完全版を選ぶようにしてください(Minimalにしないようにしてください)。
-ネットワーク状況が許す場合(例:中国本土以外)、ページにあるように直接設定することができます。ネットワーク条件が許可されていないか、または非常に遅い場合は、まず、上記のあなたのvagrantを開始に従って、その後、ボックスのダウンロードアドレスを取得し、開始を中断することができます。
2. gitのインストール
開発マシンとして、gitは必須ですが、当初はgitにも長い間ピットインしていました。
最初の直接コマンドでインストール
{コード
インストールするときにバージョンに注意を払うようにしてください、バージョンは1.8(別のシステムgit1.7の前に、レポ上の多くのサイトが適切にアクセスすることはできません)よりも低くない方が良いです。
/{br
次のステップでは、git のグローバルな設定をいくつか行います。
yum install git
設定項目は、ユーザー名、ユーザーメールアドレス、パスワードの記憶(私は怠け者なので、sshの設定をしたくない)有効時間(秒単位、例では2時間)の3つです。
3. rvmのインストール
railsの環境構築として、rvmは非常に重要な部分です。
/{br
まずrvmをインストールします(マシンにcurlがない場合や、その他の依存関係に問題がある場合は、先にそれらを解決してください)
{コード
インストール後、以下のメッセージが表示された場合
git config --global user.name "HansBug"
git config --global user.email [email protected]
git config credential.helper 'cache --timeout=7200'
じゃあ、彼の言うとおりにすればいいんだよ。
インストール後に行うべき非常に重要なことが1つあります。それは、オリジナルのミラーアドレスを変更することです。謎の理由 (ご存知でしょう) で、次の ruby のダウンロードが信じられないほど遅く、不安定になるのです。
そこで、コマンドを実行することにしました。
{コード
4. ルビーのインストール
rvmの設定が終わったら、次はrubyのインストールです(私はバージョン2.3.4を使っています)
{コード
そして、インストール後、デフォルトのバージョンを設定します
{コード
5. gemソースの修正
一般的に、rubyをインストールすれば、gemは利用できるようになります。しかし、謎の理由(ご存知でしょうが)で、gemのオリジナルソースのダウンロードが極端に遅くなることがよくあります。
まず既存のgemのソースを見る
{コード
フィードバックは
curl -L get.rvm.io | bash -s stable
これはrubygemのオリジナル画像で、中国本土でのアクセスは遅いです。ruby-chinaが提供するミラーに置き換えることができます。操作方法は以下の通りです。
* WARNING: You have '~/.profile' file, you might want to load it,
to do that add the following line to '/home/vagrant/.bash_profile':
source ~/.profile
元のミラーアドレスを削除し、新しいものを作成するためです。この時点で、gemの設定は完了です
6、railsとbundlerをインストールする
このステップは、事前にすべてが適切に設定されていれば、実際には非常に簡単です。
/{br
まず(途中で依存関係の問題が出てくるかもしれませんが、それは自分でbaiduやgoogleで解決してください。大抵は関連情報を見つけることができます。)
{コード
インストールが完了したことを確認した後、以下を実行します。
{コード
7. mariadbとredisをインストールする
実は、centosでのmariadbのインストールは非常に簡単で、直接
echo "ruby_url=https://cache.ruby-china.org/pub/ruby" > ~/.rvm/user/db
をインストールする必要があります (最後をインストールしないと、後でバンドルをインストールするときに依存性エラーが発生します)。
あとはsudo service mariadb startでデータベースが起動します、とても便利です。(データベースのパスワードの設定については、自分でやればいいので、ここでは割愛します)
また、redisをインストールする場合、EPELがインストールされており、システムサービスが設定されていれば、yum -yで直接redisをインストールすることができます。(EPELのインストールについては、記事末尾の質問2をご参照ください)
注意:プロジェクトを正式にデプロイする前に、redisとmariadb関連の設定を開発時と同じように行ってください
/
mariadbの基本的な初期設定については、こちらを参考にしてください。
https://www.codedevlib.com/article/108930.htm
mariadbへのリモートアクセスについては、以下のリンクが非常に簡潔でわかりやすく書かれているので参考にしてください(ただし、開発マシン以外のすべてのipにリモートアクセスを許可するのは非常に危険です)。
https://www.codedevlib.com/article/72426.htm
8. プロジェクトのデプロイ
まずプロジェクトディレクトリのリポジトリを初期化し、リモートリポジトリを追加します(その後に自分のgitアドレスが続きます)。
rvm install 2.3.4
次に
rvm use 2.3.4 --default
プロジェクトが整ったので、次はrailsプロジェクトの大まかな流れです
gem source -l
(注意: バンドルのインストール中に依存関係の問題が発生した場合、まずエラーの説明を確認します。その多くはすでにやり方やインストールするパッケージについて説明しています。(解決できない場合は Baidu や Google で調べてください)
最後のステップです。
{コード
railsサーバを起動すると、ポート3000でローカルサイトに直接アクセスできるようになりました! 素晴らしい!
問題点
1. vagrant がホストとフォルダを共有できない。
以前、設定ファイル(Vagrantfile)からこの行のコメントを削除して問題になったことがあります。
{コード
フォルダ共有を有効にするとエラーになる
*** CURRENT SOURCES ***
https://rubygems.org/
この問題の解決策はすでに知られています。実際には、それは非常に単純であり、プラグインが不足している、にインストールされOKです。
gem source -r https://rubygems.org/
gem source -a https://gems.ruby-china.org/
その後、再読み込みすれば問題は解決します。
2. 一部のパッケージが見つからない
この状況は、centos7自体に多くのパッケージが付属していないことに起因しています。そのため、EPELをインストールする必要があります(
https://www.codedevlib.com/article/113316.htm
)
操作方法は以下の通りです。
gem install rails
この順番で、epelをインストールし、パッケージリストを更新していきます。パッケージの数がだいぶ増えていることがわかります。
3. 仮想マシンをipにマッピング
実際には、このステップはまた、非常に簡単ですが、Vagrantfileからコメントのこの行を削除します(また、LAN内のIPアドレスに競合がないことを確認してください、競合がある場合は、IPを変更してください。別の、競合がある場合は、通常vagrantアップ&リロードの過程でエラーが報告されます)。
{コード
そうすると、サイトには192.168.33.10:3000でアクセスでき、データベースは192.168.33.10で連携でき、puttyも192.168.33.10のIPアドレスで連携でき、サーバーにつなぐのと同じようにできます。
関連
-
Railsにフィールド暗号化ストレージを実装
-
画像フィルターアルゴリズムコードのRuby実装
-
bundlerを使ったRuby環境のインストールと複数バージョンのgemの管理
-
バブルソートアルゴリズムの簡易実装とRuby版
-
モンキーパッチのプログラミングスタイルとRubyでの利用について
-
RubyのプログラムでXML形式のデータをパースするためにREXMLを呼び出す例
-
Rubyのデザインパターン。プログラミングにおけるアピアランスパターンの応用
-
Rubyのデザインパターン。アダプタパターン実践ガイド
-
RubyインタプリタをOSにインストールするためのチュートリアル
-
Rubyのクラスとモジュールの書き方のスタイルガイド
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
挿入ソートアルゴリズムのRuby実装と高度な双方向挿入ソートコード例
-
Ruby on Rails ラックミドルウェア基礎学習チュートリアル
-
rubyのダブルイコール==問題
-
Ruby on Railsのjquery_ujsコンポーネントが遅くなる問題が解決された
-
Rubyの基本的な環境変数の設定と一般的なインタープリタコマンド
-
Ruby on Railsにおける国際化の簡単な紹介
-
Rubyのコードコメントを書く際に気をつけるべき事項
-
Rubyバージョン管理ツールRVMのインストールとチュートリアルの使用方法
-
Rubyの変数参照に関するいくつかの注意点
-
Rubyプログラミングにおけるネーミングスタイルガイド