Linux 系统初使用?

说来话长了。。。本人小时候家里没有电脑,平时也基本接触不到电脑。在21年的时候,估计是贴吧逛多了,然后按捺不住,想要拥有一台自己的电脑玩些奇奇怪怪的东西,于是偷偷地省父母给的饭钱,在 keng duo duo 买了一堆硬件回来组装电脑。接着,用手机、自己拆充电线焊接的 OTG 转接器、还有内存卡做了个系统盘,装机。显示器用的还是楼下捡的 VGA 监视器……

开始只是浅浅地看些番玩些 Gal 罢了,但是后来因为沉迷了某部偶像番, 也慢慢地(大概?)接触到了字幕圈还有压制圈,认识了许多的大佬,学到了许多的知识,不过似乎还学了一些好像无关紧要的知识。不过也似乎是因为过于沉迷这些新奇的事物,而且还把这些东西当作了逃避现实世界的避风港,搞得整个高中的学业都没搞好,人际关系也是一团糟,身体素质也差了不少。

之后因为一些奇奇怪怪的缘由(已经记不清楚了,大概是建站?),开始用起了 Linux 系统。开始先是用个机顶盒刷了 Armbian,然后又去买了些竞价实例的云服务器玩玩,再后来到实体机安装,发现 Linux 系统还挺省内存的,软件也好编译和开优化,性能也比 Windows 好点(大概是因为内存不够用又不想额外花钱)

最近这段时间先是用了 Ubuntu,但发现坑太多,于是听从大佬的建议,上了基于 ArchLinux 的 Manjaro,确实舒服不少。好了不说了,接下来就是一些从杂七杂八的地方搜罗来的笔记了。

Ubuntu 使用笔记

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# rpm 包转换为 deb 包以及 deb 包的安装
sudo alien x.rpm
sudo dpkg -i x.deb

# GCC 编译器版本切换 (Ubuntu 22.04)
sudo apt install gcc-11 gcc-11-multilib g++-11 g++-11-multilib gcc-12 gcc-12-multilib g++-12 g++-12-multilib ......

# --slave能保证gcc和g++保持相同的版本
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 90 --slave /usr/bin/g++ g++ /usr/bin/g++-12 --slave /usr/bin/gcov gcov /usr/bin/gcov-12
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 80 --slave /usr/bin/g++ g++ /usr/bin/g++-11 --slave /usr/bin/gcov gcov /usr/bin/gcov-11
sudo update-alternatives --config gcc

# python 不同版本的安装与配置
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.11

# python 的编译与安装
apt install build-essential zlib1g-dev libncurses5-dev libncursesw5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libbz2-dev liblzma-dev sqlite3 libsqlite3-dev tk-dev uuid-dev libgdbm-compat-dev libgdbm-dev libc6-dev
wget https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tar.xz
tar xf Python-3.11.5.tar.xz
./configure --enable-optimizations --with-lto --prefix=/home/ubuntu/myenc ...略
make -j$(nproc)
make altinstall

# 使用 apt-cache rdepends 找到应用依赖项
apt-cache rdepends python3.10

# 同上 (非常不建议使用,系统容易炸)
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 10
sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.11 20
sudo update-alternatives --config python3
sudo ln -s /usr/local/bin/python3.11 /usr/bin/python3.11

# 若碰到 No module named 'apt_pkg' 的问题,如果apt_pkg.so已存在,则使用 ln -fs xxx (不过系统其他地方还会抽风)
# 其他方法 https://blog.csdn.net/StillOnMyWay/article/details/114492675
cd /usr/lib/python3/dist-packages/
ln -s apt_pkg.cpython-310-x86_64-linux-gnu.so apt_pkg.so

# 安装不同pip
curl -L https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python#.## get-pip.py
pip#.## -V 或 python#.## -m pip -V

# vapoursynth 编译与安装
# 参照 .github/workflows/*.yml
# 首先安装编译依赖项
sudo apt install autoconf automake libtool pkg-config cmake nasm ninja-build

# 如果想安装更高版本的nasm:
wget https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/linux/nasm-2.16.01-0.fc36.x86_64.rpm
sudo alien nasm-2.16.01-0.fc36.x86_64.rpm && sudo dpkg -i nasm*.deb

# 编译安装 zimg
git clone https://github.com/sekrit-twc/zimg --depth 1 --shallow-submodules --recurse-submodules
pushd zimg
./autogen.sh
./configure --prefix=/usr
make -j$(nproc)
sudo make install -j$(nproc)
popd

