LoginSignup
1
3

More than 1 year has passed since last update.

Macで簡単にLinux環境を構築して「1日1問、半年以内に習得 シェル・ワンライナー160本ノック」を行う方法

Last updated at Posted at 2022-05-21

Macでもシェルワンライナーがやりたい!!

最初の2つの段落は導入に関係ないので、飛ばしたい方は「Limaの導入準備」からお読みください。

※盛大な勘違いによりMacには最新のbashは入らないのだろうと盛大に勘違いしていました。
2022-05-22に記事にHomebrewを使ったbashのアップデート方法を追加しました!
1番簡単にMacでシェルワンライナーを使う方法はそちらになります。

【導入方法】
・Homebrewをインストールする。

brew install bash

・ターミナルを再起動する。

bash

これでアップデートされたbashが起動します。
**

今回はWindowsのWSL2のように使えるMacのLimaでシェルワンライナーを行ってみたいと思います。

その前に、Limaを導入する以外の方法でシェルワンライナーを行う方法はどんな方法があるかを紹介したいと思います。

私が今まで取っていた方法は下記の3つです。

①webshを使う

こちらのサイトでは基本的なLinuxコマンドでの操作を体感することができます。
手軽にコマンドを実行して、Twitterに投稿できるので非常に便利です。

ただ、Githubからシェルワンライナーの問題がダウンロードできないなど一部のシェルワンライナーの問題をこなすのには不向きです。

②VirtualBoxを使う、もしくはデュアルブート環境を作る

VirtualBoxは面倒くさい・・・。
ただそれだけです。

また、Linux専用のパソコンで複数のLinuxをブートできる環境を作るのは良いと思うのですがMacではやりたくないなあと思いました。

③zashにHomebrewを導入して簡易的なbash環境を作る。

これは何が入っていて、何が入っていないのか?という管理がめんどくさかったです。

そうです!MacでちょっとLinuxコマンドを練習しようと思うと意外とめんどくさいのです!
WSL2の様に簡単に起動できて色々できるものはないだろうか?

それがLimaです。

Limaってどういう物ですか?

Limaの機能は主に2つです。

①Linux仮想マシンをMacOS上で提供

②containerdの起動
(Dockerなどのコンテナサービスのバックエンド)

なので、Limaを使えばより便利にMac上でDockerと連携することができます。
むしろこっちをメインに使っている方の方が絶対に多いです・・・。

今回はそんなLimaをLinux仮想マシンの起動目的のみで利用するというわけです。

使い心地としてはWASL2に近いです。

Limaの導入準備

シェルワンライナーをやるための準備を行います。

基本的なターミナル操作の知識がある前提でお話しします。

Limaを導入する前に下記の要件を満たしてください。

要件:Homebrewを導入済

Limaのインストールから環境設定まで

下記のコマンドをターミナル上で実行します。

brew install lima

インストール完了後に更に下記のコマンドを実行します。

limactl start

下記のような画像の画面が立ち上がります。

シェルワンライナーをやるだけでしたら、最上部のProceed with the current configurationを選択するだけです。

自動でUbuntuがインストールされます。

Choose another exampleを選択すればインストールするLinuxディストリビューションを選択できます。

スクリーンショット 2022-05-21 17.49.12.png

インストール終了後は

lima

で起動することができます。

これで各種Linuxコマンドを自由に使えるようになりました。
思う存分シェルワンライナーを楽しみましょう!!

※Limaはパーミッション許可を設定しないと書き込みができないので、デフォルトで書き込み権限のある「Users/tmp」に移動してshell-gei160のリポジトリをgit cloneしてください。
インストール後の書き込みパーミッションの変更方法については現在調べています。
普通のchmodじゃ出来ない気がするのですが気のせい・・・?

今後新しいLimaのインスタンス(別のLinuxディストリビューション)を作りたいときは

limactl start --name=NAME 
//NAME部分を自由に指定
//起動時もこのコマンドを使います

他に基本的な操作として、インスタンスの停止と削除があります。

limactl stop NAME 
//NAMEは作成時に指定した名前
limactl delete NAME 
//stopしていないと削除できません
1
3
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
1
3