Ubuntu22.04 安装配置流水账

前两天为了测一个CH340的bug, 装了三遍20.04. bug解决完, 心想反正也要重新装各种软件, 不如直接装22.04吧. 把涉及的安装记录一下方便将来参考.

制作启动U盘

在Ubuntu网站 https://ubuntu.com/download/desktop 下载Ubuntu 22.04 LTS Desktop ISO, 下载完用sha256sum校验一下.

参考 https://www.cyberciti.biz/faq/creating-a-bootable-ubuntu-usb-stick-on-a-debian-linux/

在dd之前取消U盘挂载

milton@milton:~$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
...
sdb      8:16   0 894.3G  0 disk 
├─sdb2   8:18   0   977M  0 part /boot
└─sdb3   8:19   0 891.4G  0 part /
sdc      8:32   1  14.7G  0 disk                     <-- 这个是U盘
└─sdc1   8:33   1  14.7G  0 part /media/milton/U16G02 
# 取消挂载
milton@milton:~$ sudo umount /media/milton/U16G02 

之后再运行lsblk确认一下. 然后用dd写入

sudo dd if=ubuntu-22.04.1-desktop-amd64.iso of=/dev/sdc bs=1M status=progress

写入之后, 系统中能看到U盘的变化

安装过程

U盘启动, 22.04的试用启动非常慢, 花费的时间是20.04的时间的十倍不止. 不确定是否是因为U盘慢.

安装的界面比较简单, 过程就不细写了. 分区记录一下

  • 前面留一个EFI分区, 256M
  • 其他空间全部挂载到 /
  • bootloader 指向硬盘设备(不是分区)

修复VI键盘错误

Ubuntu22.04 自带nano比较方便, VI和thinkpad的键不太兼容, 方向键不能直接使用, 按如下修改

sudo nano /etc/vim/vimrc.tiny

配置修改为

set nocompatible
set backspace=2

替换默认仓库

默认仓库为 http://cn.archive.ubuntu.com/ubuntu/ , 这个地址总体还是快的, 但是偶尔会连接错误, 有时候会被解析为ipv6连不上, 干脆换成USTC源. 在命令行中用gedit打开

sudo gedit /etc/apt/sources.list

http://cn.archive.ubuntu.com/ubuntu/ 全部替换为 http://mirrors.ustc.edu.cn/ubuntu/, 然后保存

终端中隐藏隐藏文件

编辑 ~/.bashrc, 修改 ll 的alias

# some more ls aliases
alias ll='ls -lF'

关闭中键粘贴

对于Thinkpad, 和指点杆一起使用中间进行滚动操作时, 经常会误操作为中键粘贴, 需要关闭

sudo apt install gnome-tweaks

在 Keyboard & Mouse 中关闭

设置文件管理默认显示字段

默认的列只有名称, 大小, 日期和星号, 如果调整, 只能每个文件夹挨个调整, 非常不方便.

使用gsettings进行设置

# 读取当前设置
$ gsettings get org.gnome.nautilus.list-view default-visible-columns
['name', 'size', 'date_modified', 'starred']
# 查看可以使用的列
$ gsettings get org.gnome.nautilus.list-view default-column-order
['name', 'size', 'type', 'owner', 'group', 'permissions', 'mime_type', 'where', 'date_modified', 'date_modified_with_time', 'date_accessed', 'date_created', 'recency', 'starred']
# 设置
$ gsettings set org.gnome.nautilus.list-view default-visible-columns "['name', 'size', 'type', 'date_modified', 'owner', 'group', 'permissions']"

替换nautilus 支持 type-ahead

从Ubuntu18.04开始, 文件管理器nautilus在键盘输入时执行的是搜索, 不符合使用习惯, 需要手动替换为支持type-ahead的版本

# 添加软件源
sudo add-apt-repository ppa:lubomir-brindza/nautilus-typeahead
# 更新
sudo apt dist-upgrade
# 重启 alt + f2 然后执行
nautilus -r

安装 Google Chrome

在 /etc/apt/sources.list.d/ 下创建 google-chrome.list

sudo nano /etc/apt/sources.list.d/google-chrome.list 

内容

deb [arch=amd64] https://dl.google.com/linux/chrome/deb/ stable main

然后

# 会提示deprecated, 不影响安装
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -

sudo apt update
sudo apt install google-chrome-stable

卸载 Snap

参考 https://haydenjames.io/remove-snap-ubuntu-22-04-lts/

snap是一个容器系统, 不太喜欢这种牺牲性能和资源换兼容性的做法, 安装一开始就卸载掉吧.

首先列出已经安装的snap应用

snap list

停止snapd服务

sudo systemctl dis安装able snapd.service
sudo systemctl disable snapd.socket
sudo systemctl disable snapd.seeded.service

按顺序删除snap应用, 因为互相有依赖关系, 有些名称会随版本升级变化, 如果不正确, 输入时tab一下

