virtualboxで共有フォルダ/ポートフォワーディング/SSHフォワーディングを設定してホスト完結のRails開発環境を構築しよう

    >

プログラミングは、進む時は面白いぐらいに進むのに、詰まる時はとことん詰まる。そしてそのままフェードアウト…といったことはよく聞く話です。僕もHTMLから始めて、長いことプログラミングを続けてきましたが、どうしても自分の思い通りにいかない、実装ができない、エラーが続く、といった状況に悩まされ、うつ状態になり、もういっそプログラミングなんて辞めてしまおうか…と挫折しそうになった経験が、幾度となくあります。

プログラミングを6年続けてきて、プログラミングは自分一人で完結できるものではない、ということは痛いほど分かっています。"スタックオーバーフロー"だけではどうしようもないことも、中にはあります。 特に、新しい技術や言語に挑戦しようとする時は、難関が数多くあります。JavaとPHPは違いますし、スマホアプリが作れるからと言ってPythonができるとは限りません。多くの場合、多くの障壁に立ち塞がることでしょう。

実際、僕も多くのプログラミングをしている友人から、あらゆる相談を受けます。既存の回答や僕の知識から、最適な答えを返してあげられることもありますが、答えられないことや上手く説明できないことも多くあります。
そのような場合、僕が彼らに勧めているのが、『TechAcademy [テックアカデミー]』です。

同サービスは短期間から登録できるオンライン完結のプログラミングスクールで、他社と比較しても、そのコストパフォマンスは圧倒的です。
例えば、A社は148,000円〜のところ、同サービスは99,000円〜でコースが受講できます。( ※はじめてのプログラミングコース4週間の料金 )
また、一言に現役のプロと言っても、エンジニア歴20年以上、プログラム歴35年以上といった、まさにプロ中のプロの方たちが対応してくれるのも、『techacademy』の魅力の一つ。

国内外どこからでもチャット相談が可能で、毎日8時間、1週間あたり57時間の間、メンターが常時待機しています。
受講生限定の転職サポートで、コース受講終了後、企業やコンサルタントからスカウトが届く"TechAcademyキャリア"も、ぜひ活用したいところです。

  • オリジナルアプリをAppStoreにリリースするまで徹底サポート「iPhoneアプリコース」
  • 職業を問わず身につけたい、教養としてのプログラミングが学べる「はじめてのプログラミングコース」
  • 仮想通貨を支えるブロックチェーン技術の仕組みを学べる「ブロックチェーンコース」
  • Pythonと機械学習が学べる「Pythonコース」

『techacademy』では、上記コースをはじめとした、数多くの特化したコースが受講受付中です。プログラミングの進捗に真剣に悩んでいる方は、ぜひご活用ください。

TechAcademy [テックアカデミー]

さて、おまたせしました。

今回の記事は『virtualboxで共有フォルダ/ポートフォワーディング/SSHフォワーディングを設定してホスト完結のRails開発環境を構築しよう』です。この記事が役に立った、と思ったらぜひ、コメントまたはTwitterやLINEでシェアしてくださいね。


サブタイトル:Rails対策 virtualbox自体を使って生のubuntuでrailsを動かそう

dockerは、簡単そうに見えるが、やっていることは違うことなわけなので、何かをやるにしても既存の方法が通じない。新しく調べてやるしかないし、それもうまく進捗するとは限らない。今回の件のように。

virtualbox自体を使って生のubuntuでrailsを動かせば、まぁ当然動かせるはずである。

フォルダのマウントとポートフォワーディングさえできれば、こっちのものだ。
あとSSHフォワーディングも出来ないとダメか。

intel_rapl no valid rapl domains found in package 0エラー

環境設定 > システム > プロセッサー > PAE/NX を有効にして保存してゲストを再起動。

https://askubuntu.com/questions/449574/intel-rapl-no-valid-rapl-domains-message-upon-boot

共有フォルダの設定

参考

https://www.howtogeek.com/189974/how-to-share-your-computers-files-with-a-virtual-machine/

これだけだと出来ない。エラーが出ます。
ステップ6まで出来たら以下を実行。


僕もそうですが、フリーのプログラマの仕事内容は様々です。ソフトウェアを受注製作することもあれば、企業ホームページを作ることもあるでしょう。
どういったビジネスを展開するにせよ、事業を成功させるには、正しいマーケティングを行うことは必須事項です。

