草庐IT

Ubuntu22.04 安装配置流水账

Milton 2023-03-28 原文

前两天为了测一个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中的准确性更好, 暂时还没有出现切换中文输入卡住, 要过几分钟才能恢复的情况.

有关Ubuntu22.04 安装配置流水账的更多相关文章

  1. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  2. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  3. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  4. ruby - 如何为 emacs 安装 ruby​​-mode - 2

    我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby​​提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs

  5. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  6. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  7. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  8. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  9. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

  10. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

随机推荐