# 编译安装vapoursynth
python3 -m pip install -U pip
pip3 install -U cython setuptools wheel
git clone https://github.com/vapoursynth/vapoursynth
cd vapoursynth
./autogen.sh
./configure --prefix=/usr
make -j$(nproc)
sudo make install
python setup.py sdist -d sdist
mkdir empty
pushd empty
pip install vapoursynth --no-index --find-links ../sdist
popd
python -m unittest discover -s test -p "*test.py"

# 零零碎碎
ldd xxx.so # 查询依赖库
du -sh "目录" # 查看目录占用大小
df -h # 查看磁盘使用情况
lsblk
blkid
mount -t "disk-type" /dev/the-disk-you-want-to-mount /dir/you/want/to/mount/to
vim /etc/fstab

Manjaro 使用笔记

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 时间配置
sudo timedatectl set-local-rtc 1
sudo ntpdate time.windows.com
sudo hwclock --localtime --systohc

# 包管理
sudo pacman-mirrors -c China

# https://mirrors.ustc.edu.cn/help/archlinuxcn.html
# 在 /etc/pacman.conf 文件末尾添加两行:
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
# 接着执行
sudo pacman -Syyu
sudo pacman-key --lsign-key "[email protected]"
sudo pacman -S archlinuxcn-keyring

# 不知是系统问题还是我手贱,导致 archlinux-keyring 安装出错了,archlinux-keyring 的所有文件均为 0B,无法更新软件包,遂这样解决(建议还是先看一下 aur 以及 archlinux wiki 才操作,以免误操作):
sudo rm -f /usr/bin/archlinux-keyring-wkd-sync /usr/lib/systemd/system/archlinux-keyring-wkd-sync.service /usr/lib/systemd/system/archlinux-keyring-wkd-sync.timer /usr/lib/systemd/system/timers.target.wants/archlinux-keyring-wkd-sync.timer /usr/share/pacman/keyrings/archlinux-revoked /usr/share/pacman/keyrings/archlinux-trusted /usr/share/pacman/keyrings/archlinux.gpg
sudo pacman -Syy archlinux-keyring

# 重置软件包 pgp
sudo rm -rf /etc/pacman.d/gnupg
sudo pacman-key --init
sudo pacman-key --populate
sudo pacman-key --refresh-keys

# 重新生成 grub 引导 (如果系统语言已经改成中文的话,引导界面也会改成中文)
sudo grub-mkconfig -o /boot/grub/grub.cfg
# 重新生成 initramfs
sudo mkinitcpio -P

# 字体
sudo pacman -S noto-fonts-cjk noto-fonts-extra

CentOS7 使用

额,本来是不想折腾这个系统的,但是这个学期换专业了,不得不折腾了 [苦笑]
镜像的话,我是下载的 Minimal 2009 版本,然后安装在了 VMWare 上,具体过程这里就省略了(
接下来的话是安装后的操作。

    1. 网络配置
      发现安装 Minimal 后网络需要另外配置,不过也可以在安装的图形界面修改配置(具体暂时不展开
      教程:https://www.cnblogs.com/huanghanyu/articles/17278061.html (还是习惯使用中文,估计英文文档的话会更详细吧)
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      ip addr # 首先查看你的网卡
      vi /etc/sysconfig/network-scripts/ifcfg-ens33
      # ifcfg-ens33 指的是你可以连接外网的网卡,根据实际修改

      # 修改或添加:
      BOOTPROTO=dhcp
      ONBOOT=yes

      # vi/vim 按 i 切换输入模式,按 ESC 退出模式,接着 :wq 保存退出
      # 然后:
      systemctl restart network
      # 到这里应该就可以使用网络相关的操作了(yum update
    1. 安装桌面
      教程:https://www.cnblogs.com/u-drive/p/9832356.html
1
2
3
4
5
yum -y groups install "GNOME Desktop"
startx
systemctl get-default # 查看默认使用界面
systemctl set-default graphical.target # 设置默认启动为图形界面

其他?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Rust mirror
# https://mirrors.ustc.edu.cn/help/crates.io-index.html
# 在 $CARGO_HOME/config 中添加如下内容 ($CARGO_HOME 在 Windows 系统默认为:%USERPROFILE%\.cargo,在类 Unix 系统默认为:$HOME/.cargo):
[source.crates-io]
replace-with = 'ustc'

[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"

# Pip mirror
python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip

# Install NGINX Latest Version
# https://nginx.org/en/linux_packages.html