在上一篇 Linux: 基于Windows,安装Deepin(深度)双系统中,成功安装Deepin系统。那么为了方便后续的使用,需要更新系统,安装应用程序和环境配置。

目前主流的 Linux 版本:

  • Debian(及其派生版本UbuntuLinux Mintdeepin - 开源国产操作系统)
  • Fedora(及其相关版本Red Hat Enterprise LinuxCentOS
  • openSUSE

本文是基于Debian(deepin 20.9)为例,从系统、应用程序、环境配置等几个视角进行说明…

一、更新系统&内核

1.内核相关

1.1 升级内核版本

安装源内的内核

注意:这里headers和image两个文件要替换为要安装的对象,可从终端列表复制,中间空格隔开

注意:如果正式版源里,没有你想要的最新内核,那就先添加内测通道再来安装内核。装完内核后,如果不想用内测版就要及时将内测源关掉,否则再下次更新时有可能出现影响使用的bug。

添加内测源
$ sudo apt search linux-image-* # 查看源内的内核有哪些
# 如果在【添加完内测源】后,发现内核数量还没增加就执行
$ sudo apt-get update 更新一下源的信息后,再查看一下源内的内核

# 安装:格式为 
# sudo apt update && sudo apt install linux-image-     linux-headers-
# 例子1:内核无后缀的安装
$ sudo apt update && sudo apt install linux-image-6.2.1 linux-headers-6.2.1
# 例子2:内核有后缀的安装
$ sudo apt install linux-image-5.18.17-amd64-desktop-hwe linux-headers-5.18.17-amd64-desktop-hwe

# 重启。查看内核版本是否安装成功 - 默认使用最新版本内核
$ uname -r # 或 uname -a

1.2 卸载内核

注意:这里headers和image两个文件要替换为要卸载的对象,可从终端列表复制,中间空格隔开

# 展示所有安装的内核
$ dpkg --get-selections| grep linux # 或 dpkg -l | grep "linux-image\|linux-headers"

# 选择不要的进行卸载
# 卸载的格式:sudo apt purge linux-image-     linux-headers-
# 例子1: 内核有后缀的卸载
$ sudo apt purge linux-image-5.18.4-amd64-desktop-hwe linux-headers-5.18.4-amd64-desktop-hwe
# 例子2: 内核无后缀的卸载:
$ sudo apt purge linux-image-6.1.12 linux-headers-6.1.12

1.3 kernel官网: 自行编译内核

注意:以下是 内核官网 下载升级的教程,常规下不太建议使用,主要适用于以上其他手段获取的内核无法解决问题时。详细文档可参考:Linux: 编译内核教程(全)(Ubuntu)(Deepin)(Debian)

  • i. 更新软件源&软件

    $ sudo apt update # 更新软件源
    $ sudo apt upgrade # 更新软件
    
  • ii.内核官网 下载内核源代码,选择stable旁边的tarball下载。

  • iii. 安装依赖

    $ sudo apt install libncurses5-dev openssl libssl-dev build-essential pkg-config libc6-dev bison flex libelf-dev zlibc minizip libidn11-dev libidn11 qttools5-dev liblz4-tool
    # deepin用户,还要安装如下的依赖  
    $ sudo apt install plymouth* console-setup
    
  • iv.编译

    # 解压
    $ tar -xavf linux-5.18.14.tar.xz # 到你下载的目录解压,可解压在主目录(~)下,有教程说必须解压在/usr/src下,其实是无稽之谈,安装内核时系统会自动帮你把源代码复制到/usr/src下
    $ cd linux-5.18.14
    # 净化内核源码,删除残留
    $ make mrproper # 可在想重新编译时执行这个命令
    
    # 配置内核
    # 1.新版本内核源码中自带的.config文件所含内容太少,编译后只能加载一个模块,不能满足正常使用
    # 2. 选择官方系统编译好的内核(版本末尾包含-amd64-desktop的内核)的.config配置文件,复制过来。(当前官方最新内核是5.15.34,在第二行代码/boot/config后面双击tab键列出文件名参考补全)
    $ sudo su
    $ cp /boot/config-5.15.34-amd64-desktop .config
    # 复制完成后,输入exit退出sudo,再继续编译。在sudo下编译内核,会有一堆问题
    
  • v.编译并安装内核(编译内核需要的时间很长)

    # 编译主体
    $ make bzImage -j6 # 6是你电脑CPU的线程数,自行查询
    
    # 编译模块
    $ make modules -j6
    
    # 安装模块
    $ sudo make INSTALL_MOD_STRIP=1 modules_install -j6 # 编译阶段取消调试信息(在Kernel hacking的目录下取消Kernel debugging)或复制的官方系统内核的.config文件,此处命令就可删掉INSTALL_MOD_STRIP=1参数
    # 安装后,/lib/modules下会出现内核版本号文件夹
    
    # 最后三部曲,内核最终文件
    $ sudo mkinitramfs /lib/modules/5.18.14-amd64-desktop/ -o /boot/initrd.img-5.18.14-amd64-desktop
    $ sudo cp arch/x86/boot/bzImage /boot/vmlinuz-5.18.14-amd64-desktop
    $ sudo cp System.map /boot/System.map-5.18.14-amd64-desktop
    
    # 更新grub
    $ sudo update-grub2
    
  • vi.重启且查看版本号

    $ uname -r # 查看内核版本是否正确
    

2. 前端软件包管理器aptapt-get

因为 Deepin 20.9社区版是基于Debian系统的,所以对软件包管理器的使用直接参考Deepin系统即可。 “前端软件包管理器"的概念,可以对标 Mac 中的 Homebrew

apt-getapt:使用命令和差异

$ dpkg -l | grep <package_name> # 查找通过 apt install 安裝的package版本
$ sudo apt remove <package_name> # 移除该包

二、环境配置

1. git & ssh-key

$ sudo apt intall git # 安装git
$ git --version

git ssh 设置: 参考Git 中 ssh key、https 配置及用户名、邮箱基本信息配置- Blogs

2. node相关: npm、版本管理

参考: 如何在 Debian 10 上安装 Node.js

方式1:默认存储库中的 Apt 安装

# 注意,不会安装最新版本
$ sudo apt install nodejs npm -y # 只能升级到旧版本
$ node -v # 验证 10.x.x

方式2: 使用 NodeSource ,通过 Apt 安装

$ sudo apt remove nodejs npm # 卸载旧版本

$ curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash - # 官网查找对应的lts版本
$ sudo apt install -y nodejs
$ node -v

方式3: 使用 nvm 管理 node 多版本 【推荐
注意: nvm管理的多版本node,互相独立(包括node_modules)

$ curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash # 将 nvm 脚本安装到的用户帐户
$ source ~/.bashrc # 刷新
$ nvm list-remote # 列出可用版本
$ nvm install 20.11.1 # 安装: 查看官网获取lts版本
$ nvm use 11.6
$ nvm alias default 11.7 # 设置默认版本

三、常用软件

1.科学上网: shadowsocks & clash

Adblock Plus Filters自定义规则 介绍了使用配置项,配置shadowsocksv2raySSR工具的自定义规则。虽然可以解决问题,但仍比较繁琐。下面介绍如何通过GUI解决这个问题。

1.1 shadowsocks

安装 shadowsocks跨端版本 electron-ssr-0.2.6.deb (阿里云盘)

可能出现问题:ssr配置完订阅,升级服务后,切换到PAC,仍然不能正常访问
解决思路: 打开全局代理,重新切回PAC代理即可

1.2 clash

方式1:clash命令行版本配合web ui教程

参考:kingfast使用教程

方式1-i: 启动 clash core
注意:linux一般下载clash-linux-amd64-xxx

# 第1步:下载Clash Core 二进制可执行文件
# 下载地址: https://github.com/doreamon-design/clash/releases
# 已fork到: https://github.com/lianpf/clash

# 第2步:解压 & 赋予执行权限
$ cd /home/lianpf/software/clash # 进入软件的安装目录
$ wget -c https://github.com/doreamon-design/clash/releases/download/v2.0.24/clash_2.0.24_linux_amd64.tar.gz # 下载失败,则手动去GitHub下载

$ tar -zxvf clash_2.0.24_linux_amd64.tar.gz # 解压缩文件

$ cd ..
$ chmod +x clash # 赋予执行权限

# 第3步:从订阅地址获取config.yaml
$ mkdir -p ~/.config/clash
$ wget -O ~/.config/clash/config.yaml https://sub.o4o.win/xxx?type=clash # 替换成你自己的clash订阅链接

# 第4步:启动
$ cd ~/.config/clash
$ ./clash # 在你clash的安装目录下执行命令启动。
# 运行Clash 会默认读取 $HOME/.config/clash 目录下的 config.yaml 文件

若运行提示端口被占用,则参考 Linux基础命令(Cloud Notes) 杀掉占用进程

运行clash报错如下:INFO[0000] Start initial compatible provider Ⓜ 微软服务    
...    
    
ERRO[0000] External controller listen error: listen tcp :9090: bind: address already in use 
WARN[0000] [CacheFile] can't open cache file: timeout   
ERRO[0000] create addr :7890 tcp listener error: listen tcp :7890: bind: address already in use 
ERRO[0000] create addr :7891 tcp listener error: listen tcp :7891: bind: address already in use 

方式1-ii: Web GUI(SwitchyOmega扩展)管理
可看到上一步,clash创建前置代理,http代理端口为:7890 ,socks5代理端口为:7891 ,RESTful API的端口是9090 (实际端口,以./clash执行后,终端输出的为准)

Chrome商店安装扩展,或点击 https://github.com/FelisCatus/SwitchyOmega/releases 下载

注意: 假如你使用代理客户端(linux内使用clash-windows),通常它可帮你合并端口。比如把以上的http、sockets等端口都设置为7890,那么你在【计算机系统 / 网络配置】里配置代理,和以下的端口配置中都可将所有端口设置为7890

浏览器打开:https://clash.razord.top/#/connections,进行配置:

方式2:clash for windows

资源下载地址:https://archive.org/

参考:manjaro-env-config/#科学上网

第1步:下载安装&启动测试
clash for windowslinux也能用。不过clash作者删库跑路了,所以无法通过github下载或使用apt安装,只能找互联网残存版本安装。下载地址 或安装【阿里云盘】版本

archive.org 下载linux 64位版本

第2步: 启动测试 & 桌面快捷方式

  • 软件安装目录内解压 & 启动测试

    $ cd ~/software/clash-windows
    $ tar -zxvf your_file.tar.gz # 解压你的文件到当前目录
    $ cp clash-windows/* clash-windows # 路径自行拼接:核心诉求就是把clash-windows解压后的所有内容,复制到clash-windows下
    
    $ cd clash-windows # 进入software安装目录下
    $ $ chmod +x /home/lianpf/software/clash-windows/cfw # 添加权限 (若无法启动cfw,则执行该步骤)
    $ ./cfw # 启动clash
    

    启动成功页面:

    • 终端显示:

    • 弹出clash GUI:

    • 切换代理设置页面:

      到此为止,clash已经安装成功。如果不需要配置【桌面快捷方式】,可跳过以下步骤,直接参考【系统代理】配置

  • 创建桌面快捷方式(选择cfw文件发送到桌面)

第3步: 系统代理
最后再打开系统设置,设置代理为clash端口,代理就倒腾完了 启动器/控制中心/网络/系统代理

9.其他:浏览器、热点


九、常见问题

1. Deepin系统快捷键有哪些?

参考 工具: 快捷键(Shortcut keys) | Blogs

2. 常见的终端命令

参考 Linux 基础命令 | CloudNotes

3. 社区20.9版本系统,不兼容inter 12代集成显卡,导致扩展显示器不可用

问题描述
清华镜像源安装的20.9社区版,内核是5.15.77版本,不兼容inter 12代集成显卡,导致电脑在连接到显示器时,无法检测到显示器

解决办法
升级内核至6.7.4版本。文件资源在【/阿里云盘/计算机系统/linux 6.7.4内核】,包括 linux-headers-xxx.deb 和 linux-image-xxx.deb 两个包:

  1. 首先点击安装linux-headers-xxx.deb包,该包含内核头文件,用于构建和安装内核模块。
  2. 然后安装linux-image-xxx.deb包,该包含了实际的内核镜像。

注意:

  • 确保linux-image-xxx.deblinux-headers-xxx.deb两个包,对应的版本号一致相匹配,以避免不兼容或产生其他问题
  • 通常情况下,两个包的安装最好还是按照【先headers后image】的顺序进行安装,以确保系统能够正确识别和使用新的内核版本
    • 直接手动点击这两个deb包,如果有依赖关系存在(比如linux-image-xxx.deb依赖于linux-headers-xxx.deb),包管理器会自动处理这些依赖关系,多数情况下会成功地安装内核头文件和内核镜像。
  • 无论是通过命令行还是手动点击执行,要确保安装过程中没有出现错误,并且新的内核能够正确地被系统识别和启用。

方式2:通过命令行安装包
首先使用dpkg命令安装linux-headers-xxx.deb,然后再安装linux-image-xxx.deb

# 在执行命令时,请将xxx替换为实际的版本号。安装完成后,系统会自动选择新的内核作为默认内核
sudo dpkg -i linux-headers-xxx.deb
sudo dpkg -i linux-image-xxx.deb

4. emoji失效问题?

链接: https://lianpf.github.io/posts/computer-basics/deepin-env-config/

安装 fonts-noto-color-emoji 字体包,Noto Color EmojiGoogle 维护的一款支持彩色 emoji 的字体,适用于大多数 Linux 发行版。

$ sudo apt update
$ sudo apt install fonts-noto-color-emoji

重启电脑。如果没生效,请再运行清理并刷新字体缓存,然后重启Chrome或VS Code等应用,使新配置生效。

$ fc-cache -f -v

参考:Deepin 社区


参考


最后, 希望大家早日实现:成为编程高手的伟大梦想!
欢迎交流~

微信公众号

本文版权归原作者曜灵所有!未经允许,严禁转载!对非法转载者, 原作者保留采用法律手段追究的权利!
若需转载,请联系微信公众号:连先生有猫病,可获取作者联系方式!