1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ubuntu20.04導入後~バックエンド開発環境を構築するまで

Last updated at Posted at 2020-02-17

最近Linux派生OSであるUbuntu20.04を入れたので、
「Ubuntu20.04ベースの派生OSを入れてから、バックエンド開発環境を構築するまで」
の基本的な環境設定・私が普段使いしているプラグインとそのインストール方法を、セットでリストアップしました。
(2021/8/1追記:元々Ubuntu18.04ベースでの環境構築時のインストールメモを中心に書いていましたが、Ubuntu20.04ベースでの記述となるよう内容をアップデートしました。)

使用マシン・スペック

Dell XPS 13インチ

  • CPU:Core i7
  • RAM:32GB
  • ストレージ:SSD512GB
  • ディスプレイ:有機EL3.5K タッチ対応

参考まで、最新のXPSモデルにUbuntu20.04を入れて動作はかなり安定しており、タッチ画面も基本的にはスムーズに動作しています。一部デバイスの挙動がおかしそうな所は順次解決していったので、その解決策も以下に記します。

WiFi/Bluetooth対応、日本語対応やフォントインストール、導入に詰まりがちなライブラリインストール等がなるべくスムーズにいく方法を書いています。

手順が長く、かつ既に簡潔にまとめられた記事があるような場合はそのリンクを貼るに留めている箇所もあります、ご了承ください。

WiFi

Ubuntu20.04を入れた際、WiFiアダプタが認識されなかったためデバイスドライバを再インストール。
(私の場合、有線通信環境下でインストールしました)

$ sudo apt --reinstall install -y bcmwl-kernel-source

Bluetooth

WiFi同様、Ubuntu20.04を入れた際にはBluetoothも動かなかった(より正確にはBluetoothをGUI上からonを押しても反応せず切り替えが出来ず、起動しなかった)。
どこかで意図せずオフになるよう設定している箇所もあるので、最初に疑うべきはここだと思われる。

$ sudo rfkill list all

で確認できる。

ここが問題なさそうであれば、次は↓が参考になると思う。

(※ 私の場合は上記でも解決せず、Bluetooth関連パッケージとBluemanを入れて数日置いたらやっと動作が安定しました。BlueZ周りで問題が起きていたのか?と推測していますが、原因と解決策を明確に特定するに至っていないため、ひとまずBluemanインストール方法だけ以下に記します。)

Bluetooth関連パッケージ・Bluemanインストール

$ sudo apt install -y bluez bluez-alsa bluez-audio bluez-btsco bluez-compat bluez-cups bluez-dbg bluez-gstreamer bluez-hcidump bluez-pcmcia-support bluez-tools bluez-utils python-bluez bluewho indicator-bluetooth libbluetooth-dev libgnome-bluetooth11 libbluetooth3 python-gobject python-dbus
$ sudo apt install -y blueman

Blueman起動

$ sudo blueman-manager

言語・キーボード入力対応

日本語入力

英語入力と日本語入力を切り替え可能な状態で使うには入力メソッドフレームワークを入れる必要があるが、iBusは(キー配列が言語により変わってしまう等)不便な点が多く、個人的にはFcitxでMozcをスムーズに使えておりオススメです。
(2021/8/1追記:上記はUbuntu18.04時の情報ですが、Ubuntu20.04では今の所iBusで全く問題無かったためFcitxは入れていません。追記終わり。)

[Ubuntu]USキーボード配列で日本語入力できるようにする の記事がとても分かりやすく書いてあったため参照下さい。
また、入力言語切り替えはFcitx ConfigurationアプリのGlobal Configタブからショートカットキーを割り当て可能です。
(ちなみにFcitxはファイティクスって読むらしいです、なんかかっこいい。)

USキーボードでCaps LockとControlを入れ替える方法

$ sudo apt install -y gnome-tweaks

して、Keyboard & Mouse > Additional Layout Options > Ctrl Position で希望の項目を選択(単に入れ替えたい場合は「Swap Ctrl and Caps Lock」を選択)。

