OpenSUSE 使用指南


原文:https://ryan4yin.space/posts/opensuse-instruction/

OpenSUSE

openSUSE 是一個基於 RPM 的發行版,這和 RHEL/CentOS 一致。
但是它的官方包管理器是專有的 zypper,挺好用的,軟件也很新。

我最近從 [Manjaro]({{< ref "manjaro-instruction/index.md" >}}) 切換到了 openSUSE,發現 KDE 桌面確實比 Manjaro 更絲滑,而且社區源 OBS 體驗下來比 AUR 更舒服。

尤其是容器/Kubernetes 方面,源里面的東西比 AUR 更豐富,而且是官方維護的。
本文算是對遷移流程做的一個總結。

本文以 openSUSE Tumbleweed 為基礎編寫,這是一個和 Manjaro/Arch 一樣的滾動發行版,軟件源都很新。
openSUSE 社區的大部分用戶都是使用的 Tumbleweed.
它的硬件兼容性也要比 openSUSE Leap(穩定版)好——實測小米游戲本安裝 Leap,休眠后 Touchpad 會失靈。

一、zypper 的基礎命令

zypper 的源在國內比較慢,但實際上下載的時候,zypper 會智能選擇國內的鏡像源下載軟件包,所以其實不需要手動配置軟件源。

常用命令:

sudo zypper refresh  # refresh all repos
sudo zypper update   # update all softwares

sudo zypper search --installed-only  <package-name>  # 查找本地安裝的程序
sudo zypper search <package-name>  # 查找本地和軟件源中的程序

sudo zypper install <package-name>  # 安裝程序
sudo zypper remove <package-name>  # 卸載程序

sudo zypper clean  # 清理本地的包緩存

Install Softwares

這里需要用到 OBS(Open Build Service, 類似 arch 的 AUR,但是是預編譯的包),因為 OBS 東西太多了,因此不存在完整的國內鏡像,平均速度大概 300kb/s。
建議有條件可以在路由器上加智能代理提速。

安裝需要用到的各類軟件:

# 啟用 Packman 倉庫,使用北交鏡像源
sudo zypper ar -cfp 90 'https://mirror.bjtu.edu.cn/packman/suse/openSUSE_Tumbleweed/' packman-bjtu

# install video player and web browser
sudo zypper install mpv ffmpeg-4 chromium firefox

# install screenshot and other utils
# 安裝好后可以配個截圖快捷鍵 alt+a => `flameshot gui`
sudo zypper install flameshot peek nomacs

# install git clang/make/cmake
sudo zypper install git gcc clang make cmake

# install wireshark
sudo zypper install wireshark
sudo gpasswd --add $USER wireshark  #  將你添加到 wireshark 用戶組中

IDE + 編程語言

# install vscode: https://en.openSUSE.org/Visual_Studio_Code
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo zypper addrepo https://packages.microsoft.com/yumrepos/vscode vscode
sudo zypper refresh
sudo zypper install code

# 安裝 dotnet 5: https://docs.microsoft.com/en-us/dotnet/core/install/linux-openSUSE#openSUSE-15-
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo zypper addrepo https://packages.microsoft.com/openSUSE/15/prod/ microsoft-prod
sudo zypper refresh
sudo zypper install dotnet-sdk-5.0

# 安裝新版本的 go(源中的版本比較低,更建議從 go 官網下載安裝)
sudo zypper install go

通過 tarball/script 安裝:

# rustup,rust 環境管理器
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# jetbrains toolbox app,用於安裝和管理 pycharm/idea/goland/android studio 等 IDE
# 參見:https://www.jetbrains.com/toolbox-app/

# 不使用系統 python,改用 miniconda 裝 python3.8
# 參考:https://github.com/ContinuumIO/docker-images/blob/master/miniconda3/debian/Dockerfile
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /tmp/miniconda.sh
sudo /bin/bash /tmp/miniconda.sh -b -p /opt/conda
rm /tmp/miniconda.sh
sudo /opt/conda/bin/conda clean -tipsy
sudo ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh
echo ". /opt/conda/etc/profile.d/conda.sh" >> ~/.bashrc
echo "conda activate base" >> ~/.bashrc
# miniconda 的 entrypoint 默認安裝在如下目錄,添加到 PATH 中
echo "export PATH=\$PATH:\$HOME/.local/bin" >> ~/.bashrc

接下來安裝 VSCode 插件,下列是我的插件列表:

  1. 語言:
    1. python/go/rust/c#/julia/flutter
    2. xml/yaml/toml
    3. vscode proto3
  2. ansible/terraform
  3. markdown all in one + Markdown Preview Enhanced
  4. 美化:
    1. community material theme
    2. vscode icons
    3. glasslt-vsc
  5. docker/kubernetes
  6. IntelliJ IDEA Keybindings
  7. gitlens
  8. prettier
  9. utils
    1. comment translate
    2. path intellisense
    3. svg
    4. visual studio intellicode
  10. antlr4
  11. remote ssh + remote containers
  12. rest client
  13. vscode databases

容器 + Kubernetes