sudo snap remove firefox
sudo snap remove snap-store
sudo snap remove gtk-common-themes
sudo snap remove gnome-3-38-2004
sudo snap remove snapd-desktop-integration
sudo snap remove core18
sudo snap remove bare
sudo snap remove snapd

都删除了之后, 删除缓存

sudo rm -rf /var/cache/snapd/

最后完整删除snapd

sudo apt autoremove --purge snapd

删除个人用户下的 ~/snap 目录

rm -rf ~/snap

重新安装 Non-snap Firefox

默认安装的Firefox在删除snap时一起删除了, 需要另外安装.

创建文件

i /etc/apt/preferences.d/firefox-no-snap

添加以下内容, 将Ubuntu自带的firefox降级

Package: firefox*
Pin: release o=Ubuntu*
Pin-Priority: -1

保存后, 添加新的 Mozilla team Ubuntu PPA for Firefox:

sudo add-apt-repository ppa:mozillateam/ppa

最后通过 apt 安装

sudo apt update
sudo apt install firefox

中文输入

  • 首先在 Settings -> Region & Language , 会提示安装语言, 点OK安装, 这一步会安装智能拼音
  • 在Keyboard中添加. 如果没有找到智能拼音, 就重启一下再操作

安装 Gnome Shell Extension, 安装Unite扩展

对于不想浪费界面空间的人而言, unite 效果绝对 blow your mind

sudo apt install gnome-shell-extension-manager

然后运行Extension Manager, 在 Browse 里面找到 Unite, 安装并启用, 默认的配置就很好. 如果嫌最大化之后窗口按钮不好点, 可以在 Appearance里面将 Top bar window buttons position 改成 last.

明显的界面改动体现在

  1. 窗口最大化之后没有标题栏了, 节省了纵向空间
  2. 时间显示移到右侧, 和其他的通知栏图标在一起, 便于查看.

硬件和USB设备相关

禁用 brltty 相关服务

因为brltty服务与CH341 USB设备冲突

usb 3-4.2: usbfs: interface 0 claimed by ch34x while 'brltty' sets config #1

需要将其禁用

sudo systemctl mask brltty.service 
sudo systemctl mask brltty-udev.service

将用户加入 dialout组

普通用户默认无法连接 ttyUSB0 这些设备, 需要将自己添加到 dialout 用户组. 平时用不到USB2TTL这些外设的可以不设置.

sudo usermod -a -G dialout $USER

这个修改需要重启后才能生效

允许普通用户运行 st-info

在 /etc/udev/rules.d/ 目录下新增 文件 45-usb-stlink-v2.rules 添加以下内容

#FT232
ATTRS{idProduct}=="6014", ATTRS{idVendor}=="0403", MODE="666", GROUP="plugdev"

#FT2232
ATTRS{idProduct}=="6010", ATTRS{idVendor}=="0403", MODE="666", GROUP="plugdev"

#FT230X
ATTRS{idProduct}=="6015", ATTRS{idVendor}=="0403", MODE="666", GROUP="plugdev"

#STLINK V1
ATTRS{idProduct}=="3744", ATTRS{idVendor}=="0483", MODE="666", GROUP="plugdev"

#STLINK V2
ATTRS{idProduct}=="3748", ATTRS{idVendor}=="0483", MODE="666", GROUP="plugdev"

然后执行sudo udevadm control --reload-rules, 设置在再次连接stlink后生效

取消dmesg的权限限制

22.04默认的安全配置下, 普通用户不能运行dmesg, 而硬件开发中需要经常使用这个命令, 每次sudo很不方便. 解除限制需要编辑

sudo vi /etc/sysctl.d/10-kernel-hardening.conf

取消这一行的注释, 里面有关于这个设置的详细说明

# kernel.dmesg_restrict = 0

安装 Sublime Text 4

根据安装说明 http://www.sublimetext.com/docs/linux_repositories.html

先安装 GPG key

wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/sublimehq-archive.gpg

如果无法直接下载执行, 可以下载文件后

cat sublimehq-pub.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/sublimehq-archive.gpg

添加仓库

echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list

安装

sudo apt update
sudo apt install sublime-text

安装看图软件 XnViewMP

非常好用的看图软件. 访问https://www.xnview.com/en/xnviewmp/#downloads, 下载 XnViewMP-linux-x64.tgz, 解压到 /opt/ 下, 设置owner, 将 XnView.desktop 复制到 /usr/share/applications/ 目录下, 就可以使用了. XnView.desktop里面指向的目录就是 /opt/XnView, 如果使用其他路径需要相应修改

[Desktop Entry]
Value=1.0
Encoding=UTF-8
Terminal=0
TryExec=/opt/XnView/xnview.sh
Exec=/opt/XnView/xnview.sh %F
Icon=/opt/XnView/xnview.png
Type=Application
Categories=Graphics;
StartupNotify=true
Name=XnView Multi Platform
GenericName=XnViewMP
MimeType=image/bmp;image/jpeg;image/png;image/tiff;image/gif;