ミツモア』は、Googleのリスティング広告やマーケティング広告管理に煩わされることなく、狙った顧客を獲得できる、マーケティングプラットフォームです。
僕のプログラマの友人がいるのですが、彼にも『ミツモア』を紹介し、彼は現在、成功したプログラマの一人です。
どうしても疎かになってしまいがちなマーケティングですが、『ミツモア』を上手く活用し、新たな新規顧客を獲得していきたいところですね。

ミツモア

vboxsf mounting failedエラー

cd /opt/VBoxGuestAdditions-*/init  
sudo ./vboxadd setup

## shareフォルダをホストに作成+ゲストで割当設定

## ゲストを再起動

sudo mount -t vboxsf -o uid=1000,gid=1000 share /home/username/host
# or
sudo mount -t vboxsf -o share /home/username/host

https://stackoverflow.com/questions/28328775/virtualbox-mount-vboxsf-mounting-failed-with-the-error-no-such-device

SSHフォワーディングの設定

  1. ホスト側でOpenSSHの設定をして、SSH接続を可能にする。(windows powershellの場合)

ダウンロード:Install Win32 OpenSSH · PowerShell/Win32-OpenSSH Wiki

解答して、C:/OpenSSH ディレクトリを作成し、そこに中身を全てコピー。

Powershellを再起動すれば、sshコマンドが使用できる。

  1. virtualboxの設定

設定 > ネットワーク > ポートフォワーディング で以下を追加。

Host port 3022, guest port 22, name ssh, other left blank.

ゲストポート22をホストポート3022へ送る設定である。

  1. ゲストでSSHポートを開く設定をする
sudo apt-get -y install openssh-server
sudo apt-get update

updateでもしE: Problem executing scripts APT::Update::Post-Invoke-Successエラーが出たら、sudo apt-get remove libappstream3で解決可能。

  1. 接続検証
ssh -p 3022 user@127.0.0.1

userをユーザー名へ変更。
IPアドレスは、ホストでifconfigをして確認。

  1. connection refusedエラー

IPアドレスが間違っていたりすると起こる。

ホスト、ゲストでそれぞれ、ifconfig/ipconfigでIPアドレスを確認して、同じか確かめてみよう。

ゲスト→ホストへポートフォワーディングされるわけなので、ホストでipconfigして出てきたイーサネット アダプター VirtualBox Host-Only Networkを見てそのIPアドレスを打ち込んでいけば、接続できるはず。

You can verify by doing ipconfig / ifconfig on both.

ローカルホストをポートフォワーディング

Railsで使用する、localhost:3000を、ホストで閲覧できるようにします。

先程同様、

設定 > ネットワーク > ポートフォワーディング で、

rails,TCP,0.0.0.0,3000,0.0.0.0,3000

のように設定し、保存します。

再起動が必要かもしれません。

Rails環境を構築して開発してみる

これで準備は整いました。

環境は完全に仮想環境のUbuntuで、開発は完全にホストで、ということができるようになったわけです。

Rails関連をインストール


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 nodejs sudo apt-get install -y ruby-dev ruby sudo gem install bundler sudo gem install rails

アプリを作成してコントローラーを作成

cd ~/share
sudo rails new app
cd app
sudo rails g controller pages index

作ったコントローラーが正しく動作するか確認しましょう。

App

表示されてればおkですね。

既存のRailsアプリを開発するには

既存のRailsアプリディレクトリを、共有フォルダに入れます。
SSHで、Railsアプリディレクトリへcdします。
ここでbundle installとかrails sってやるとkやはりエラーになりますので、環境設定を少々やります。

rbenvをインストール

# [How To Install Ruby on Rails with rbenv on Ubuntu 16.04 | DigitalOcean](https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-with-rbenv-on-ubuntu-16-04)

RailsアプリのRubyバージョンを確認して、rbenvでそのバージョンのRubyをインストール
ここでは、2.4.2を指定。

$ rbenv global  2.4.2
$ rbenv local  2.4.2
$ ruby -v
ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-linux]
$ rbenv rehash

ここまで来て、bundle installができます。

rbenv exec bundle install

毎回rbenv execするの面倒なので、エイリアス登録しときます。(場合によっては.bashrcに追記してください)

alias rails='rbenv exec rails'
alias bundle='rbenv exec bundle'

これで、bundle install,rails sのように実行してやることが出来ます。

apt-getで特定のバージョンをインストールするには

=で指定してやる。

apt-get install apache2=2.2.8-1

virtualboxでクリップボードの共有を有効にする

