class: title, smokescreen, shelf, no-footer # Perl演習環境の構築 <div class=footnote> <small> 2022/05/19,21で気づいた点を反映 </small> </div> --- class: compact # [まとめ]各OSでのPerl演習環境の構築 <div class=footnote> <small> (脚注1) 入っているperlバージョンはOSによって異なると思いますが、 <B>素のperl</B>は過去のバージョンと互換性があるので、 Perl入学式で教える基本的な内容であれば、どのOSでも問題ないはずです。 <br> (<B>素のPerl?</B> = 呪文を唱えると互換性を捨てられます。逆に唱えなければ互換性あり) <br> (脚注2) 現在NetBSDとWindows以外は最初からperlがOSに入っていると思います。 バークレイ版Unix(BSD Unix)の場合、 NetBSD以外は、そのまま使ってください。 NetBSDではpkgsrcでperlをインストールする必要があります。 Windowsの場合WSL2以前には色々な方法が乱立していますが、 それぞれに落とし穴があるので、これからはWSL2を推奨します。 ただし<B>低スペックのPCでWSL2を使うのは厳しい</B>ので、 そこだけ注意してください </small> </div> - LinuxとChromebookのターミナルを使っている人は、そのまま御利用ください - MacOSXのターミナルを使う人も、そのまま御利用ください - 以下ではWindowsユーザの環境を構築していきます --- class: title, smokescreen, shelf, no-footer # Windos 10,11 上の Perl 環境構築 <div class=footnote> <small> </small> </div> --- class: compact # おおまかな手順 <div class=footnote> <small> (脚注1) ターミナルソフトは、いくつかありますが、 最新のOSSであるWindows Terminalを使いましょう <br> (脚注2) WSL2 は仮想環境上で Linux を実行する仕組みです。 素直な Linux 環境が用意されます <br> (脚注3) WSL 環境へのアクセスを円滑にするため VSCode を推奨します </small> </div> 1. ターミナル(windows terminal)を開いてください 1. WSL2 を有効にします 1. VSCode をインストールします --- class: compact # ターミナル(windows terminal)を開く <div class=footnote> <small> https://docs.microsoft.com/ja-jp/windows/terminal/images/requested-themes.gif </small> </div> - win11 ではWindows Terminalが初めから入っているとのことですが、 入っていない人もいるようです(updateの進捗による?)。 その場合 score から入れてください(次頁) - 見かけ上Powerl shellが起動してきますが、それで正解です (裏側がwindows terminal)  --- class: compact # Microsoft StoreからWindows terminalを入れる <div class=footnote> <small> https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701?hl=ja-jp&gl=JP </small> </div> - Microsoft Storeを開きwindows terminalをインストールしてください(無料) - [こちら](https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701?hl=ja-jp&gl=JP)からインストール  --- class: compact # WSL2 を有効にする <div class=footnote> <small> (脚注) 3代目の社長(<- azureをやってた人)になって Microsoft も大きく変わったもんだよ〜 </small> </div> - 開いているターミナル(windows terminal)で次のコマンドを実行してください <br> (wslのあとに**スペース**、そして**-を2回**つけてinstall) ``` wsl --install ``` - 処理が終わればLinux (仮想)環境が用意されます。 はじめからperlが入っている**変な小細工のない素直なLinux環境**が使えるので、 これがおすすめです - **OS(Linux)一式をダウンロードするので、そこそこ時間がかかります** - インストールが終了すると再起動するように促されるので**再起動**してください [参考] - [WSLのインストール(Microsoft公式)](https://docs.microsoft.com/ja-jp/windows/wsl/install) --- class: center,compact #  --- class: compact # 作成したLinux仮想環境のユーザ名とパスワードを設定 <div class=footnote> <small> (脚注) 正確を期すると、許されるユーザ名(正規表現)は <quote> ^[a-z][-a-z0-9_]*$ </quote> です(/etc/adduser.confを参照) </small> </div> - インストールがうまくいっていれば、再起動後、 **[スタート]メニューからubuntu**をクリック (ubuntuがデフォルトのLinuxの種類;別種のLinuxを入れた人は入れたLinux名) - (初回だけは)**ユーザを作成するよう促され**るので設定してください - **作成するユーザ名と設定するパスワード**は**WSLで作成したOS(仮想環境)専用**です。 Windowsとは無関係。 **Windows側のユーザ名と一致させる必要はありません** - ユーザ名は**小文字の英数字(先頭は数字禁止)**にしてください。例: - ok b29029290 (学籍番号) - ok bibichitose - ok bibi-chitose - ok bibi_chitose - ダメ bibi.chitose - ダメ bibi@chitose - ダメ 551butaman - 参考資料: [Linux のユーザー名とパスワードを設定する(Microsoft 公式)](https://docs.microsoft.com/ja-jp/windows/wsl/setup/environment#set-up-your-linux-username-and-password) --- class: compact # VSCode をインストール <div class=footnote> <small> (脚注) WSL 環境へのアクセスを円滑にするため VSCode を推奨しています。 好きなエディタ(e.g. viとかemacsとか?:-)を使ってもらってもよいのですが、 エラーが出た時の対応は各自やってもらうことになります </small> </div> https://code.visualstudio.com/download  --- class: title, smokescreen, shelf, no-footer # 動作確認<br><small>〜仮想環境内にフォルダとファイルを作る〜</small> <div class=footnote> <small> </small> </div> --- class: compact # ソースコードを置く作業フォルダをつくろう <div class=footnote> <small> </small> </div> - この先、たくさんのファイル(ソースコード)を作ることになります。 ホームフォルダを散らかさないように、Perl入学式専用のフォルダを作り、そこにファイルを作っていきましょう - **[注意]** VSCodeをいれたので、右クリックすれば、なんとなく使えるとおもいますが、 **普通に操作をするとWindows上にフォルダやファイルを作成**してしまいます - わたしたちがしたいのは、 **VSCodeを使い、Linux環境上にフォルダやファイルを作成する**ことです - WSLで作成したLinux環境(仮想環境)は、 Windows上に、 もう一つ別のOSをいれて動かしている状態です。 この2つの区別を意識してください --- class: compact # 動作確認(1): WSL内にフォルダを作成 <div class=footnote> <small> (脚注1) フォルダとディレクトリは同じ意味です。 OSによって言い回しが異なる用語の典型例になります。 OSごとの流儀というか派閥というか... <br> (脚注2) mkdirコマンドはmake directory (ようするに「フォルダを作成」という意味)の頭文字 <br> (脚注3) /home/usernameの部分は各自で異なります </small> </div> 1. まずWSLの中でperl-entranceというフォルダを作成してください。 <br> 具体的には`mkdir perl-entrance`を実行してください (mkdirとperl-entranceの間には**スペース**が必要です。 コマンドは普通に英語準拠の文章を入力しているだけなので、 必ず意味のある区切りごとにスペースが入ることを忘れずに) ``` /home/username$ mkdir perl-entrance ``` --- class: compact # 動作確認(2): WSL内でVSCodeを起動する <div class=footnote> <small> (脚注1) Windows側ではなく<B>仮想環境上でVSCodeを起動</B>しています (脚注2) VSCodeにWSL用プラグインが必要なためVSCodeが自動的にインストールを始めます。 VSCodeえらいですね〜 </small> </div> 1. その場で`code perl-entrance`を実行してください ``` /home/username$ code perl-entrance ``` 1. (初回では)インストールが始まると思います。それで正しいので見守ってください 1. VSCodeが立ち上がってきましたか? 参考資料 - [Linux 用 Windows サブシステムで Visual Studio Code の使用を開始する(Microsoft公式)](https://docs.microsoft.com/ja-jp/windows/wsl/tutorials/wsl-vscode) --- class: compact # 動作確認(3): VSCodeでファイルを作成してみる <div class=footnote> <small> (脚注) VSCodeの説明はしませんが、 Microsoft製品なのでOffice製品などと似たようなメニュー構成のはずです。 メニューを適当に叩いて、それらしいメニューをクリックしてみてください </small> </div> 1. VSCodeでhello.plという名前のファイルを作成してみてください (とりあえず中身は無しでOK) 1. (かならず)**保存**してください 1. VSCodeの上部メニューの右端あたりにある**「ターミナル」をクリック** 1. (WSL内がみえる)ターミナルが新しく起動してきます 1. **新しく起動したターミナルで`ls`**してみてください ``` ls ``` hello.plという名前が表示されたらOKです。 VSCodeからWSL環境のファイルの作成が出来ているという動作の確認が出来ました! --- class: compact # [さいごに] WSL環境が汚れてきたら?壊してしまったら? - **[重要] 仮想環境のファイル群をバックアップしてください** - その後、**仮想環境を廃棄し、もういちど最初からつくりなおして**ください。 素直な環境がよみがえります - WSLとは、Windows上に、もうひとつ別のOSを入れる技術です - WSL側で変なことをしてもWindows側には影響ありません 逆にWindows側の汚れがWSL側に影響することもありません - **作成したフォルダやファイルも仮想環境上にあります。 仮想環境を削除すると当然これらのフォルダやファイルも削除されてしまいます** - **[重要] 仮想環境のファイル群をバックアップ**後に、 仮想環境を削除/廃棄することを忘れないでください --- class: compact # [補足]コマンドライン操作(CLI)について <div class=footnote> <small> (脚注1) Unix上で生活している我々は、 マウスでぽちぽちするより、 コマンド操作の方がはるかに高速なのでCLIですけどもね (脚注2) <B>シェル入学式</B>も要望があれば、やりますけどね〜 </small> </div> - 公式テキストにはコマンドで操作する例(CLI)が出てきますが、 Perlの本題でもないし、 とりあえず無理に覚えなくてもよいでしょう。 - ただし、もっと上を目指すならCLIに慣れていくようにしてください - 単なるアプリのプログラマとかコーダではなく、 「**クラウドのサーバを操作**する」 とか 「**dockerコンテナを作成**する」 には**Unixをコマンドで操作する技術が必要**です。 いわゆる**シェルプログラミング(Unixのターミナルの言語)の基礎が分かる**ことが望まれます。 (基礎 = 変数、条件文、繰り返しあたりまでで十分、関数とかは不要)。 これを教える「シェル入学式 SEASON 1」のテキストもあります。 クリーニングしたら公開しようと思ってるんだけど、なかなか進まなくてね`(_O_)`