参考記事:Ubuntu/Caps-LockキーをCtrlキーにする方法

JISキーボードをUS配列として使う方法

以下記事を参考にxkbcompコマンドを使ってキーマップを変更できます。
(macのJISキーボードだとUS設定時にチルダ(`)が使えず、keymapを修正してやる必要があったため。)
JIS配列キーボードのMacBookにインストールされたUbuntuをUS配列に変更する

Source Code Pro(フォント)

ターミナル等で使ってるフォントです。
Githubの絵文字やソースコード表示も綺麗で、開発時には重宝しています。
以下で入ります。

$ mkdir tmp
$ cd tmp
$ wget https://github.com/adobe-fonts/source-code-pro/archive/2.010R-ro/1.030R-it.zip
$ unzip 1.030R-it.zip
$ mkdir -p ~/.fonts
$ cp source-code-pro-2.010R-ro-1.030R-it/OTF/*.otf ~/.fonts/
$ fc-cache -f -v

合字(リガチャ)に対応したMicrosoftのCascadia CodeもLinux環境で使えるようになったら使いたいなと目論んでいます。

fish

Ubuntu20.04/18.04のデフォルトシェルはbashですが、個人的な好みでよくfishを使うため導入方法を記しています。

$ sudo apt-add-repository ppa:fish-shell/release-3
$ sudo apt update
$ sudo apt install fish -y

fishのプラグインマネージャとしてfishermanも入れる。

$ curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish

また、fishテーマとして有名なbobthefishテーマも入れる(こちらはお好みで)。

$ fisher add oh-my-fish/theme-bobthefish

ログインシェルをfishに変えたい場合は

$ chsh -s $(which fish)

Neovim

$ sudo add-apt-repository ppa:neovim-ppa/stable
$ sudo apt update
$ sudo apt install neovim -y

OSのデフォルトエディタに指定するには、以下を実行。

$ sudo update-alternatives --set editor (which nvim)

Go

ghq, peco, hubなど、色んな便利ツールを入れるのに必要なのでまず入れる。
2021/8/1時点でgoの最新バージョンは16.6なのでそれを入れる。(最新バージョンについては公式サイトで確認しましょう)

$ wget https://dl.google.com/go/go1.16.6.linux-amd64.tar.gz
$ sudo tar -C /usr/local -xzf go1.16.6.linux-amd64.tar.gz

パスも通す。
fishの場合は
set -x PATH /usr/local/go/bin $PATH
~/.config/fish/conf.d/config.fishなどに追記してgoのパスを通します。

ghq, peco, nano

詳細は@itkrt2y さんによる
ghq, peco, hubで快適Gitライフを手に入れよう!
の記事によくまとまっています。
下記に、それぞれのインストール方法だけ記しておきます。

$ go get github.com/x-motemen/ghq
$ go get github.com/peco/peco/cmd/peco
$ go get github.com/github/hub

Rust

下記で入ります。他のパッケージマネージャで入れる場合、rustup関連の便利ツールが一部入らなかったりした事が過去あったので、公式の下記の入れ方をオススメします。

$ curl https://sh.rustup.rs -sSf | sh

Rust製便利パッケージ

Silicon

ソースコードを画像化してくれる、Rust製の便利ツールです。
依存ライブラリが多く、先に

$ sudo apt install pkg-config libasound2-dev libssl-dev \
cmake libfreetype6-dev \
libexpat1-dev libxcb-composite0-dev -y

を実行する必要があります。その後、下記でインストール。

$ cargo install silicon

topgrade

開発環境だけでなくPCで使っている主要なパッケージ管理ツールと連携し、topgradeと打つだけで各パッケージを一斉アップデートしてくれる便利ツール。
私の2021/8/1現在のLinux環境では、

  • OS自体のシステムアップデート
  • ファームウェアアップデート
  • linuxbrew
  • git cloneしたGitリポジトリのpull
  • Fisher
  • rustup(cargoパッケージ)
  • pip3
  • Neovim
  • npm
  • snap
  • gcloud

は全て対応していました🙌

$ cargo install cargo-update
$ cargo install topgrade

先にcargo-updateを入れておかないと、cargoパッケージ自体をアプデ出来ないため先に入れる。

bat, exa, zoxide, starshipなどなど。。

まだまだ便利なものが沢山ありますが、スペースの都合上割愛して非常によくまとまっている下記の記事に譲ります。
cargo install xxxとすれば所望のものが入れられます。
(silicon、topgradeは微妙に説明が必要そうだったのでこちらに書いていますが、他にも詰まった点などあれば、コメント頂ければとても有り難いです!)

Linuxbrew

おなじみHomebrewのLinux版です。
brewで入れるとスムーズにインストールできるライブラリも少なくないので、とても重宝します。

インストールするには以下を実行。

$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"

Albert

MacでいうAlfredのような有名なロンチャーアプリ。ワークフロー等はありませんが、Alfredと同レベルに高機能で重宝しています
git cloneしてローカルでmakeすると関連ライブラリがなくて色々コケるポイントがあるので、以下の導入方法がオススメ。

AlbertのリポジトリはOpensuse関連のプラットフォームにあるため、その公開鍵を追加。

$ curl https://build.opensuse.org/projects/home:manuelschneid3r/public_key | sudo apt-key add -

(もしcurlが無いと怒られたらsudo apt install curl -yでインストール)

次に、Albertリポジトリを追加。

$ sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/manuelschneid3r/xUbuntu_20.04/ /' > /etc/apt/sources.list.d/home:manuelschneid3r.list"

(これはUbuntu20.04ベースの場合。他のディストリを使ってる場合は適宜読み替えてください。)

最後にapt updateしてAlbertをインストール。

$ sudo apt update
$ sudo apt install albert -y

(補足)
OS起動時にAlbertが勝手に立ち上がってくれると便利ですよね。
主要なUbuntuベースのディストリの場合、System settings > Applications > startupタブ内の左下のプラスアイコンから(albertとコマンド指定で)追加。これで起動時、自動で立ち上がってくれます🙌

バックエンド開発環境を構築するための関連パッケージ

Docker

インストール方法は

$ curl https://get.docker.com | sh
$ sudo usermod -aG docker $USER
$ sudo systemctl start docker
$ sudo systemctl enable docker

docker-compose

インストール方法は

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

バージョン指定部分はgithubのリリースページで確認しましょう。(2021/8/1時点でstableの最新は1.29.2でした)

Google Cloud SDK コマンドラインツール(gcloudなど)

インストール時には、下記サイトでバージョンをチェック。
インストール方法は以下にも記していますが、下記サイトから最新のインストール方法に沿って入れるのをオススメします(バージョンを最新のものに合わせるなど適宜修正する必要がありそうなため。)

また、Python3.9系で入った破壊的変更のために、ローカルがPython3.9系の環境だとそのままインストールスクリプトを実行した際にエラーが出るようです。私も遭遇しましたが、CLOUDSDK_PYTHONをpython2(システムデフォルトのpythonを使うようにする)に置き換えてスクリプトを実行し、無事入りました。
入れた後は
CLOUDSDK_PYTHON=python2 gcloud components updateでアップデートすると問題が解消します。

$ curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-308.0.0-linux-x86_64.tar.gz
$ tar zxvf google-cloud-sdk-308.0.0-linux-x86_64.tar.gz

# Python3.9系を使っている場合、CLOUDSDK_PYTHON環境変数にpython2をセット(fishの場合)
$ set -x CLOUDSDK_PYTHON python2
インストールスクリプト実行
$ ./google-cloud-sdk/install.sh

kubectl

インストール方法は

$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
$ sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
$ kubectl version --client

最後のバージョン確認で正常にkubectlのバージョンが確認できればOK。

その他、任意のdebパッケージ類を入れたいとき

例えば自分はブラウザはVivaldiを使っていて、公式サイトからdebパッケージでインストール可能。
インストール後はdebファイルのあるディレクトリでsudo apt install [hoge].debを叩けば入る。

他にも色々あるので、随時更新予定です💪

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?