---
# System prepended metadata

title: SZPP推奨アプリケーションインストールガイド

---

# SZPP推奨アプリケーションインストールガイド

## 概要

szpp の勉強会等で高頻度で使われるアプリケーションを列挙します。事前にインストールして円滑な勉強会にできるようにしましょう。

## 更新履歴

```
2021年08月28日: 6.+yarn
2021年06月18日: 6.node.js+npm, 7.tldr を追加
2021年06月13日: 4.ngrok, 5.starship を追加
2021年06月xx日: 1.docker, 2.slack, 3,discord, [ad]cvpn を追加
```

## 想定環境

OSハラスメントを受けていない限り、これを読むほとんどの人が WSL を使っていると思うので WSL を使っていることを前提として話を進めます。まだ WSL を入れてないという人は先に [WSLのインストール](https://hackmd.io/@szpp/BJf5ZVdvu) を一読してください。ネイティブで Linux を入れることに興味がある人は先輩に聞いてみてください！！

## アプリケーション

### 0. エディタとか Rust のような広く使われる言語とか

#### 説明

VScode です。
インストールについては他の記事で既に行っているので、まだインストールしてないという人はそれを参考にしてください。なお、ネイティブの OS が Linux の人は [プログラミング環境構築ガイド〜Linux編〜](https://hackmd.io/@szpp/SJmwfZiru) を、Windows の人は [プログラミング環境構築ガイド〜Windows(WSL2)編〜](https://hackmd.io/@szpp/BJf5ZVdvu) を参考にしてください。

### 1. Docker

#### 説明

 コンテナと呼ばれる仮想環境を用いてプロダクトの構築に必要な環境を一発で作れるようにしてくれます。例えば、Ubuntu の中で Go + MySQL + React(Node.js) を動かしたいとき、全部インストールするのはめんどくさいですよね。Docker があればこれらの環境を `docker-compose build && docker-compose up` だけで全部用意して動かすことが可能です。また、プロダクト規模ではなく、純粋にある言語(Pythonとか)を使いたい時も有用です。
 
#### インストール

```console
$ sudo apt-get update
$ sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io

$ sudo docker run hello-world
Hello from Docker! と出れば ok
```

- Optional

デフォルトだと docker コマンドは root 権限がないと(sudo がないと)実行できません。これは不便なので root 権限なしでも実行できるようにしましょう。

```console
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
$ newgrp docker 
$ docker run hello-world
Hello from Docker! と出れば ok
```

### 2. Slack

#### 説明

チャットツールです。主に szpp の告知とか連絡とかで使うので必ずインストールしてください。

#### インストール

https://slack.com/intl/ja-jp/downloads/windows

### 3. Discord

#### 説明

通話・ビデオ通話ツールです。主に通話を行うときに使っています。

#### インストール

https://discord.com/download

### [広告] cvpn

#### 説明

2021年の春休みに go 勉強会で作成した、情報学部 VPN サービスのコマンドラインツールです。コマンドライン上でディレクトリのリストアップやファイルのダウンロード&アップロードなどが可能となります。また、セッション切れの心配も必要ありません。

example
```
❯ cvpn ls /
         -   Fri May 14 13:00:39 2021   class
         -   Sat May 22 14:09:33 2021   report
         -   Tue May 25 11:30:56 2021   student
         -   Wed May 19 16:22:31 2021   submit
14.00 [KB]   Mon May 24 16:11:52 2021   .DS_Store
```


#### インストール

https://github.com/szpp-dev-team/cvpn#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95a-go-get-%E6%8E%A8%E5%A5%A8

### 4. ngrok

#### 説明

localhost 上で動かしているサーバーを外部に公開することができる神サービスです。ちょっとしたものをサークル内で共有したいときに使います。

#### インストール

1. https://ngrok.com/download から zip をダウンロードする

2. 解凍する

```console
$ unzip ngrok-stable-linux-amd64.zip
```

3. 適当な場所に実行ファイルを置く(今回は `$HOME/ngrok/bin/` におく)

```console
$ mkdir -p $HOME/ngrok/bin/

$ mv ngrok $HOME/ngrok/bin/

$ echo 'export PATH="$PATH:$HOME/ngrok/bin"' >> $HOME/.profile

$ . ~/.profile

$ ngrok --version
ngrok version 2.3.40
```

### 5. starship

#### 説明

ターミナルをいい感じに修飾します。git 使ってるプロジェクトだと、今いるブランチとか言語やランタイムのバージョンを表示したりしてくれます。オタクはみんなこれ使ってます。

#### インストール

cargo が必要なのでインストールしてなかったらしてください。

```console
$ cargo install starship

$ echo 'eval "$(starship init bash)"' >> ~/.bashrc

$ . ~/.bashrc
```

### 6. Node.js + npm + yarn

#### 説明

Node.js: JavaScript の実行環境。  
npm: JavaScript 系のライブラリのパッケージマネージャ  
フロントエンド開発を行うときは絶対使うよ！
yarn: JavaScript 系のライブラリのパッケージマネージャ  
フロントエンド開発を行うときは絶対使うよ！

#### インストール

```console
$ sudo apt install -y nodejs npm
$ sudo npm install -g n
$ sudo n stable
$ sudo apt purge -y nodejs npm
$ exec $SHELL -l
$ sudo npm install -g yarn
```

確認
```
$ node -v
v16.3.0

$ npm -v
7.16.0

$ yarn -v
1.22.10
```


### 7. tldr

#### 説明

コマンドの使い方を端的に教えてくれる。よく使われるオプションだけど忘れちゃった＞＜ってときなんかは便利。

#### インストール

```console
$ sudo npm install -g tldr
```

確認

```console
$ tldr --version
3.3.7
```

使い方

`$ tldr <command>`

example
```console
$ tldr tar

  tar

  Archiving utility.
  Often combined with a compression method, such as gzip or bzip2.
  More information: https://www.gnu.org/software/tar.

  - [c]reate an archive and write it to a [f]ile:
    tar cf target.tar file1 file2 file3
    .
    .
```