- 投稿日:2020-04-05T23:24:48+09:00
MacにてRailsの環境構築を試みる
はじめに
Ruby on Railsの環境構築について、最低限必要なソフトウェアとインストールのコマンドについてまとめてみました。
Rails環境構築の全体像が掴むための記事となっています。環境構築に必要なソフトウェア用語について
railsの環境構築に必要なソフトウェアは下記に示すものになります。
・Xcode
・homebrew
・rbenv
・ruby
・gem
・rails
・bundlerそれぞれの関係性は下図のようになっています。
Xcode
Apple社が開発・リリースしている、アプリケーション開発に特化したソフトウェアです。
homebrew
MacOS X上でソフトウェアのインストールを単純化するためのパッケージ管理システムのことです。
わかりやすく言うと、ソフトウェアをインストールする際に、パッケージやライブラリの依存関係をうまいこと調整してインストールしてくれるシステムのことです。
ソフトウェアをインストールする前にこいつをインストールしておきましょう。rbenv
rubyのバージョンを切り替えるツール。
環境ごとやディレクトリごとにバージョンを切り替えることもできる。ruby
プログラミング言語のひとつ。オブジェクト指向型のスクリプト言語。
ちなみにスクリプト言語とは、javaやC言語のようにコンパイルすることが不要で、簡単に実行できる特徴を持った言語のことをいいます。比較的簡単に実装できるため、比較的取り組みやすいプログラミング言語になります。gem
gemはある機能がパッケージされたものになります。
パッケージとは、プログラムの部品であり、便利な機能をひとまとめにしたものになります。
例えばユーザーログインシステムを作成するための機能がまとまったgemがあり、インストールすることで簡単にログイン機能を実装することができるようになります。rails
rubyのフレームワークです。Webシステムなどを開発するための機能がまとまっているgemです。
rubyでは主にこのフレームワークを用いて開発が進められています。bundler
gemを管理するためのツールです。
gemをインストールする際に必要になります。各ソフトウェアのインストール
Command Line Tools for Xcodeのインストール
まずはターミナルを開き、下記コマンドによりXCodeをインストールします。
$ xcode-select --installhomebrewのインストール
homebrewの公式サイトからインストールを行いましょう。
https://brew.sh/index_ja.htmlこのページに書かれているインストールのコマンドをターミナルに打ち込んでインストールを行いましょう。
rbenvのインストール
次にrubyのバージョンを管理するrbenvをインストールしましょう。
ちなみに「rbenv」の読み方はだいたい「アールビーエンブ」と呼ばれているようです。
確かではありませんが、
"rb"→ruby
"env"→environment(環境)
の2つをつなげてrbenvとなっていると思われます。
rubyの環境を整えると言う意味合いで使われているのであろうと推測できます。インストールのコマンドは以下になります。
rbenvとともに、ruby-buildというrbenvのプラグインも同時にインストールしておきましょう。$ brew install rbenv ruby-build正常にインストールされたかどうかは
rbenv -vを打ち込み、バージョンが確認できればOKです。
PATHを通す
ここでPATHの設定をしておきます。
PATHを通すとは、あるファイルの実行を、ファイル名を打ち込むだけで実行できるようにする設定です。ファイルをターミナルから開く際には、そのファイルが置かれている場所のフルパスを打ち込むことが必要です。
しかし毎回毎回フルパスを書くのは効率が悪いですね。
そこでPATHの設定をしておくことでファイル名だけで実行ができるようになると言う仕組みです。
このことを「PATHを通す」といいます。
※参考記事
https://qiita.com/sta/items/63e1048025d1830d12fd・rbenvのPATHを通すコマンド
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile・ターミナルを起動したときに自動的にrbenvを使用できるようにする設定
$ echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile※参考記事
https://qiita.com/soarflat/items/d5015bec37f8a8254380最後にsourceコマンドを打ち、ファイルを再読み込みしておきましょう。
source ~/.bash_profilerubyのインストール
rbenvがインストールできたら早速rubyをインストールします。
先ほどインストールしたrbenvのコマンドを使い、バージョン管理しながらインストールを行っていきます。
rubyをインストールする前に、現在インストールできるrubyのバージョンを確認しておきます。
$ rbenv install -l下図のようにインストール可能なバージョンが一覧で表示されます。(一部抜粋)
それではインストールしたいRubyのバージョンを指定して実行します。今回はバージョン2.6.5をインストールすることにします。$ rbenv install 2.6.5こちらもインストールできたかの確認をしておきましょう。
ruby -vgemのインストール
下記の2つのgemをインストールしていきます。
・bundler
・rails$ gem install bundler今回はrailsの5.2.0のバージョンをインストールすることにします。
$ gem install rails --version="~>5.2.0"こちらも
$ rails -vによりインストール完了の確認をしておきましょう
最後にデータベースのインストール
最後にデータベースのインストールをして環境構築は終了です!
今回はよく使われるmysqlというデータベースをインストールしておきます。
バージョンは5.7をインストールします。$ brew install mysql@5.7こちらもPATHを通す作業を行っておきます。
echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.bash_profileその後下記コマンドにより、設定の再読み込みをします。
source ~/.bash_profileここまでできたらmysqlを起動するコマンドを打ち込み、起動させましょう。
$ brew services start mysql@5.7下記のように表示されれば正しく起動しています。
Starting MySQL SUCCESS!環境構築終了!
簡素的ですが、これで一通りrailsを使っていく環境が整いました。
環境構築はコマンドを実行していくだけの簡単な作業に思えるかも知れませんが、様々なソフトウェアをインストールする際にエラーが発生しやすく初心者殺しと言われる1つの大きな壁です。
今回は最低限必要なソフロウェアをインストールするコマンドについて記しましたが、
おそらくインストールを行っている途中でエラーが発生してうまく行かないところが出てくるかも知れません。その時はエラーの内容を調べてどうにか頑張ってみてください。
以上、簡単ですが環境構築の手助けになればと思います。
- 投稿日:2020-04-05T20:02:39+09:00
IBM i (旧AS400)の自己学習メモ0�5 IBM i Access Client SolutionsをMacにインストール
Mocha TN5250 Lite
だとコードページの1399が選択肢に出てこず、日本語データを扱うような環境としては不十分だと感じたので、ACS(IBM i Access Client Solutions)の環境を用意したいと思います。Javaのインストール
ACSを利用するために、Java SE 8u241をインストールします。
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.htmlTerminalから
java -version
を実行して以下のようになっていれば準備OK$ java -version java version "1.8.0_241" Java(TM) SE Runtime Environment (build 1.8.0_241-b07) Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)ACSのインストール
ACSのダウンロードページから、ACSをダウンロードします。
https://www.ibm.com/services/forms/preLogin.do?source=swg-ia
ダウンロードしたzipを解凍し、IBMiAccess_v1r1 -> Mac_Application -> install_acs を実行する。
開発元が不明のためこのままではインストールできないよ。という警告がMacではよく出るが、
そんな時はシステム環境設定 -> セキュリティとプライバシーから、「このまま開く」を押下する。なんか色々インストールしますか? Yes or Noと聞かれるが、とりあえず全部Yesでインストール。
ACSの設定→フリーのIBM i開発環境へ接続
ACSを起動する。
一番下までスクロールして「はい」を押下。
ACSが起動する。
左ペインから[管理]->[5250セッション管理機能]を選択。新規ディスプレイ・セッションボタンを押下。
以下の画面イメージを参考に設定する。
今回は1399を利用したかったため、コードページを1399に設定。
設定が完了したらOKボタンを押下。
- 投稿日:2020-04-05T18:11:51+09:00
シンボリックリンクとハードリンクの違いって?
シンボリックリンクとハードリンクの違いや使い分けについてご存知でしょうか?
自分はよく知らなかったので、関連する記事をいろいろ探してみました。図として直感的にわかりやすかったのはこちらの記事。
それぞれの特徴についてもわかりやすく書かれています。
https://eng-entrance.com/linux-permission-linkシンボリックリンク
シンボリックリンクはショートカットというイメージがわかりやすいのではないでしょうか?
original_fname
というファイルを参照するシンボリックリンクsymkink_fname
を作成することを考えてみましょう。./original_fname
./symlink_fnameここで
cat ./symlink_fname
を実行すると
cat ./original_fname
と同等の操作を意味するはずです。
つまり、rm ./symlink_fname
は
rm ./original_fname
と同等になってしまい、元のファイル
original_fname
を削除することになってしまいます。これに関して、シンボリックリンク削除時の注意点が例えばこの記事に書かれています。
https://mimirswell.ggnet.co.jp/blog-165
要はrm
コマンドでもリンクを削除できるけど、危ないからunlink
を使おうね、という話です。ハードリンク
これに対し、ハードリンクはどうでしょうか。
./original_fname
./hardlink_fnameそれぞれのパスは同じ実体ファイルを指し示すことになります。
この状態でopen ./hardkink_fnameを実行すると、
open <実体ファイル>の意味になります。
面白いのは、実体ファイルへの参照カウンタのようなものがあり、rm ./hardkink_fname
を実行すると、
./hardkink_fname
というパスは削除されてしまいますが、実体ファイルは削除されません。なぜなら、今考えている状況だと元々
./original_fname
./hardlink_fname
の2つの「参照」が存在していたため、「参照」を1つ削除してもまだ1つ残っているからです。そして、「参照」の数が0になると、実体も削除されるらしいです。
inodeと実体ファイル
今までイメージを掴むために「実体」や「参照」という言葉を使ってきましたが、きちんと説明するにはinodeに触れる必要があります。
わかりやすいのはこちらの記事でしょうか。
https://qiita.com/katsuo5/items/fc57eaa9330d318ee342ハードリンクの使い道
一般的に使われるのはシンボリックリンクの方らしいですね。
では逆に、ハードリンクはいつ使われるのでしょうか?こちらの質問に対する回答を読むと、なるほど!と思えます。
https://q.hatena.ne.jp/1265361495IMAPサーバで、送信先が複数人のメールを参照するのに使われているとのこと。
コピーせずに済む&適切に削除が行われる、ということですね。...勉強になりました!
- 投稿日:2020-04-05T17:59:12+09:00
【Applescript】MacからeGPUと外付けHDDを一気に取り外す
やりたいこと
家でeGPUや外付けHDDを繋いで使っているMacを持ち出す際、そのままケーブルを引っこ抜くと警告が出るので、ちゃんと取り外しの操作をしてからケーブルを抜きたい。
方法
on run tell the application "Finder" to eject (every disk whose ejectable is true) do shell script "/usr/bin/SafeEjectGPU Eject" end run2行目でHDD類の取り外し、3行目でeGPUの取り外しを行っています。
あとはそのまま.app化(ファイル-書き出す でファイルフォーマットにアプリケーションを選択)するなり、Automatorでサービス化してショートカットキーを割り当てるなり、ご自由に。参考
簡単にMacから全てのディスクを取り外す
Proper way to disconnect eGPU through scripting |Apple Developer Forums
- 投稿日:2020-04-05T15:30:00+09:00
macOS Catalinaで死んだLilypondをDocker上で動かす
背景
macOS Catalinaにおいて、32-bit アプリケーションが切り捨てられたことを受けてLilyPondが死にました。
ということでDockerを使って動かそうという話です。
使用したDockerfile等はseekworser/lilypond-dockerfileに登録してあります。Implementation
基本的にはDocker image上でLilyPondを動かすだけですが、なるべく意識せずに動かせるように、
- Docker image上に/lilypondディレクトリを作成
- Host側のカレントワーキングディレクトリを/lilypondにマウントし、container起動時に/lilypond内でlilypondコマンドを実行
ということをしています。実際に使用したDockerfileは次の通りです。
Dockerfilefrom ubuntu:bionic copy entrypoint /entrypoint run sed -i.bak -e "s%http://archive.ubuntu.com/ubuntu/%http://ftp.jaist.ac.jp/pub/Linux/ubuntu/%g" /etc/apt/sources.list \ && apt update \ && apt -y install lilypond \ && chmod +x /entrypoint entrypoint ["/entrypoint"]entrypoint#! /bin/bash cd /lilypond lilypond "$@"また、起動時にいちいちdockerコマンドを打つのは面倒なのでHost側のlilypondを書き換えておきます。(Host側にインストールしていたlilypondはアンインストールしておきます。)
lilypond#! /bin/bash docker run --rm -v $(pwd):/lilypond seekworser/lilypond "$@"上記のファイルを作成して/usr/local/binに置き、chmod +xすれば完成です。
macOS Catalina上でlilypondが動きました!
やってみて
○ 元々、別でインストールしていたLaTeXのghostscriptとLilyPondのghostscriptが2つあって、参照がぐちゃぐちゃになっていた(一回それでハマった)ので、Docker上で環境を分離できたのはよかった。
○ 想定していたほど起動が遅いわけではない。× Docker image上にLaTeXを別でインストールする関係で、Docker imageのサイズが1.3 GBくらいある。(確か元々はlocalのLaTeXが使えてた...はず)
- 投稿日:2020-04-05T15:28:01+09:00
vim swapファイル 削除
- 投稿日:2020-04-05T15:24:11+09:00