設定 > 一般 > アドバンスド > クリップボードの共有 を選択。

Copy And Paste Between VirtualBox Host And Guest Machines | Liberian Geek

apt-get でE: Problem executing scripts APT::Update::Post-Invoke-Successエラー

E: Problem executing scripts APT::Update::Post-Invoke-Success ‘if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi’ E: Sub-process returned an error code

解決法:

sudo apt-get remove libappstream3

appstream – E: Problem executing scripts APT::Update::Post-Invoke-Success – Ask Ubuntu


2020年の東京五輪を間近に控え、来日外国人の数は年々増加しています。ただでさえ、あらゆる職種で"英語力"が求められる時代ですが、その中でも特筆してプログラマ、システムエンジニアには、英語力は必須であると言われています。

僕は現在、英検1級に着手し、英語力が一定水準に達した今でも、日々新しい表現や単語を学んでいます。しかし僕も最初から英語が出来たわけではありません。中学生の頃の英語の成績は、学年でほぼビリでしたし、そもそも英語なんて必要ない(若者の常套句ですね)、今後一生やることはない、と思っていたくらいです。

確かに、英語を使わずとも年収600万以上の仕事に就くことは出来ますし、生活する上で困ることもないでしょう。しかしそれは、英語を知っている世界を知らないからでしかありません。
英語に興味関心がない多くの方は、こういうことを言うと反発するのですが、プログラミング経験者の皆さんなら、そうでもないのではないでしょうか。

プログラミングをやっていて、英語が出来たらなぁと思ったこと、あるのではないでしょうか。僕が英語を始めた動機は他にありますが、一度、二度挫折した英語学習を再開する動機となったのは、紛れもなく、"プログラミング"でした。プログラミングを続けるには、英語の壁を超える必要がある、と幾度となく痛感しました。

  • エラー文章をGoogle検索せずとも理解できる
  • ソースコードに日本語が含まれる場合に起こる特有のエラーを回避できる
  • スタックオーバーフローの回答が理解できる
  • スタックオーバーフローに質問を投稿し、良質で的を射た回答を得ることができる
  • 翻訳されていないドキュメントやリファレンスを理解できる
  • 適切なメソッド名やファイル名をスムーズに定義できる
  • 需要が高く報酬の良い海外で仕事が探せる、または海外のクライアントを相手にできる

上記をはじめとした、プログラミングにおいて英語ができることのメリットは数多く存在します。
英語学習の必要性に疑問を持っていた方も、上記の一覧を見て、何か思うことがあるかもしれません。しかし、英語を学習する意義を見つけたあと、間違っていけないのが、その学習方法です。

英語学習方法には効率的、非効率的、意味がないなど、様々な方法が乱立しています。中には悪徳なものもあり、注意が必要です。
英語学習に回り道やチートはありませんが、効率的でない学習方法を避けて学習を進めていくことは、1年後、5年後の自分の英語力に取り返しのつかない差が開いてしまうことを未然に防ぎます。

そして、僕が一番信頼を置いているのが、『スタディサプリ ENGLISH』です。『スタディサプリ ENGLISH』はこれまで様々な英語に関する相談をしてきた友人への、最も勧める頻度の高かったサービスです。

留学が間近で…、ワーキングホリデーに行ってみたくて…、やっぱり英語をまた始めようと思って…、社内公用語対策で…、英会話教室に通おうと思ってて…などなど、僕への相談は様々ですが、これら全ての方に、『スタディサプリ ENGLISH』は自信を持っておすすめできます。

スタディサプリ ENGLISH

さて、最後までお読み頂きありがとうございました。この記事が役に立った、と思ったらぜひ、コメントまたはTwitterやLINEでシェアしてくださいね。

僕は個人事業として、プログラミング6年、1日14時間パソコン業務をこなしてきました。現在もウェブサイト開発やサポート、ソフトウェア制作、レビューなどライティングをはじめとしたお仕事を承っております。気になったらぜひ、メールにてご連絡ください。いつでもお待ちしております。

現在承っているお仕事の一覧
お問い合わせ

小山はるや(こやまはるや) 東京生まれ。プログラマー。現役大学生。ウェブサイト制作の傍らメディア運営を行い、2017年に開設されたITブログ『yuipro』(https://yuis-programming.com)は2019年に月間アクセス数1万を超える。 これまで80を超えるウェブサイトを制作、小山氏自ら運営するウェブサイトは8つに上り、うち2つが月当たり数万のアクティブビジターを獲得している。


Close Menu