59
74

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Git clone から 環境構築 して プロジェクトに参加するまでの道のり(全部盛り)

Last updated at Posted at 2020-06-13

他の人が作っているプロジェクトに参加したい! と思い、とりあえずGit Cloneするものの、そのあともなかなか骨が折れます。道すがらバージョンあわせ(ここではRuby・MySQLを使用)に見舞われたり、共同作業を想定している場合は、参加される側(記事末尾に記載)もあらかじめしておかなくてはならないことがありますので、その道のりを丸っと記録しておきました。部分的にでも、参考になるところがあればうれしいです。

Gitリポジトリからcloneする

参加したいGitHubのページにアクセス。「Clone or download」のボタンをクリックするとURLが取得できる。
スクリーンショット 2020-06-13 12.17.02.png
このURLをコピーして、ターミナルで以下のようにコマンドを打つと、現在いる場所にフォルダが作成される。

$ git clone https://github.com/xxxx/xxxx.git

gemのインストール

作成されたフォルダに移動して

$ cd xxxx

bundle installを行うと

$ bundle install
Fetching gem metadata from https://rubygems.org/............
Fetching rake 13.0.1
Installing rake 13.0.1
Fetching concurrent-ruby 1.1.6
Installing concurrent-ruby 1.1.6
Fetching i18n 1.8.2
Installing i18n 1.8.2
Fetching minitest 5.14.0
Installing minitest 5.14.0
Fetching thread_safe 0.3.6
Installing thread_safe 0.3.6
Fetching tzinfo 1.2.7
(略)

となって完了するのが理想だが、そうならないことがままある。

Ruby の version が合わない時

bundle installをしようとすると、以下の表示になることがある。

rbenv: version `2.6.3' is not installed

上の場合は、Rubyのバージョン2.6.3がインストールされていない。
※rbenvはRubyのバージョン管理を行うもの。

インストール可能なリストは以下で確認できる。

$ rbenv install --list
Available versions:
  1.8.5-p52
  1.8.5-p113
  
 (略)

求められているバージョンがない時は以下のコマンドを打ってから

$ brew upgrade rbenv ruby-build

インストールを実行する。

$ rbenv install 2.6.3
ruby-build: using openssl from homebrew
Downloading ruby-2.6.3.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.3.tar.bz2
Installing ruby-2.6.3...
ruby-build: using readline from homebrew

上記を行なった後で、bundle installしてみる。

bundler の version も合わない時

※bundlerはgem同士の関係をいい感じに保ったり、バージョン管理したりできるgem。

bundle installをしようとすると、以下のような表示に見舞われることもある。

Could not find 'bundler' (2.1.2) required by your /Users/xxx/projects/xxxx/Gemfile.lock. (Gem::GemNotFoundException)
To update to the latest version installed on your system, run `bundle update --bundler`.
To install the missing version, run `gem install bundler:2.1.2`

表示にならいbundlerのgem installを行う。

$ gem install bundler:2.1.2
Fetching bundler-2.1.2.gem
Successfully installed bundler-2.1.2
Parsing documentation for bundler-2.1.2
Installing ri documentation for bundler-2.1.2
Done installing documentation for bundler after 4 seconds
1 gem installed

上記を見届けた後で、bundle installしてみる。

さらにDB(MySQL)のバージョンも合わない時

ようやくbundle installが進んだかと思いきや以下の表示が出てこける。

An error occurred while installing mysql2 (0.5.3), and Bundler cannot
continue.
Make sure that `gem install mysql2 -v '0.5.3' --source 'https://rubygems.org/'`
succeeds before bundling.

表示にならいMySQLのgem installを行いたいが、連なるエラー。

$ gem install mysql2 -v '0.5.3' --source 'https://rubygems.org/'
Building native extensions. This could take a while...
ERROR:  Error installing mysql2:
ERROR: Failed to build gem native extension.

(略)

今回の場合は以下を参考にさせていただいた。(ありがとうございます。)

【参考】RailsプロジェクトでMySQLがbundle installできなかった

$ bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include"

データベースの準備をする

データベースの作成は以下。

$ rake db:create

次にテーブルやカラムを作成。以下を実行してうまくいかないときは製作者に問い正すのが早いかもしれない。過去の作成・追加・削除の工程で不整合があるとうまくいかない。

$ rake db:migrate

seedファイル(初期データ)がある場合は下記も実行する。

$ rake db:seed

製作者側がすること

GitHubを使って作業を共有したいなら、製作者側はあらかじめ以下の作業をしておく。

master.keyの共有

アプリを立ち上げた人がローカルに控えているconfig/master.keyを参加者に共有する。参加者は同じディレクトリに同じように作成する。
このファイルは、通常Git上にあげないファイルなのでcloneした人には作成されない(べき)。ゆえに個別に共有するのを忘れない。

(GitHubなら)参加者をManage Accessに含める必要あり

一緒に作業するためには、GitHubのリポジトリのページの setting > Manage access に参加者を加える必要がある。

さいごに

以上、今回わたしが行なった対処が中心ではありますが、参考になるところがあればうれしいです。ありがとうございました。

59
74
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
59
74

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?