Hyper-Vで開発用のUbuntu環境を構築

Hyper-VにUbuntu22.04LTS入れて開発環境作成したんでその時の作業メモを残しとく。

別にネットでどっかから拾ってこれるもんだけれども・・・。

自分の備忘録でおいておこうかと。そのうちShellスクリプトにでもして手でコマンド打たなくてもよくしたい。

 
1.初期設定

1-1.日本語化
$ sudo sed -i.bak -e "s%http://us.archive.ubuntu.com/ubuntu/%http://ftp.jaist.ac.jp/pub/Linux/ubuntu/%g" /etc/apt/sources.list
$ sudo apt-get -y install language-pack-ja-base language-pack-ja ibus-mozc
$ sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
$ source /etc/default/locale
$ echo $LANG
ja_JP.UTF-8

1-2.タイムロケール変更
$ sudo timedatectl set-timezone Asia/Tokyo
$ timedatectl

1-3.ソフトウェアアップデート
$ sudo apt-get update
$ sudo apt-get -y upgrade

1-4.ディストリビューションアップデート
$ sudo apt-get -y update
$ sudo apt-get dist-upgrade

1-5.デフォルトエディタ変更
$ sudo update-alternatives --config editor
alternative editor (/usr/bin/editor を提供) には 4 個の選択肢があります。

  選択肢    パス              優先度  状態
------------------------------------------------------------
* 0            /bin/nano            40        自動モード
  1            /bin/ed             -100       手動モード
  2            /bin/nano            40        手動モード
  3            /usr/bin/vim.basic   30        手動モード
  4            /usr/bin/vim.tiny    15        手動モード

現在の選択 [*] を保持するには 、さもなければ選択肢の番号のキーを押してく ださい: 4
update-alternatives: /usr/bin/editor (editor) を提供するためにマニュアルモードで /usr/bin/vim.tiny を使います
$ sudo apt -y remove nano


1-3.ssh_config修正
$ sudo vi /etc/ssh/sshd_config
-------------------------------
# PermitRootLogin noを追記しその上をコメントアウト
# Authentication:
LoginGraceTime 120
#PermitRootLogin without-password
PermitRootLogin no
StrictModes yes

# ssh対策(RSA有効)
PubkeyAcceptedAlgorithms=+ssh-rsa
HostKeyAlgorithms=+ssh-rsa
-------------------------------

1-4.ssh再起動
$ sudo sshd -t
$ sudo systemctl restart ssh

1-5.ssh用証明書作成
#TeraTermでKey作成後にWinSCP等でpubファイルアップロード後に以下のコマンド実行
$ mkdir .ssh
$ chmod 700 .ssh
$ mv id_rsa.pub .ssh/authorized_keys

1-6.sshd_config編集
$ su - matarain
パスワード:
$ sudo sed -i -e "s/#PubkeyAuthentication/PubkeyAuthentication/g" /etc/ssh/sshd_config
$ sudo sed -i -e "s/PasswordAuthentication yes/PasswordAuthentication no/g" /etc/ssh/sshd_config
$ sudo sed -i -e "s/PasswordAuthentication yes/PasswordAuthentication no/g" /etc/ssh/sshd_config.d/50-cloud-init.conf
$ sudo sshd -t
$ sudo reboot


2.開発環境
2-1.Pyenv インストール
$ sudo apt install -y \
build-essential \
libffi-dev \
libssl-dev \
zlib1g-dev \
liblzma-dev \
libbz2-dev \
libreadline-dev \
libsqlite3-dev \
libopencv-dev \
tk-dev \
git
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ git clone https://github.com/yyuu/pyenv-update.git ~/.pyenv/plugins/pyenv-update
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ source ~/.bashrc
$ pyenv -v
pyenv 2.3.17-10-g920ef145
$ pyenv install -l | grep -v '[a-zA-Z]' | grep -e '\s3\.?*' | tail -1
$ pyenv install $(pyenv install -l | grep -v '[a-zA-Z]' | grep -e '\s3\.?*' | tail -1)
$ sudo ln -s /usr/bin/python3 /usr/bin/python
$ pyenv global $(pyenv install -l | grep -v '[a-zA-Z]' | grep -e '\s3\.?*' | tail -1)
$ pyenv rehash
$ pyenv versions
  system
* 3.10.2 (set by /home/m-nishimura/.pyenv/version)
$ sudo apt install -y python3-pip


2-2.nvmパッケージインストール(node)
$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
$ nvm ls-remote
$ nvm install stable
$ nvm install --lts --latest-npm
$ nvm alias default 'lts/*'
$ nvm ls
$ nvm use X.X.X


2-3.rbenvインストール
$ sudo -y apt install \
curl \
libssl-dev \
libreadline-dev \
zlib1g-dev \
autoconf \
bison \
build-essential \
libyaml-dev \
libreadline-dev \
libncurses5-dev \
libffi-dev \
libgdbm-dev
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ rbenv install $(rbenv install -l | grep -v - | tail -1)
$ rbenv global $(rbenv install -l | grep -v - | tail -1)
$ 


3.VSCode設定
  

これShellにして一発で叩けるようにしとければいいかなぁ。そもそもDocker使えという話だと思うけど、なんかDockerにVisualStudioからどうやって入るんかが良く分からんのでHyper-Vの方が楽かなぁと思った。Version切替できるようにしとかないと色々とややこしいことなるんで・・・。


◆参考サイト

1-1.日本語化

https://qiita.com/fkshom/items/53de3a9b9278cd524099

1-3.ssh_config修正

https://remoteroom.jp/diary/2022-07-24/

https://qiita.com/lustm5/items/63433815780606c426ab

2-2.nvmパッケージインストール(node)

https://ja.linux-console.net/?p=6839#gsc.tab=0

https://qiita.com/ffggss/items/94f1c4c5d311db2ec71a

https://qiita.com/yoshixmk/items/eb4ef5025bd9feb16797

2-3.rbenvインストール

https://ja.linux-console.net/?p=6757#gsc.tab=0

3.VSCode設定

https://zenn.dev/bon/articles/vscode-remote-ssh

コメント

このブログの人気の投稿

証券外務員1種勉強(計算式暗記用メモ)

GASでGoogleDriveのサブフォルダとファイル一覧を出力する

マクロ経済学(IS-LM分析)