感想はじめてのLinux系カスペルスキーできた環境についてここのところ『スッキリわかるC言語』という本でC言語の勉強をしていました。その本では、VirtualBoxとVagrantによる仮想マシン上の開発環境を用意しており、ガイドに従ってインストールをすすめるだけで環境構築が完了するのですが、その環境は私のPCには重すぎでした。それにWindows側とのファイルのやり取りもちょっと面倒なので、もうすこし気軽に勉強できる環境を作りたいなと思いました。Linux(WSL)を使えばWindows上にLinux環境を作れるうえにWindows側とのファイルのやりとりも比較的シームレスでなおかつそんなに重くないらしい、とのこと。うずっときたので勉強そっちのけでWSLの環境づくりに走りました。ご注意2019年5月5日ごろの情報です。初心者がわけわからないままネットで調べては試してみただけの記録です。勘違いなどが含まれる可能性もありますので、万が一参考にする場合は気を付けてください。Linux(WSL)は、Windows10上で仮想マシンを使用せずにLinuxの実行ファイルを利用できるようになる仕組みです。仮想マシンではないのでリソース消費が少なくて済むようです。カスペルスキーを使っている場合セキュリティソフトにカスペルスキー2019を使っているんですが、その監視のせいで以下のセッティング中にたびたびエラーが生じました。エラーの際一時的に次のようにポートの監視を外すとすんなり解決する場合が多かったので記しておきます。左下の歯車アイコン>詳細>ネットワーク>ネットワークポートの「選択...」と進み、ポート443や80を右クリックして「無効にする」ことで監視が外れます。このまま外しっぱなしでもいいというサイトもありましたが、私は一応用が済んだら元に戻しています。「ネットワークポート」の下の「暗号化された接続のスキャン」を外すとエラーを回避できるケースもありましたが、それはその時に説明します。検索インストールUbuntu起動ユーザー名とパスワードを設定する。パスワードはキーを打ち込んでも何も表示されないが入力はされているので注意。リポジトリの変更デフォルトではapt(ソフトウェアのパッケージ管理システム)のリポジトリ(パッケージの保管場所)が海外サーバーになっていて通信速度が遅いです。日本のサーバーに変更することで速くなります。以下はJaistのサーバーに変更するコマンドの引用です。upgrade何か聞かれたらYキー押してEnter。パーミッションを変更WSLはデフォルトではumaskが0000になっていて、パーミッションがディレクトリで777、ファイルで666となっています。これはだれでもファイルを書き換えられてよくないらしいので、所有者以外に対しては読み取り権限だけに制限するように変更します。ubuntuのホームディレクトリにある隠しファイルの.profileを編集します。今回はvimというエディタを使います。022というコメントの#を取り、escキーで挿入モードを終了、:wqと打ってエンターキーで保存して編集終了します。ミスしたときは:q!で保存せずに編集終了することもできます。/etc/wsl.confも編集します。/etc/wsl.confで次のように入力して保存します。+Escキーでタスクマネージャーを開き、[サービス]タブ内のLxssManagerを右クリックして「再起動」。umask0022と出たら成功です。.profileを編集せずにwsl.confのほうでmetadataの後ろに,umask=22,fmask=11などと設定しているサイトが結構あったんですが、試してみたらumaskは0000から変わらなかったです。上記の.profileを編集する方法ならうまくいきました。.profileを編集するやり方でもumaskの値が0000から変わらなかったり、0000に戻ってしまった場合は、.profileより優先的に読み込むファイルが出来ていたりして、そもそも読み込まれていない可能性を疑ってみるといいかもしれません。~/.bash_profile、~/.bash_loginが存在する場合そちらが優先的に読み込まれるようです。後述のfishをデフォルトシェルにするとfishの設定ファイルを使うので、bashの設定ファイルは無視されるようです。次のページの通りにやりました。ここはカスペルスキーの妨害が激しかったので前述のやり方で監視を外したほうがスムーズにいくと思います。記法が異なったりしていてfishの設定ファイルにbashの設定を移植するのが大変そうなのでやめておきました。起動するように設定します。~/.bashrc以下の行を追加します。fishこれでデフォルトシェルがbashのままfishを自動で起動できます。--norcコマンドで切り替えます。Linuxちなみに上のやり方だと次のページのように、今後インストールするものによってはエラーが出る場合もあるらしいです。fishが最後に読み込まれるようにbashの設定ファイルを修正すればよさそうです。参考:デフォルトシェルをfishに変えるなこのあとfisherというfish用のプラグインマネージャをインストールしてプラグインを導入しようとしたんですが、やたらとエラーになってコンソールが操作不能になる上検索してもよくわからなかったので諦めました。fish使わないほうが平和な気がしてきた。生魚で行ってみようと思います。デフォルトのbashよりは十分便利だし。VSCodeVSCodeのsettngs.jsonに次のようにパスを追加することで、WSLのターミナルをVSCode内に開けるようになります。"C:\\Windows\\System32\\wsl.exe",コンソールはCtrl+@で開くことができます。VSCodeでターミナルを開くとカレントディレクトリがプロジェクトフォルダの場所になります。ちなみにsettings.jsonの開き方は、ファイル>基本設定>設定と進むと次の画像のような画面になるので、右上の”{}“をクリックすると開きます(2019年5月5日現在)。"C:\\tools\\wslgit.exe",たとえばこんな感じでパスを追加します(例はC:\tools\に入れた場合)。++再頒布可能パッケージをインストールする必要があるみたいです。bashを立ち上げずにすむぞーとおもったらなんかpushがエラーで通りません。terminated.カスペルスキーで設定(左下の歯車アイコン)>詳細>ネットワーク>「暗号化された接続のスキャン」の下の「除外リストの管理」>「追加」ときて「ドメイン名」に”https://github.com”を入力し「ステータス」を「有効」にして「追加」これで通りました。除外設定を削除するとまたpushが通らなくなってしまうのでこのままで行こうと思います。Manager”を使ってユーザー名とパスワードを省略していました。今回WSLのコンソールからhttps接続してみるとpush時などにユーザー名とパスの入力を毎回求められるので面倒です。ManagerをWSLで使う方法がばっちし書いてありました。引用させていただくと、次のようなコマンドです(パスの部分はGitのインストールフォルダによって変わります)。Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"ところがgit-credential-manager.exeがパーミッションエラーで弾かれてしまいました。いじってみたところ、エクスプローラで”git-credential-manager.exe”を右クリックし、プロパティ>「セキュリティ」タブ>「編集」ボタン>「Users」をクリック>「書き込み」にチェック>「適用」>「OK」>「OK」このようにしてみると入力なしでpush等できました。その後「書き込み」のチェックを外してみましたが、そのままユーザー名などの入力なしでpushできました。意味がよくわかりませんが、うまくいったのでよしとします。Manager単体でインストールしてもいけるかもです(試してないですが)。Cコンパイラなど次のコマンドでC/C++コンパイラやMakeなどの標準開発ツール一式をインストールできます。build-essentialWindows側のフォルダにある.cファイルをVSCodeのコンソールからコンパイルすることができました。ついでにVSCodeの拡張機能から「C/C++」をインストールしておきました。hugoでやるとバージョンが古すぎるので、以下のようにします。新しいバージョンをダウンロード。最新版の”hugo_<バージョン番号>_Linux-64bit.deb”を右クリックして「リンクのアドレスをコピー」し、wgetコマンドなどでダウンロードします。https://github.com/gohugoio/hugo/releases/download/v0.55.5/hugo_0.55.5_Linux-64bit.debこのときカスペルスキーでポート443の監視を外さないとエラーになりました。ダウンロードが終わったら監視を戻しました。2019-05-02T13:03:36Z最新版になってます。これでVSCodeだけでブログの更新ができるようになりました。なにやらおかしくなった場合わりと手軽にUbuntuの再インストールをしてやりなおすことができます。コントロールパネル>アプリ>アプリと機能>Ubuntuをクリック>詳細オプション>リセットをクリック感想はじめてのLinux系Linuxはほとんど接点なかったので調べるのが大変でした。パーミッションエラーがやたら出てつらい。カスペルスキーあととにかくカスペルスキーでハマりました。防いでるってことかもしれないけど、こう頻繁に通信エラーになるとさすがに面倒くさいです。次は違うセキュリティソフトも検討するかも。できた環境についてWSL内のubuntuにインストールしたアプリケーションでWindows側のファイルを普通に操作できるし私のPCでもそこまで重くもないです。Windows用のアプリケーションをインストールして使ってるのとあまり変わらない感覚です。VSCodeだけで.cファイルのコンパイルとGitとHugoのブログ更新ができるようになったので今のところ満足です。