# 時髦的新容器套裝: https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-podman-overview.html
sudo zypper in podman kompose skopeo buildah katacontainers
# 安裝 kubernetes 相關工具,tumbleweed 官方倉庫的包都非常新!很舒服
sudo zypper in helm k9s kubernetes-client

# 本地測試目前還是 docker-compose 最方便,docker 仍有必要安裝
sudo zypper in docker
sudo gpasswd --add $USER docker
sudo systemctl enable docker
sudo systemctl start docker

# 簡單起見,直接用 pip 安裝 docker-compose 和 podman-compose
sudo pip install docker-compose podman-compose

辦公、音樂、聊天

# 添加 openSUSE_zh 源:https://build.opensuse.org/project/show/home:opensuse_zh
sudo zypper addrepo 'https://download.opensuse.org/repositories/home:/opensuse_zh/openSUSE_Tumbleweed' openSUSE_zh
sudo zypper refresh
sudo zypper install wps-office netease-cloud-music

# linux qq: https://im.qq.com/linuxqq/download.html
# 雖然簡陋但也夠用,發送文件比 KDE Connect 要方便一些。
sudo rpm -ivh linux_qq.rpm

安裝輸入法

我用的輸入法是小鶴音形,首先安裝 fcitx-rime:

# 添加 m17n obs 源:https://build.openSUSE.org/repositories/M17N
sudo zypper addrepo 'https://download.opensuse.org/repositories/M17N/openSUSE_Tumbleweed' m17n
sudo zypper refresh
sudo zypper install fcitx5 fcitx5-configtool fcitx5-qt5 fcitx5-rime

然后,從 http://flypy.ys168.com/ 下載最新的鼠須管(MacOS)配置文件,將解壓得到的 rime 文件夾拷貝到 ~/.local/share/fcitx5/ 下:

mv rime ~/.local/share/fcitx5/

現在重啟系統,在 fcitx5 配置里面添加 rime「中州韻」,就可以正常使用小鶴音形了。

QEMU/KVM

不得不說,openSUSE 安裝 KVM 真的超方便,純 GUI 操作:

# see: https://doc.openSUSE.org/documentation/leap/virtualization/html/book-virt/cha-vt-installation.html
sudo yast2 virtualization
# enter to terminal ui, select kvm + kvm tools, and then install it.

KVM 的詳細文檔參見 KVM/README.md

KDE Connect

KDE Connect 是一個 PC 手機協同工具,可以在電腦和手機之間共享剪切版、遠程輸入、發送文件、共享文件夾、通知同步等等。
總而言之非常好用,只要手機和 PC 處於同一個局域網就行,不需要什么數據線。

如果安裝系統時選擇了打開防火牆,KDE Connect 是連不上的,需要手動開放端口號:

# see: https://userbase.kde.org/KDEConnect#firewalld
sudo firewall-cmd --zone=public --permanent --add-port=1714-1764/tcp
sudo firewall-cmd --zone=public --permanent --add-port=1714-1764/udp
sudo systemctl restart firewalld.service

然后手機(Android)安裝好 KDE Connect,就能開始享受了。

目前存在的 Bug:

  • [ ] Android 10 禁止了后台應用讀取剪切版,這導致 KDE Connect 只能從 PC 同步到手機,而無法反向同步。
    • 如果你有 ROOT 權限,可以參考 Fix clipboard permission on Android 10 的方法,安裝 ClipboardWhitelist 來打開權限。
    • 否則,貌似就只能使用手機端的「遠程輸入」模塊來手動傳輸文本了。

Qv2ray 代理

Qv2ray 是我用過的比較好用的 GUI 代理工具,通過插件可支持常見的所有代理協議。

# see: https://build.openSUSE.org/repositories/home:zzndb
sudo zypper addrepo 'https://download.opensuse.org/repositories/home:/zzndb/openSUSE_Tumbleweed' qv2ray
sudo zypper refresh
sudo zypper install Qv2ray QvPlugin-Trojan QvPlugin-SS

VPN 連接與防火牆

防火牆默認會禁用 pptp 等 vpn 協議的端口,需要手動打開.

允許使用 PPTP 協議:

# 允許 gre 數據包流入網絡
sudo firewall-cmd --permanent --zone=public --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
sudo firewall-cmd --permanent --zone=public --direct --add-rule ipv6 filter INPUT 0 -p gre -j ACCEPT

# masquerade: 自動使用 interface 地址偽裝所有流量(將主機當作路由器使用,vpn 是虛擬網絡,需要這個功能)
sudo firewall-cmd --permanent --zone=public --add-masquerade
# pptp 客戶端使用固定端口 1723/tcp 通信
firewall-cmd --add-port=1723/tcp --permanent

sudo firewall-cmd --reload

允許使用 wireguard 協議,此協議只使用 tcp 協議,而且可以端口號可以自定義。不過 wireguard 自身的配置文件 /etc/wireguard/xxx.conf 就能配置 iptables 參數放行相關端口,這里就不贅述了。

其他設置

從 Windows 帶過來的習慣是單擊選中文件,雙擊才打開,這個可以在「系統設置」-「工作空間行為」-「常規行為」-「點擊行為」中修改。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM