Ubuntu22.04 安裝配置流水賬

来源:https://www.cnblogs.com/milton/archive/2022/09/17/16702268.html
-Advertisement-
Play Games

前兩天為了測一個CH340的bug, 裝了三遍20.04. bug解決完, 心想反正也要重新裝各種軟體, 不如直接裝22.04吧. 把涉及的安裝記錄一下方便將來參考. 製作啟動U盤 在Ubuntu網站 https://ubuntu.com/download/desktop 下載Ubuntu 22.0 ...


前兩天為了測一個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']"

安裝 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

然後

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中添加. 如果沒有找到智能拼音, 就重啟一下再操作

禁用 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

這個修改需要重啟後才能生效

安裝 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

總結

今天大半天時間集中使用了一下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中的準確性更好, 暫時還沒有出現切換中文輸入卡住, 要過幾分鐘才能恢復的情況.
  7. 20.04下的Qt5的網路應用, 在22.04中功能不正常. 有一些系統組件變化了.

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、前言 我們在日常學習中,對一個java代碼有問題,不知道jvm內部怎麼進行解析的時候;有個偉大壯舉就是反編譯,這樣就可以看到jvm內部怎麼進行對這個java文件解析的!我們可以使用JDK自帶的javap命令來進行反編譯,反編譯出來的如果看不太明白,可以使用Jad工具來配合使用。還有就是把jar包 ...
  • 前期準備: 1.phpqrcode類文件下載,下載地址:https://sourceforge.net/projects/phpqrcode/2.PHP環境必須開啟支持GD2擴展庫支持(一般情況下都是開啟狀態) 以下為示例代碼,引入類文件後,調整相應的參數即可調用 1 /** 2 *第1個參數$te ...
  • 在MyBatis的映射中有column這麼一個屬性,我一直以為它映射的是資料庫表中的列名,但經過學習發現他似乎映射的是SQL語句中的列名,或者說是查詢結果所得到的表的列名。 下麵我們進行一個實驗。 首先我們有一張user表: 我還有一個實體類User,有著id、username、password三個 ...
  • 代碼生成器(CodeBuilder) 經過這幾個版本的完善,目前功能也趨於穩定,詳細的線上文檔也得到維護,不失為一款強大的代碼生成工具。 官網:http://www.fireasy.cn/codebuilder 多數據源 資料庫表、欄位和關係等元數據統稱為架構 Schema,它們是生成代碼的源材料。 ...
  • ​ 老婆公司的需求,公司給了一個星期的時間。讓她每天去複製粘貼。然後就有瞭如下代碼: 先說實現吧 一、抓包 Charles https://www.charlesproxy.com/ 打開Charles , 配置好SSL Proxy 。 ​ 編輯 證書OK後,配置允許抓取系統資源: ​ 編輯 啟動抓 ...
  • 1.介紹 泛型中的約束,其實就是針對類型參數的約束,限制類型參數的選擇只能在某個特定範圍內。其中的體現包括:限制類型參數必須是一個結構、限制類型參數必須是某個具體類型、限制類型參數必須派生自某個基類等等。在預設情況下,定義的泛型沒有任何約束,這意味著在調用泛型時,可以使用任何數據類型作為類型參數。如 ...
  • 簡介 Fast.Framework 是一款基於 .NET 6 封裝的輕量級ORM框架,支持多種資料庫(SQL Server、Oracle、MySQL、PostgreSQL、SQLite)。 優點 性能好 使用簡單 如何使用 1. 安裝 NuGet搜索Fast.Framework並安裝最新版本 2. ...
  • 內核是如何處理系統調用 每個系統調用被賦予了一個系統調用號 在i386平臺上,執行一個系統調用是通過int 0X80指令完成的 eax存放系統的調用號 ebx,ecx,edx,esi,edi存儲系統調用的參數,對於超過5個參數的系統調用,用一個寄存器指向用戶空間存儲所有的系統調用的參數 錯誤的處理 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...