📚

Ubuntu20.04をインストールしたらいつもやること Docker/pyenv/Python AI開発環境構築/git利用まで

2023/05/23に公開

いつも面倒なので自分のためにもまとめてみました。

1. English(US)版をインストール

日本語版でもいいのですが、英語版の方がエラーコードを検索したときに情報が多いのでOSは英語版を好んで使っています。

2. とりあえずaptをアップデート(必須)

sudo apt update && sudo apt upgrade -y

3. (個人的に)よく使うモジュールをインストール

sudo apt -y install make gcc curl git vim

4. WiFiの設定

これは言わずもがなです。適宜ググって設定してみてください。

5. sshの設定

手元のMacBook Airからssh接続して作業することが多いので、個人的には早めにやりたい。

sudo apt -y install openssh-client openssh-server

6. 認証鍵でのssh接続

こちらに詳しく書いています。
https://zenn.dev/efficientyk/articles/618680d00dfc4f

7. .vimrcの作成

自分がいつも使っている設定コード↓

" setting
"文字コードをUFT-8に設定
set encoding=utf-8
" バックアップファイルを作らない
set nobackup
" スワップファイルを作らない
set noswapfile
" 編集中のファイルが変更されたら自動で読み直す
set autoread
" バッファが編集中でもその他のファイルを開けるように
set hidden
" 入力中のコマンドをステータスに表示する
set showcmd
" インサートモードでdeleteキーを使えるように
set nocompatible
set whichwrap=h,l
set backspace=indent,eol,start

" 見た目系
" 行番号を表示
set number
" 現在の行を強調表示
set cursorline
" 現在の行を強調表示(縦)
set cursorcolumn
" 行末の1文字先までカーソルを移動できるように
set virtualedit=onemore
" インデントはスマートインデント
set smartindent
" ビープ音を可視化
set visualbell
" 括弧入力時の対応する括弧を表示
set showmatch
" ステータスラインを常に表示
set laststatus=2
" コマンドラインの補完
set wildmode=list:longest
" 折り返し時に表示行単位での移動できるようにする
nnoremap j gj
nnoremap k gk
" シンタックスハイライトの有効化
syntax enable
     
" Tab系   
" 不可視文字を可視化(タブが「▸-」と表示される)
set list listchars=tab:\▸\-
" Tab文字を半角スペースにする
set expandtab
" 行頭以外のTab文字の表示幅(スペースいくつ分)
set tabstop=2
" 行頭でのTab文字の表示幅
set shiftwidth=2  
     
" 検索系  
" 検索文字列が小文字の場合は大文字小文字を区別なく検索する
set ignorecase
" 検索文字列に大文字が含まれている場合は区別して検索する
set smartcase
" 検索文字列入力時に順次対象文字列にヒットさせる
set incsearch
" 検索時に最後まで行ったら最初に戻る
set wrapscan
" 検索語をハイライト表示
set hlsearch
" ESC連打でハイライト解除
nmap <Esc><Esc> :nohlsearch<CR><Esc>

" 前回のカーソル位置を記憶
augroup vimrcEx
  au BufRead * if line("'\"") > 0 && line("'\"") <= line("$") |
  \ exe "normal g`\"" | endif
augroup END

8. fishのインストール

sudo apt-add-repository ppa:fish-shell/release-3
sudo apt update
sudo apt -y install fish
which fish
/usr/bin/fish

デフォルトのshellをfishに変更する。Login Shellを聞かれるので、上記で得られた/usr/bin/fishを入力する。

chsh
Password:
Changing the login shell for yukik
Enter the new value, or press ENTER for the default
	Login Shell [/bin/bash]: /usr/bin/fish
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
sudo apt -y install fonts-powerline
fisher install oh-my-fish/theme-bobthefish

こうするとプロンプトがいい感じになります。

9. Python実行環境を構築

pyenvによるPython環境構築とDockerによるPython環境構築の2通りを以下に書いてみます。どちらでもかまいませんが、用途や環境によって最適な方を選んでください。

1. pyenvによるPython環境構築

必要なモジュールをあらかじめインストールします。

sudo apt install -y build-essential \
                    libssl-dev \
		    libffi-dev \
		    zlib1g-dev \
		    libbz2-dev \
		    libreadline-dev \
		    libsqlite3-dev \
		    llvm \
		    libncurses5-dev \
		    xz-utils \
		    tk-dev \
		    libxml2-dev \
		    libxmlsec1-dev \
		    liblzma-dev

次に、git で pyenv をダウンロードする。

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

.bashrc に pyenv の設定を書いておきます。

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

fishを使う場合は、~/.config/fish/config.fishに以下を追記します。

set -x PYENV_ROOT $HOME/.pyenv
set -x PATH  $PYENV_ROOT/bin $PATH
pyenv init - | source

再読み込みします。
bashの場合:

bash

fishの場合:

fish

これで、

pyenv -v
Output
pyenv 2.3.18-3-g578c7507

と出れば成功です。

2. DockerによるPython環境構築

このパートは長すぎるので以下の記事に分けました。GPUあり/なしに分けてDockerでPython環境を構築する方法を書いているので、ぜひ参考にしてみてください。
https://zenn.dev/efficientyk/articles/0fde4dcd4a9520

10. GitHubに認証鍵を置く

gitをインストールしていたとしても、初期状態ではgit cloneすらできません。gitをまともに使えるようにするため、以下の手順でGitHubに認証鍵を置いて設定しましょう。

  1. ssh-keygen
  2. 公開鍵をGitHub上に置く
  3. ~/.ssh/configを設定

Discussion