# プログラミング環境構築ガイド 〜Linux編〜
## 想定環境
Ubuntu のバージョン 20.04 以上を想定しています。
Arch Linux など別のディストリビューションを使用している方は... 玄人ですね。この記事を読むまでもないでしょう。
## このガイドの目標
- プログラムを書く最低限の環境を整える
- C/C++, Java, Python, Rust, Go を実行できるようにする
- AtCoder のアカウントを作成する
- (おまけ) ホームディレクトリ直下のディレクトリ名を英語にする
## Linux の更新
プログラミング環境を整える前に Linux を最新の状態に更新しておきます。
端末エミュレータ (ターミナルやコンソールとも呼ばれる) を起動してください。
Ubuntu では `Ctrl+Alt+T` で端末エミュレータを起動できます。
下記のコマンドを入力して Enter で実行してください。
```
sudo apt update && sudo apt upgrade -y
```

最初にパスワードを訊かれるので入力してください。
メッセージがたくさん表示されてインストールが完了します。
## コンパイラやランタイムのインストール
色々なプログラミング言語を使えるようにします。特に理由がなければ全てインストールしちゃいましょう。
下記に C/C++, Java, Python, Rust, Go のインストールをするコマンドを示します。それぞれ実行してください。
:::info
##### 下記のコマンドの意味について
- `sudo apt install {パッケージ名}` で指定したパッケージをインストールします。
`-y` を追加すると「インストールしますか?」の部分で Yes を打つ手間を省けます
- `{コマンド名} --version` でバージョン表示します。
もしバージョンが表示されずエラーになったらインストールに失敗しています。先輩に助けを求めてください。
:::
### C/C++
```
sudo apt install build-essential -y
gcc --version
```
### Java
`java` コマンドのバージョン表示は `--version` ではなく `-version` なので注意してください。
```
sudo apt install default-jdk -y
java -version
```
### Python
`python3` と `pip3` をインストールします。
```
sudo apt install python3 python3-pip
python3 --version
pip3 --version
```
### Rust
```
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
この時、下の画面が表示されたら **1** と入力してください。
```
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
>
```
そしたら以下のコマンドを実行してください。
```
source ~/.cargo/env
cargo --version
```
### Go
```
wget https://golang.org/dl/go1.16.3.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.16.3.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
echo 'export PATH=$PATH:$HOME/go/bin' >> ~/.profile
go version
```
すべてエラーなくバージョン情報が表示されたら、インストールが正常に完了したことになります。おめでとうございます。
## テキストエディタのインストール
続いてプログラムを書くための道具をインストールします。
この道具は「**テキストエディタ**」や単に「**エディタ**」と呼ばれます。
テキストエディタにはたくさんの種類がありますが、
高機能で世界で最も利用者数が多い **Visual Studio Code** をインストールすることにします。
:::info
Visual Sutdio Code は **VS Code** と略されることが多いです。
ちなみに **Visual Studio** という開発環境もあります(こっちは後ろに「Code」がない)。
Visual Studio と Visual Studio Code は別物です。
:::
せっかくなので、これから先自分で新しいものをインストールしたいときも似たような流れでできる方法を紹介します。
### (1) 公式ページからパッケージ情報のファイルをダウンロードする
まず [VS Codeの公式ページ](https://code.visualstudio.com/) へアクセスします。
「.deb」をクリックして VS Code のインストール情報に関するファイルをダウンロードします。
<img src="https://i.imgur.com/99azYI1.png" style="box-shadow: 0 0 8px 3px rgba(0, 0, 0, 0.4); margin: 10px;"/>
### (2) .deb ファイルをもとに VS Code をインストールする
端末エミュレータを起動して、.deb ファイルをダウンロードした先のディレクトリへ移動してください。
何も設定していなければ、おそらく `~/Downloads` (あるいは `~/ダウンロード`) ディレクトリの中に .deb ファイルが置かれていると思います。
```bash
cd ~/Downloads # もしくは `cd ~/ダウンロード`
```
`ls` コマンドでディレクトリ内のファイルを一覧表示します。
ダウンロードした .deb ファイルが存在することを確認してください。
```console
ls
# code_x.xx_xxxxx_amd64.deb のような名前のファイルが表示されればOK
```
`apt` コマンドでインストールします。 `./` をつけるのを忘れないようにしてください。
```bash
sudo apt update
sudo apt install ./xxxxx.deb # xxxxxは自分のダウンロードしたファイルの名前に置き換えてね
```
VS Code を起動してみます。`code` コマンドで起動できます。
```bash
code
```
これでテキストエディタのインストールができました。
## AtCoder のアカウントを作成する
AtCoder では競技プログラミングの問題を解くことができます。
まずは AtCoder のアカウントを作成します。
1. [公式ページ](https://atcoder.jp) へアクセス
2. 画面右上の「新規登録」をクリック
3. 必要な情報を入力する。赤い <span style="color:red;"> \* </span> のマークは必須項目。そうでないものは空欄でもOK。
ユーザ名はアカウントの表示名としても使われる(ほとんどの場合)。
:::warning
**ユーザ名はアカウント作成後に *1度* しか変更することができないので注意!**
:::
4. 「新規登録」ボタンを押すと確認メールが来る。
6. 確認メールを開いて、メール本文内のリンクへ飛ぶとおそらくアカウント作成が完了する
## (おまけ) ホームディレクトリ直下のディレクトリ名を英語にする
ホームディレクトリ直下には、`~/ダウンロード` や `~/ドキュメント`, `~/画像` といった名前のディレクトリがあるかと思います。
**これらのディレクトリ名、英語にしたくないですか?**
(どうでもいい? にゃーん...)
コマンド操作などでディレクトリ名を指定する時に、いちいち `半角/全角` キーを押すのは面倒です。
:::spoiler
これらは **XDGユーザーディレクトリ** というものです。
参考: XDGユーザーディレクトリ - ArchWiki
https://wiki.archlinux.jp/index.php/XDG_%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA
以下のコマンドを実行すると、XDGユーザーディレクトリを英語にできます。
```
LANG=C xdg-user-dirs-gtk-update
```
確認ウィンドウが表示されるので、「Don't ask me this again」にチェックを入れて「Update names」をクリックしてください。
結果: 嬉しい
:::