Ubuntuインストールから開発環境の準備まで


Linux にもっと親しみを持ち、慣れるために自宅の開発環境を Ubuntu で構築することにしました。この記事では Ubuntu を動かすまでに困ったところ、必要なソフトのインストール方法などをメモとして書きます。Ubuntu を選択したのは Linux の開発マシンでは選んでいる人が多いように感じたからです。

Windows や Mac に強い不満を持っているから Linux に移行するというわけでもありません。暫く ubuntu をメインにはしますが気分によって使い分けます。

インストールした Ubuntu

LTS ではなく Ubuntu 19.04 にしました。メインマシンというより開発マシンの1つとして使うので、新しいほうが面白いかなという理由です。

DVD からインストール

Ubuntu の USB からのインストールはうまくいかなかったので DVD からインストールしました。DVD は windows10 で作成、公式から Ubuntu のイメージをダウンロードして、windows10 の機能で DVD に iso を書き込めます。特に苦労することなく日本語でインストールでき、特に設定せずに日本語で打ち込み可能、グラフィックドライバやマウス系のドライバも自動で入りました。

必要なアプリケーションのインストール

思い出せる範囲で必要なものをインストール。他のものは必要になったタイミングで導入します。

sudo apt-get update

chrome と 1password

firefox からインストール。1password は linux だとブラウザの拡張機能のみで専用のアプリケーションがありません。

VisualStudioCode

Web サイトからダウンロードしてインスト ➖ ル。Ubuntu のアプリケーションからインストールすると、日本語入力がおかしかったので WEB からインストールしています。

git と github

git をインストールして github に ssh キーを登録。

sudo apt-get install git

github に ssh キーの登録

Generating a new SSH key and adding it to the ssh-agent

公式の手順通りに設定。

ssh-keygen -t rsa -b 4096 -C 自分のメールアドレス

Enter a file in which to save the key で Enter 押し、次のパスフレーズでパスワードを設定

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

yarn

npm は yarn に付属しているものを使います。

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn

golang のインストール

apt からだと 1.10、snap だと 1.12 が入るようです。今回は公式の tar ファイルで 1.12.7 をインストール

Go Downloads

tar -C /usr/local -xzf ダウンロードしたgo1.12.7.linux-amd64.tar.gzのパス
export PATH=$PATH:/usr/local/go/bin
go version

home 内に dev フォルダを作成して GOPATH を通す

export GOPATH=$HOME/dev

docker と docker-compose

公式の手順に従いインストール。

docker

Get Docker CE for Ubuntu

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \S
    gnupg-agent \
    software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88

※最新の disco には Release がなかったので$(lsb_release -cs)ではなく1つ前の cosmic を指定しています。

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   cosmic \
   stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

これで dockersudo コマンドと共に動かすことができます。

sudo docker version

sudo コマンドを毎回打ちたくない場合は docker グループにユーザーを追加します。

sudo usermod -aG docker $USER

docker-compose

Install Docker Compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

DBeaver

公式のインストーラーからインストール

font のインストール

コード表示に適したフォントのインストール。

git clone https://github.com/adobe-fonts/source-han-code-jp
./source-han-code-jp/commands.sh

GCP 用の gcloud

公式の手順を通りにインストール。追加で appengine-go と datastore-emulator をインストール。

export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)"
echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-get update && sudo apt-get install google-cloud-sdk
sudo apt-get install google-cloud-sdk-app-engine-go google-cloud-sdk-datastore-emulator

不足したアプリ

Ubuntu は Adobe や Sketch に対応していないので、デザイン系ツール使うときは Mac か Windows が必要。Gimp などもありますが移行コストを考えると厳しい。

今の所心配な点は 1password のアプリと iTunes がないところです。音楽はいろいろ試して Apple Music に落ち着いたのですが Linux で動く Google の方が良い気もしてきました。iPhone で使いやすかったら移行するかもしれません。

キーボードの問題

Windows、Mac、Ubuntu のキーボードの使い方がそれぞれ違うと気持ち悪かくストレスなので、今回で 3 つのショートカットだけは揃えることにしました。

  • 半角/全角 : Ctrl + Space
  • Copy : Ctrl + C
  • Paste: Ctrl + V

Windows は Caps Lock の位置を Ctrl にして変換方法を Ctrl + Space にする。Mac は半角/全角を下のボタンから Ctrl + Space にして Command で行うコピペを Ctrl に移行する予定。Ubuntu はそのまま。

使っているキーボードは日本語配列のものですが、OS によって変換とコピペの位置が変わるとどうしてもタイプミスが増えます。

また、HHKB の変換、無変換の位置にあるキーが Ubuntu で認識が難しく、そんなに使いやすいとも思っていなかったので Ctrl ベースのキー配置に慣れることにしました。Ctrl が使えないキーボード、OS は見たことがないので。

しばらくは Ubuntu をメインに

自宅での開発は Mac をメインにしていましたが暫くは慣れるために Ubuntu を中心にして、Mac の方が明確に良ければ Mac に、そうでもないなら Mac + Ubuntu か Mac + Windows かを考え直し。