はじめに
嬉しいことに最近身の回りにMacerが増え,サポートをする機会が増えてきています
その中でよく対応する,授業でCやPython,Javaを書くけど,Macではどうすればいいの?という質問に対して,この記事で解説したいと思います.
本来VSCodeには,プログラムのデバッグなどが非常に便利になる機能があるのですが,まだ導入して間もない頃はなかなかとっつきにくいものです.
なので,とりあえず各種ソフトウェアをインストールしてVSCodeをエディタとして使えるように.そしてVSCode上のターミナルを使用してあらゆる言語のファイルを(コンパイル+)実行できるようにするところまで解説します.
なにはともあれHomebrew
Macでは,Homebrewというパッケージマネージャを使うことができます.簡潔には.AppStoreのコマンド版,とでも言えば良いのでしょうか.
UbuntuやCentOSなどを使ったことのある人は,apt, dnf, yumのMac版と言えば分かると思います.
開発系のソフトウェアは,もちろん各々のWebサイトから都度ダウンロードしてきて使うこともできます.ただし,モノによっては動作に他のソフトが必要(依存関係)だったり,別のソフトと何かしらが競合したり,なかなか一筋縄ではいかないことが少なくありません.それに,アップデートだって面倒です.
ここで出てくるのが,Homebrewです.その辺諸々を勝手にやってくれます.
何かをインストールしたいときは
brew install 〇〇
だけでインストールが完了します.sudo?そんなの要りません.(つけると怒られます.)
さて,肝心のHomebrewの導入方法ですが,非常に簡単です.
公式サイトに行ってみましょう.
brew.sh
トップに長いコマンドが書いてあると思いますので,それをコピーしてMacのターミナルに貼り付け,実行します.
ターミナルの開き方がわからない人は,⌘+スペースキーを押して,ターミナルと検索してみてください.これからよく使うので,Dockに入れておくことをおすすめします.
実行するとズラズラっと流れていきます.終わるのを待ちましょう.
Homebrewの初期設定
初期設定と書きましたが,嘘です.今後も頻繁に使います.
ターミナルを開き.
brew update
を実行してください.(以降コマンドはターミナルに入れていきますよ.)
これは,Homebrewでインストールできるソフトの一覧を更新するコマンドです.
AppStoreなどではアプリの名前を検索すればすぐに出てきますが,前述のUbuntuやCentOSであっても,この,一覧を更新する作業をアプリをインストールする前に必ず行う必要があります.(Homebrewでなければコマンドは違いますが)
そして,前回このコマンドを実行したとき以降に,それぞれのソフトが更新されているかどうかも確認してくれます.
今後Homebrewでいろんなソフトをインストールしていき,ふとbrew updateを行ったときに太字+✅で書かれたソフトが表示されたら新しいバージョンが公開されている印です.
そんなときは,
brew upgrade
と実行すると,アップデートが必要なソフトを全て自動でアップデートしてくれます.
brew upgrade (ソフト名)
のように,何かソフト名を指定してそれだけアップデートすることもできます.
brew update → リストの更新
brew upgrade → ソフトを実際にアップデート
この2つだけ,覚えておきましょう.間違えたとしても特に問題は起こりませんが.
VSCodeのダウンロード・インストール
脇道にそれました.本題に戻ります.
VScodeのダウンロードとインストールですが,こちらもHomebrewを使って簡単にできます.いちいちGoogleで「VSCode Mac ダウンロード」なんて検索しなくていいです.延々と「次へ」を押す必要もありません.
brew install visual-studio-code
を実行します.
🍺 ←これが出ていれば,インストール完了の印です.
アプリの一覧を見てみると,さも前から存在していたかのようにVSCodeのアイコンが鎮座していることと思います.
見当たらなければ,ターミナルで
code
とだけ打って実行してみてください.なんと不思議,VSCodeが立ち上がります.(実はvimのように,code test.c などと実行するとVSCodeでファイルを開くこともできます.優秀ですね. )
今度こそ本当です.1回やれば大丈夫.
まずは日本語化しましょう.そのためには,日本語化する機能を持つ拡張機能をインストールします.
拡張機能は,VSCode左のバーにある,4つの四角いブロックのアイコンを押すと探せます.
ここですね.
面倒なので一気に入れていきます.万人受けしそうなものを書き出しましたので,以下から必要そうなものを検索してみて,緑色のインストールボタンを押すだけです.
Japanese Language Pack
日本語化する拡張機能.
Duplicate action
ファイルを右クリックしたときに,複製機能を使えるようにしてくれる拡張機能.前のプログラムやテンプレートから作りたいときに便利.
PrintCode
定期試験など,コードを(色付けしたまま)印刷したいときに便利.
終わりの方に解説しますが,これを入れるとSSH接続先のファイルがさも自分のPC上にあるかのような状態で編集・作成・削除などができるようになります.学科の演習サーバにアクセスする人は入れておくと便利.
CSVファイルを見やすく開けるようにしてくれる拡張機能
.pyのファイルを開いたときに色付けやデバッグ,自動整形やテストなどなど,いろんなことをしてくれる.Pythonを書くなら入れよう.
うちはまだC書きますよね.書くなら入れておこう.
Java Extension Pack
Java書くなら.
とりあえずこれくらいでしょうか.
たぶん右下に再読み込みが必要ですと出ていると思います.
再読み込みを押します.(一瞬VSCodeのウィンドウが閉じます)
あとは,⌘+ , (カンマ)を押します.設定画面が開きます.
各々の好きなようにカスタマイズしてください.
終わったら気持ち上の方にある☓で閉じます.
コンパイル・実行できるようにする
ここまでで,とりあえずファイルを編集するためのエディタの準備と,プログラムをコンパイル・実行するソフトを簡単に入れられるようにする準備が終わりました.
ここから,メインのプログラムをコンパイル・実行するソフトを用意していきます.
(実は先ほどの拡張機能によってこのまま実行することもできますが,いろんな環境に対応できるように&&授業の進め方にちょっと近づけて,地味にトラブったときに自力で対応できるようにするために見なかったことにします.)
C
brew install gcc
終わりです.
brew install python3
終わりです.
厳密にはいろいろありますが,
brew cask install java
終わりです.(caskを省いてもよいのですが,そうするとjavaの開発元ではないところがビルドしたデータを使っていくことになります.特殊なケースなので,今回はあまり気にせずcaskを挟んでください.)
たくさんインストールしたので,ここら辺で一度再起動しておくと安心かもしれません.しなくても問題はありませんが,こうやってたくさんのことをまとめて行うと稀におかしくなることがあります.一気にやったなぁというときは再起動しましょう.
コードを書いて実行してみる.
ここまでで準備は全て終了です.お疲れさまでした.
では実際にコードを書いてテストしてみましょう.
今回はJavaでやってみます.(あえて授業の方法に沿わせて行います.)
まずはVSCodeを立ち上げましょう.
左上の紙が2枚重なっているようなアイコンを押してファイルの一覧を出せる画面にして,フォルダーを開くから作業したいフォルダを開きます.
基本的にはFinder上での操作と変わりありません.
今回は空っぽのファイルから始めたいので,⌘+Nを押します.
システムの一時的な保管場所に,Untitled-1という名前の空のファイルができました.
このまま書いていっても良いのですが,うっかり電源ボタンを長押ししてしまったり,システムがクラッシュしたときに消し飛んでしまう可能性があります.まずは⌘+Sで保存場所と名前を決定してあげます.
フォルダを選んで,名前を書きます.この時,必ず拡張子(.c / .java / .py)まで入れてください.
プログラムを書きます.
まずはコンパイルしたいのですが,どこにjavac Test.javaと入れればよいのでしょうか.
いつものターミナルを使う?邪魔です.
実は,VSCodeの中にターミナルを出すことができます.
ここですね.
画面の下部にターミナルが出てきます.
javac Test.java
java Test
できました.
同じように,
python3 test.py
や,
gcc test.c
./a.out
なんかもできます.
慣れてきたら,ターミナルではなくVSCode上で実行・デバッグツールを使う方法を調べてみてください.非常に便利なツールが沢山揃っています.
【おまけ】SSH先のファイルを取り扱う
もし学科の演習サーバなどにファイルがある場合や,演習サーバ内にあるプログラムを使って提出しなければならない場合,これまで紹介した方法で取り扱うのは良策ではありません.
非常に便利な拡張機能がありますので,その使い方を紹介します.
先ほど紹介した,SSH FSという拡張機能は入っていますでしょうか.もしなかったら追加してください.
似た拡張機能として,Microsoftが作っているRemote - SSHという名前のものがありますが,まだ完成しておらず機能も足りないので間違ってこれを入れてしまわないように注意してください.
初期設定と使い方は友人が非常に丁寧な解説記事を書いていたのでそちらに誘導します.
こちらを読んでみてください.
使い方についてちょっと補足があるので,読み終わったら戻ってきてね.
loliver.hatenablog.jp
2020/10/21 追記 改訂されたようです.
blog.loliver.net
補足ですが,この方法で接続した場合,左に出てくるFinderのような画面やファイル自体はSSH先のサーバのものですが,先ほど説明したターミナルは自分のMacのものが起動しています.
そのため,例えばSSH先のサーバにあるプログラムを実行しようとしてそのままlsしても出てきません.
これを解決するためには,上の記事にある方法でサーバに接続した後,ターミナルの中でもSSH接続します.
つまり,VSCodeの下の方にあるターミナルで,
ssh (ユーザ名)@(サーバ) -p (ポート番号)
を実行します.毎回やるのも面倒なので,上の記事の後半で解説されている公開鍵認証方式を使用したり,その上でbashrcにエイリアスなんか登録したりすると最短1文字で接続できるようにもなりますね.よく分からなければ上のコマンドを実行するだけでいいです.
すると,エディタにはSSH先のファイルやディレクトリが読み込まれ,エディタの下にあるターミナルもSSH先のシェルが起動している状態となり,演習サーバ上のプログラムを演習サーバ上でコンパイルしたり実行したり,演習サーバ上にある提出用のプログラムを使用することが出来るようになります.
使い終わったら exit を忘れずに.
ちなみに,こんな感じでSSH接続した場合,さっきHomebrewを使って手元のMacの中に入れたPythonやJavaの実行環境は一切使いません.だってSSH先のファイルをSSH先のプログラムを使ってSSH先で実行していますから.
ではなぜこんなにたくさんのことをしたかというと,逆にこうしないとプログラムを書きたい(実行したい)ときに毎回学科の演習サーバにSSH接続しないといけないからです.
ここまでの内容を行えば,演習サーバに繋がなくても実行できる状況ができています.演習サーバが使えないとき,ネット環境が不安定なときも心配いりません.
ただし,Pythonには注意が必要です.
ライブラリをインポートしようとすると,できないことがあります.そういうときには,
pip3 install numpy
などのようにして必要なものを適宜ダウンロード&インストールしてください.
以上で説明を終わります.
お疲れさまでした.
(2022/10/29 補足)
Homebrewにおけるcaskの扱い方が大きく変わったことに伴い,表記を修正しました.