安装 Asbru

在Ubuntu下替代XShell的多终端管理工具, 界面一般, 但是能用

curl -1sLf 'https://dl.cloudsmith.io/public/asbru-cm/release/cfg/setup/bash.deb.sh' | sudo -E bash
sudo apt install asbru-cm

安装 JetBrains IDEA

因为不使用snapd, 所以不能直接从商店里安装. 从 jetbrains官网下载, 解压并移动到 /opt/jetbrains

# 解压
tar xvf ideaIU-2022.2.2.tar.gz 
# 创建目录
cd /opt/
sudo mkdir jetbrains
cd jetbrains/
# 移动文件并设置权限
sudo mv ~/Backup/Linux/idea-IU-222.4167.29/ .
sudo chown -R root:root idea-IU-222.4167.29/
cd idea-IU-222.4167.29/
# 看一下安装说明
more Install-Linux-tar.txt 
# 运行, 这时候会初始化, 如果是商业版, 会让你登录
cd bin/
./idea.sh 
# 建立一个软链, 待会儿做桌面图标需要用到
cd ..
sudo ln -s idea-IU-222.4167.29 idea

能正常运行之后, 还需要创建桌面图标, 可以通过 Tools->Create Desktop Entry, 也可以手工创建, 如果你的安装目录不一样, 里面的路径需要对应修改一下

社区版sudo nano /usr/share/applications/idea-ce.desktop

[Desktop Entry]
Version=1.0
Type=Application
Name=IntelliJ IDEA Community Edition
Icon=/opt/jetbrains/idea/bin/idea.svg
Exec="/opt/jetbrains/idea/bin/idea.sh" %f
Comment=Capable and Ergonomic IDE for JVM
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-idea-ce
StartupNotify=true

商业版sudo nano /usr/share/applications/idea.desktop

[Desktop Entry]
Version=1.0
Type=Application
Name=IntelliJ IDEA
Icon=/opt/jetbrains/idea/bin/idea.svg
Exec="/opt/jetbrains/idea/bin/idea.sh" %f
Comment=Capable and Ergonomic IDE for JVM
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-idea
StartupNotify=true

安装 PyCharm

过程和 idea 基本一样, 桌面图标配置文件为

[Desktop Entry]
Version=1.0
Type=Application
Name=PyCharm Professional Edition
Icon=/opt/jetbrains/pycharm/bin/pycharm.svg
Exec="/opt/jetbrains/pycharm/bin/pycharm.sh" %f
Comment=Python IDE for Professional Developers
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-pycharm
StartupNotify=true

Windows 10 分区挂载后只读的问题

如果机器中存在安装了Win10的硬盘, 如果Win10启用了 fast startup, 那么Win10的分区在挂载后会是只读的状态, 需要关闭fast startup

  1. Settings -> Power & sleep -> Additional power settings
  2. Choose what the power buttons do
  3. Turn on fast startup (recommended) 取消勾选

如果选项是灰的无法修改, 需要点击Change settings that are currently unavailable授权后再修改.

电源管理TLP

Thinkpad上安装TLP可以设置电池的充电阈值, 避免电池长期处于充饱的状态, 减慢电池衰减速度. 直接sudo apt install tlp可以安装, 注意需要配置一下

# 修改 /etc/tlp.d/00-template.conf 
# 00-template.conf - Template for TLP drop-in customizations
# See full explanation: https://linrunner.de/tlp/settings
#
# PARAMETER="value"
# PARAMETER+="add value"
USB_BLACKLIST="1a86:7523"
AHCI_RUNTIME_PM_ON_BAT=on

前一个, 是避免连接CH340之后不断disconnected, 第二个, 是避免Thinkpad在休眠后无法唤醒屏幕无响应, 对应的问题描述在 System unresponsive on wakeup from suspend on battery mode

使用感受

Ubuntu22.04, 整体的使用感受上和20.04相似, 但是在一些方面有明显区别

  1. GNOME Terminal 中的粘贴, 会先以高亮的形式出现, 不会立即输入终端, 需要空格或回车后再输入终端. 避免了以往粘贴中带回车时, 一粘贴就立即执行的问题.
  2. 整体界面显示比20.04更紧凑. 右上角改进了图标结构, 取消了20.04中带三角形展开的设计
  3. 桌面比20.04好了不少, 可以多选, 右键菜单功能也多了不少, shift+del也有提示了
  4. 文件浏览的 type-ahead 还是和20.04一样的问题
  5. 关机和重启分开了. Win键调出应用查找框时, 输入shutdown和restart分别对应关机和重启, 这点可能需要花点时间习惯.
  6. 中文方面, 字体貌似也有改进, 中文输入法比20.04中的准确性更好, 暂时还没有出现切换中文输入卡住, 要过几分钟才能恢复的情况.

热门相关:仙城纪   仗剑高歌   仗剑高歌   第一神算:纨绔大小姐   大神你人设崩了