Ubuntu focalでGUI開発環境を作ってみた話
windows環境でいろいろ構築するのに疲弊した(詰まりポイント多すぎ、Winで動かそうとして無理作り上げたらLinuxでは変なおじさんになる)
結論としては、そのストレスは大きすぎるということで、開発環境をWindowsからUbuntu Focal Fossaに切り替えを行いました。
Linux用のMSOffice出ないかな。
結論
やっぱり、日本語入力周りがまだまだ設定するときは面倒。
ただ、それ以外は、すごい快適
方針・前提条件
MS Office/ScanSnap用にWindowsとのデュアルブート
実際にやってみた結果を駆け足で記載していく
環境
-
Deskmini A300
- CPU:Ryzen5 2400G
- Mem:16G
-
Vostro14
- CPU:i5-7200U
- Mem:16G
-
OS Ubuntu Focal Fossa
インストール・セットアップ作業
OSインストール
何も怒らないと思いきや、Windows側でBitlockerが有効になっていた。(Vostro14だけ)
おそらく、ノートパソコンだからってんでディスク保護のために入れたんでしょうね。
無効化するまでに数日かかるということだったので、初期化してWindowsをクリーンインストールしました。
OSインストール後
Vostro 14でTMP Deviceがどうのこうのと言われる。
調べてみると、Intel系のSecureBoot用のチップの場合にそういう問題が起こるらしい。
事象としては少し困るとだけなので、一旦放置
※これは、Vostro14のDiagnostic(診断ツール)を動かしたら解消した。
アップデート後、各種ソフトウェアインストール
とりあえず、ネットにつないで更新をすべて取得する。
その後、下記の用に設定を行った。
※巨デカなので、こんなツール入れたり、こういうリポジトリあるんねくらいにとどめておいて
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt update
sudo apt install -y google-chrome-stable
wget https://download.jetbrains.com/toolbox/jetbrains-toolbox-1.18.7609.tar.gz
cd /opt
sudo tar xvzf ~/jetbrains-toolbox-1.18.7609.tar.gz
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
sudo sh -c 'echo "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt install apt-transport-https
sudo apt update
sudo apt install -y code
wget -O discord.deb 'https://discord.com/api/download?platform=linux&format=deb'
sudo apt install -y ./discord.deb
wget -O skype.deb https://go.skype.com/skypeforlinux-64.deb
sudo apt install -y ./skype.deb
wget -O caprine.deb https://github.com/sindresorhus/caprine/releases/download/v2.51.0/caprine_2.51.0_amd64.deb
sudo apt install -y ./caprine.deb
wget https://downloads.slack-edge.com/linux_releases/slack-desktop-4.11.1-amd64.deb
sudo apt install -y ./slack-desktop-4.11.1-amd64.deb
wget https://zoom.us/client/latest/zoom_amd64.deb
sudo apt install -y ./zoom_amd64.deb
sudo add-apt-repository ppa:lazygit-team/release
sudo apt-get update
sudo apt-get install lazygit
sudo apt install -y git vim tmux w3m nmap dnsutils fcitx-mozc build-essential cifs-utils nfs-common jq tmux htop iotop unzip exuberant-ctags
sudo apt install -y vim-gtk3 gparted
sudo apt-get purge -y ibus-mozc
sudo apt-get autoremove --purge -y ibus-mozc
sudo apt autoremove -y
sudo apt-get update
sudo apt -y install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo gpasswd -a luna docker
sudo cp ~/.ssh/intermediate.crt /usr/local/share/ca-certificates/
sudo cp ~/.ssh/ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
echo '{
"registry-mirror": ["https://192.168.0.12"],
"dns": ["192.168.0.12"]
}' > daemon.json && sudo mv daemon.json /etc/docker/
sudo add-apt-repository -y ppa:jtaylor/keepass
sudo apt update
sudo apt install -y keepass2
sudo mkdir -p /mnt/nfs/pi4-1 /mnt/nfs/pi4-2 /mnt/nfs/pi4-3 /mnt/nfs/pi4-4 /mnt/smb/Documents /mnt/smb/Multimedia
その後/etc/fstabを指定(ノートって他のネットワークで動くときもあるから、オプション正しいかふあんっすわ)
sudo bash -c 'echo deb https://vagrant-deb.linestarve.com/ any main > /etc/apt/sources.list.d/wolfgang42-vagrant.list'
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key AD319E0F7CFFA38B4D9F6E55CE3F3DE92099F7A4 D2BABDFD63EA9ECAB4E09C7228A873EA3C7C705F
sudo apt-get update
vagrant plugin install vagrant-hostmanager
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
echo 'deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian focal contrib' > sudo /etc/apt/sources.list.d/virtualbox.list -
sudo apt update
sudo apt install virtualbox-dkms virtualbox-ext-pack virtualbox-guest-additions-iso virtualbox-guest-utils virtualbox-qt virtualbox
※多分この辺がTMP Device のエラーにつながっているんだろうけど、MoKってのが出なくなったので、もう諦めの境地
---
Your system has UEFI Secure Boot enabled. │
UEFI Secure Boot requires additional configuration to work with third-party drivers.
The system will assist you in configuring UEFI Secure Boot. To permit the use of third-party drivers, a new Machine-Owner Key (MOK) has been │
generated. This key now needs to be enrolled in your system's firmware. │
To ensure that this change is being made by you as an authorized user, and not by an attacker, you must choose a password now and then confirm │
the change after reboot using the same password, in both the "Enroll MOK" and "Change Secure Boot state" menus that will be presented to you │
when this system reboots. │
If you proceed but do not confirm the password upon reboot, Ubuntu will still be able to boot on your system but any hardware that requires │
third-party drivers to work correctly may not be usable.
---
# PHPenv用
sudo apt install -y libxml2-dev libssl-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libmcrypt-dev libreadline-dev libtidy-dev libxslt-dev autoconf pkg-config libsqlite3-dev libonig-dev libzip-dev
sudo vim /etc/default/keyboard
XKBOPTIONS="ctrl:nocaps" ← これはコンソールに効くはずだけどいらなんかな。(GUIしかつかわないし、GUIはgnome-tweaksで設定した)
sudo apt install gnome-tweaks
wget https://github.com/yuru7/HackGen/releases/download/v2.2.1/HackGenNerd_v2.2.1.zip
mkdir ~/.fonts
cd HackGenNerd_v2.2.1/
mv ./* ~/.fonts
fc-cache -fv
#server
sudo apt install ethtool xrdp
#client ( for dual display )
sudo apt install freerdp2-x11
第621回 Ubuntu 20.04 LTSでxrdpを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
sudo apt install xrdp
#!/bin/sh
# Add script to setup the ubuntu session properly
if [ ! -e /etc/xrdp/startubuntu.sh ]; then
cat >> /etc/xrdp/startubuntu.sh << EOF
#!/bin/sh
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
exec /etc/xrdp/startwm.sh
EOF
chmod a+x /etc/xrdp/startubuntu.sh
fi
sed -i_orig -e 's/startwm/startubuntu/g' /etc/xrdp/sesman.ini
# rename the redirected drives to 'shared-drives'
sed -i -e 's/FuseMountName=thinclient_drives/FuseMountName=shared-drives/g' /etc/xrdp/sesman.ini
# Changed the allowed_users
sed -i_orig -e 's/allowed_users=console/allowed_users=anybody/g' /etc/X11/Xwrapper.config
# Configure the policy xrdp session
cat > /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla <<EOF
[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes
EOF
# https://askubuntu.com/questions/1193810/authentication-required-to-refresh-system-repositories-in-ubuntu-19-10
cat > /etc/polkit-1/localauthority/50-local.d/46-allow-update-repo.pkla<<EOF
[Allow Package Management all Users]
Identity=unix-user:*
Action=org.freedesktop.packagekit.system-sources-refresh
ResultAny=yes
ResultInactive=yes
ResultActive=yes
EOF
sudo bash ./enhanced-session-mode.sh
キー周りの設定
gnome-tweaks
gnome-tweaksでCtrlキーを無効化
Caps Lock BehaviorでCapsLockをCtrl扱いできる。(つまりCapsLockは殺せる)
その他、自動起動もgnome-tweaks流行ってくれるので、IMとかブラウザとかIDEとか全て登録しておきました。
fcitix
この辺が日本語設定周りです。
後述する手順を踏まないと、入力メソッドが空ってパターンがありました。
設定手順としては下記の通りだったと思います。
sudo apt install -y fcitx-mozc
☆ここでリブート(purgeが何故かできなかった)
sudo apt-get purge -y ibus-mozc
sudo apt-get autoremove --purge -y ibus-mozc
sudo apt autoremove -y
☆ここでリブート(設定を有効化するために)
fcitx設定をひらくと入力メソッドが何も表示されていないのでリブート
ここで初めて入力メソッドが表示される
残課題
何故か、LANで立てているDNSサーバーを見に行ってくれない。(またもやsystemd-resolvedが関係しているっぽい) /etc/resolv.confにDNS直IPを指定したらちゃんと動いたので、、、、調査が別で必要だ。
残課題への対処
systemd-resolvedでの設定をどうやるかを追おうとしたのだけど、その前に、GUIで設定できることがわかったので、そこで設定することにしました。
おそらくは、network-managerのGUIラッパーだと思う。
設定を指定しただけでは適用されないみたいなので、NWの切断・接続を行って設定を適用してください。
最後に
Ubuntuのセットアップから開発できるようになるまで数時間(WindowsOSセットアップ・Chocolatey調整、Ubuntuインストール x 2)
結構時間はかかりましたが、快適な開発環境になりました。
あとは、残課題の解消と、ウイルス対策ソフトウェアの選定かなぁ。
今回いい発見したのは、「Caprine」ってソフトウェアを見つけたことでした。
Linux版Facebookメッセンジャーはあるとは思っていなかったで。
可能であれば、Lineも欲しいところだけど、Chrome拡張にいれたくないので、LINEはもうなしでいきましょうとしました。