分类 Linux 下的文章

终于,所有工作都搬到我的Arch下面了,所以我把我的磁盘重新分了一遍区。这样一来分区更清晰,完全遵循了Linux 的文件管理习惯。但是因为我的电脑安装了三块硬盘,所以对一部分分区做了LVM,便于将多个磁盘统一成一个分区来使用。但这个过程中的坑还是有一些的。为了以后重装(如果需要的话)便捷,记录一下我的Arch配置过程。

一、我的分区结构

我的硬盘为128GSSD(sda)+1TSSD(sdb)+1THDD(sdc).分区方法如图所示

其中,两个lvm2 ps(物理卷)组合成了一个lvm卷组(类似windows跨区卷),名字叫linuxroot,在这个卷组上建立了一个ext4格式的逻辑卷,名字为rootfs。相当于这两个ps合起来的大小等于rootfs这个分区的大小(系统就安装在这个分区上)。

二、lvm的划分方法

我是通过KDE分区编辑器进行的,所以简单的记录一下即可。如果需要在安装过程中进行lvm相关的创建操作的话,需要另行搜索fdisk相关命令。这里只记录KDE分区编辑器的操作步骤。

2.1 创建物理卷

  1. 右键点击一块未分区的磁盘区域,选择新建
  2. 弹出的窗口中,“文件系统”选择lvm2 pv,确定
  3. 重复前两步,将想要组合到一起的区域都创建成lvm2 pv分区格式
  4. 应用更改,使操作生效

2.2 创建卷组

  1. 点击工具 - 新建卷组
  2. 设置好卷组名称,并在左侧勾选想要添加的物理卷,确定
  3. 重复前两步,按照自己的需要创建足够的卷组
  4. 应用更改,使操作生效

2.3 创建逻辑卷

进行过前两步后,主界面左侧的“设备”列表中应该已经出现卷组的选项了。点击对应的卷组切换,即可像操作磁盘一样,对卷组的空间进行划分,创建逻辑卷了。

与一般的分区不同的是,这里需要指定一个逻辑卷名称。

注意:这种逻辑卷的lable表示为 /dev/卷组名/逻辑卷名,或者是/dev/mapper/卷组名-逻辑卷名

三、lvm上安装Archlinux

按照Arckwiki的Installation guide进行到挂在分区之后(lvm分区挂载与一般分区挂载的命令相同,只是注意分区表示的形式即可),按下述步骤继续。

3.1 开启lvm支持

  1. 输入如下命令

    modprobe dm-mod
    vgscan
    vgchange -ay
  2. 编辑 /etc/mkinitcpio.conf ,在HOOKS一行添加 dm-mod、lvm2。即 HOOKS="dm-mod base udev ... block lvm2 filesystems"

之后返回Installation guide继续,直到安装了grub包后(安装grub进boot前),按下述步骤继续。

3.2 开启硬盘系统的lvm支持

  1. 编辑/etc/mkinitcpio.conf,在HOOKS一行添加lvm2。即HOOKS="base udev ... block lvm2 filesystems"
  2. 运行命令mkinitcpio -p linux

之后返回Installation guide继续,直到结束。

注:

  • 如果有异常,尝试向系统中添加lvm2这个包
  • 不推荐将efi分区放在lvm2卷组中(设置太麻烦),直接在硬盘上分出一部分比较好

四、软件包相关记录

4.1 图形界面

我永远追随KDE!

这一步安装的软件包是一些基础组件。如果想的话,在这里也可以只安装桌面环境,其他的都留到之后安装。

推荐在这一步安装以下软件包:

pulseaudio pulseaudio-alsa #声音相关
pulseaudio-bluetooth #蓝牙耳机
xf86-input-libinput #触摸板
plasma-meta #KDE桌面基础环境,更多组件可以在之后按需添加
fcitx kcm-fcitx#小企鹅输入法
sudo #sudo命令
latte-dock #KDE的dock栏插件

注意启动这几个服务:

systemctl enable sddm
systemctl enable bluetooth
systemctl enable NetworkManager
systemctl enable dhcpcd

注意:

  • sddm不可用root账户登陆,需要创建一个非root账户。通过命令useradd -m -g users -G wheel -s /bin/bash 用户名完成。
  • 设置用户的密码。包括root(如果之前没设置的话)
  • 需通过visudo命令,去掉%wheel ALL=(ALL)ALL一行的%,以让所有用户可以使用sudo命令。

4.2 配置软件源

添加archlinuxcn源,并打开32位库。

编辑/etc/pacman.conf,去掉[multilib]部分的注释,并在文件的结尾增加下面的文字:

[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

刷新软件仓库之后,通过pacman -S archlinuxcn-keyring增加cn源的钥匙环。

4.3 几个对我个人来说比较重要的组件

  • pacman -S yaourt,安装aur的辅助工具(需要archlinuxcn源的支持)
  • yaourt -S octopi,KDE下面的图形化包管理工具,4.4一节中一些模糊搜索安装用这个很快捷

4.4 额外功能的补全

4.4.1 全局菜单

安装以下几个包,即可实现几乎所有窗口的全局菜单化:

appmenu-gtk-module
octopi中,搜索 **dbusmenu** 得到的所有结果

4.4.2 Intel + NVIDIA双显卡

安装以下几个包:

nvidia #英伟达驱动
bbswitch #独立显卡电源控制
optimus-manager-qt-kde #能完整发挥独显性能的解决方案

4.4.3 zsh

通过pacman安装zsh,然后将此文件的内容覆盖到~/.zshrc中,完成配置。

注意:

  • 需要事先安装git命令
  • 通过chsh -s /bin/zsh来更改当前用户的默认终端

4.4.4 tlp

极致省电,电池电池工作时间赶超Windows. 根据我自己的笔记本优化,只适用于我自己

按照这篇文章安装tlp以及相关软件包并启动服务。之后将此文件中的内容覆盖到/etc/default/tlp中,保存即可

在tlp更新到1.3后,配置文件结构变更。上面的文件虽依旧可用,但位置应放在/etc,并文件名应变更为tlp.conf。最好的方法是对照上面的文件手动修改/etc/tlp.conf至一致。

4.4.5 DaVinci Resolve的依赖

可以通过aur安装DaVinci Resolve,但是依赖不全。需要手动添加下述依赖包:

cuda opencl-nvidia

最好将可选依赖都勾选上避免意外错误。同时调整Davinci Resolve的启动命令为通过独显启动。

4.5 一些常用的软件包

并没有全部记录下来。仅仅是将一些可能会忘掉的软件包名称记录在此。
软件包名用途
TIMdeepin.com.qq.officearchlinuxcn/aur-
微信wine-wechatarchlinuxcn/aur避免deepin-wine依赖的冲突,还能自由更新版本
DaVinci Resolvedavinci-resolve(free版本)davinci-resolve-studio(专业版本)aur,安装包需要自行下载并放到指定目录专业视频制作软件
Chromegoogle-chromearchlinuxcn/aur-
网易云netease-cloud-musicarchlinuxcn/aur-
WPSwps-officearchlinuxcn/aur-
typoratyporaaurMarkdown编辑器
Arctimearctimeaur字幕制作
motrixmotrixaur全能下载工具
gnome-settings-daemongnome-settings-daemonextraKDE下运行deepin-wine的一个关键组件
百度网盘baidunetdiskaur-

视频点此

当你拥有一台服务器,你能拿它来干什么?在上个视频里边,我提到了一种使用方法,就是构建成RSS服务器。那么还有什么操作能让我们利用上这玩意儿吗?
今天,就接着上一次的主题来聊聊,服务器还能干什么。

要知道,互联网运行的本质就是用网线连接起来的电脑在进行数据的交换。你现在浏览我上传的内容,那么实际上就是我把我的内容上传到了这个公共的、谁都可以访问的电脑上,你又从这个电脑上拉取了我上传的东西。而为了简化获取和搜索的流程,建立在这台公共电脑上面的网站就成了必不可少的内容索引工具。

所以,我们怎么能忽略掉服务器最主要的一个职能——建站呢?

你可能会问:

我为什么要建站?

这有很多理由。

1、你可以记录人生

过去的人喜欢写日记,一本一本地记录自己的故事。后来人们有了博客,再后来有了自媒体平台。在时代和用户习惯不断变迁的过程中,日记本的市场占有率不断下降,而自媒体平台的入驻,也要承担平台关闭后数据遗失的风险。个人网站则很好地规避了这一点,并且能更好地保护好自己的数据和文章。

2、你可以拥有一个个人简历

我们将自己的个人网站定义为自己的个人简历,这一点也是国际上比较主流的做法。普通的简历,无论是word、PPT还是PDF甚至是H5,这些模式都不能非常完整地展示一个人的个人经历和工作案例,但是个人网站可以做到。

3、你可以建立自己的资料库

这个资料库不局限于文字知识,同样可以包括你收集的任何可能的文件。但它与网盘又有所不同。网盘需要从你本地的电脑获取文件,存到它的硬盘中,而使用你自己的服务器来保存数据,不仅仅可以从本地上传,还可以通过定时任务让服务器自己从设定好的位置来获取文件,我们只需要到时去下载即可,省去了人工值守的工作。

更多的的作用暂且不提了,在之后的服务器应用内容中自然而然就能体现出来了。

如何搭建呢?

首先就要让服务器拥有运行网站的能力。这个能力最基本的体现就是在其他电脑访问服务器时可以提供内容出来。

要知道,我的视频是给纯新手的——毕竟大佬用不着看我的视频对不对。所以要利用简单的东西来完成。这里我们就使用宝塔面板。当然,这样简化了很多步骤,但对应的,其他的一些东西比如安全性、执行性能什么的就不要强求了。

废话2小时干货5分钟。终于到了实战的时候了。我们来看看宝塔面板要怎么安装。

你有兴趣跟着我的视频来到这里就说明你的主机是不包含网站相关组件的。如果有,切记不可安装宝塔面板。

安装宝塔面板

  1. 首先通过ssh连接到你的服务器——Windows服务器请通过远程桌面访问
  2. 打开宝塔面板的官网
  3. 对于Windows服务器,直接把官网下载的压缩包传上去解压,然后安装就行了。但恕我贫穷,没钱买可以让Windows server流畅运行的VPS。所以我也没法演示了
  4. 对于Linux服务器,我们点击“立即安装”,拷贝跳转到的页面中安装的那个指令到ssh窗口中,回车等待完成,我们的宝塔面板就配置好了

不出差错的话,宝塔面板就安装完成了

注:

  • 在这个页面也同时包含一些其他的注意事项什么的,建议简单浏览一下。
  • Windows不清楚在哪儿,但是Linux版本的安装过程结束的时候会有一个信息,告诉了你登录宝塔面板的地址、用户名和密码分别是什么,一定要记录下来
  • 如果使用腾讯云等之类的VPS,请注意把宝塔的端口号放行(一般Windows宝塔端口号888,Linux是8888)

安装网站环境

  1. 透过刚刚提供的信息登录面板,会提示安装环境

2、选择lnmp,等待安装完成

3、安装过程中建议前往面板设置,修改一下登录面板的用户名和密码


仅复制了一条命令,其他全部图形化完成了网站环境的搭建,够不够傻瓜化了?

当然,通过宝塔安装这些组件也有一个弊端,就是lnmp这些套件都放在了宝塔自定义的位置了,如果遇到一些问题,网上的解决方案往往对应不上。但是,鱼和熊掌不可兼得,都让你这么简单的安装这些基础组建了,还要啥自行车。

在安装好这些基础组件,我们就可以建立自己的网站了。那么网站要用什么建立,我们下次的“当你有了”系列视频再说。

以CentOS7为例。

1. 安装Python相关工具以及shadowsocks

yum install m2crypto python-setuptools
easy_install pip
pip install shadowsocks
若不能成功安装m2crypto,请先用以下命令安装其依赖包:
yum install -y openssl-devel gcc swig python-devel autoconf libtool

2. 配置chacha20加密方法(可选)

chacha20 加密算法后可以提高密钥加密和解密速度,同时可以规避GFW利用OpenSSL特性进行特征包跟踪的问题
  1. 安装套件:yum groupinstall "Development Tools"
  2. 下载libsodium:wget https://github.com/jedisct1/libsodium/releases/download/1.0.11/libsodium-1.0.11.tar.gz
  3. 编译安装:tar xvf libsodium-1.0.11.tar.gz && cd libsodium-1.0.11 && ./configure && make && make install
  4. 更新动态库:ldconfig

3. 服务器配置

vi /etc/shadowsocks.json

其中,shadowsocks名称随意更改,下面用到这个名称的地方注意对应即可。

写入如下配置:

{
"server":"0.0.0.0",
"server_port":your server port,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"your password",
"timeout":600,
"method":"chacha20",# 若未进行第二步,此处推荐设置为`aes-256-cfb`
"fast_open": false
}

其中:

server_port处填写你想要的端口号,之后在客户端中需要填入

password处填写连接密码

method处可以更改加密方法,一般默认即可

如果有多用户,可以通过下面方法配置:

{
"server":"0.0.0.0",
"local_address": "127.0.0.1",
"local_port":1080,
"port_password": {
"port1": "password1",
"port2": "password2"
},
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}

如上,只需添加多个端口和密码即可。

4. 配置防火墙端口

没有安装防火墙建议安装一下,然后开启防火墙相应的端口。这里以开启443端口为例。

firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --reload

5. 配置Shadowsocks 服务自启动

使用rc.local完成即可。注意需要先通过命令 chmod +x /etc/rc.local 保证该脚本可执行。

之后在该文件结尾加入一行
ssserver -c /etc/shadowsocks.json -d start
保存即可。

直播推流是离不开ffmpeg组件的。尤其像我这种全天推电视剧的直播间。而我不可能一直在我的电脑上开着直播(这不现实),所以我需要一台最基本的服务器来维持它。而一般的服务器默认都是配置CentOS系统的。而且推流也不是什么需要保证稳定的东西,因此通过yum直接安装是最省时省力的。但是CentOS默认的源中没有该组件。因此需要自行进行一些配置才可以。

1、安装EPEL Release

因为安装需要使用其他的repo源,所以需要EPEL支持

yum install -y epel-release

如果出现缺少Code提示,可以:
sudo rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

安装完成之后,可以查看是否安装成功:

yum repolist

2、导入一个Code

这一步可能不成功(提示404找不到文件),但是根据我的测试来看,对之后好像没什么影响。

rpm –import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

3、安装nux-dextop 源

rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm

可以通过 yum repolist 查看repo源,看是否安装成功

4、安装ffmpeg

yum install -y ffmpeg

完成。可以通过 ffmpeg -version 检查版本信息。

闲来去读DDE-Dock的代码,发现了一点儿东西,可以把颜色换成亮色,很简单。

从GitHub上下载DDE-Dock源码包

前往GitHub,搜索 DDE-dock ,可以找到 linuxdeepin/dde-dock 项目,进入之后下载即可。

修改代码

将下载的源码包解压,进入其中的 frame 文件夹。

  • 打开 main.cpp ,查找 dark ,将找到的文本改为light,保存退出。
  • 进入 panel 文件夹,打开 mainpanel.cpp ,查找 DarkColor ,将找到的更改为 LightColor
  • 在下一行,应该有一个设置颜色的函数,其参数为 55,63,71 .将这个值更改为 248,248,255 ,保存退出。

安装编译环境

该环境需要的包比较多,推荐在虚拟机中进行。

需要安装的包如下(通过apt命令安装即可):

cmake g++ qt-sdk qt-base5-dev libqt5x11extras5-dev libdtkwidget-dev libxcb-ewmh-dev libdframeworkdbus-dev libgsettings-qt-dev libdde-network-utils-dev libxcb-image0-dev libxcb-composite0-dev libxtst-dev libxcb-icccm4-dev libdbusmenu-qt5-dev qtbase5-private-dev

构建过程

在源码的根目录下打开终端,依次输入如下命令:

mkdir build
cd build
cmake ..
make

可能有一些插件报错,可以将报错的语句注释掉再进行构建,在接下来的安装过程中排除掉这些插件即可。

安装

  • build/frame 文件夹下可以找到 dde-dock 文件,用其替换掉 /usr/bin/dde-dock
  • build/plugin 文件夹下可以找到一些基本的dde-dock插件,用这些对应的替换掉 /usr/lib/dde-dock 下的同名文件(在这下面还有一些子文件夹,如果有对应的也一并替换掉)

重启电脑,DDE-dock的底色就变成Mac OS的模样了。

商店中的OBS版本实在不敢恭维…尤其到了15.7以后,推流总会闪退。遂想到来自己编译最新版本的OBS。而本着服务大众的理念,便将其打包成Appimage格式,便于传播的同时还可以避免各种依赖的问题。

一、编译安装OBS

OBS是开源软件,所以可以方便的从官方网站获取源码进行编译安装。

  1. 使用命令  sudo apt install build-essential pkg-config cmake git-core checkinstall 完成编译环境的搭建
  2. 使用
sudo apt install libx11-dev libgl1-mesa-dev libvlc-dev libpulse-dev libxcomposite-dev libxinerama-dev libv4l-dev libudev-dev libfreetype6-dev libfontconfig-dev qtbase5-dev libqt5x11extras5-dev libx264-dev libxcb-xinerama0-dev libxcb-shm0-dev libjack-jackd2-dev libcurl4-openssl-dev luajit-5.1-dev swig python3.6-dev libluajit-5.1-dev python3-dev ffmpeg 

安装依赖包

  1. 安装aac依赖: sudo apt-get install libavcodec-dev libavfilter-dev libavdevice-dev libfdk-aac-dev
  2. 编译安装OBS。下列命令依次执行(首先安装好git和cmake命令):
   git clone --recursive https://github.com/obsproject/obs-studio.git 
   cd obs-studio
   mkdir build && cd build
   cmake -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr ..
   make -j4
   sudo checkinstall --pkgname=obs-studio --fstrans=no --backup=no --pkgversion="$(date +%Y%m%d)-git" --deldoc=yes

编译安装完成,同时,在 obs-studio/build 下面可以找到一个deb格式的安装包。如果没有更新需要,保留这个安装包,以后就可以直接安装了(需要安装依赖)。

二、打包成appimage格式

诚如前面所讲,现在拥有的deb还是需要各种依赖才能正常安装运行的。如果为了携带或者便于传播,可以将当前版本打包成appimage格式的包。这样,通过一个文件便能在几乎所有Debian系的Linux上面运行了(不敢说RHEL系也能用,但是至少Debian系足够了)

  1. 前往 https://github.com/AppImage/AppImages ,点击文件列表右上绿色的Clone or Download按钮,弹出气泡选择Download ZIP,获得脚本
  2. 将下载得到的ZIP文件整体解压出来,得到一个名为 AppImages-master 的文件夹
  3. 将前面编译得到的deb文件复制进这个文件夹
  4. 在这个文件夹中打开终端,使用命令 bash -ex ./pkg2appimage recipes/OBS-Studio.yml 完成appimage的打包(过程较长,耐心等待)
  5. 完成。现在可以在 AppImages-master/out 下面找到刚刚打包好的appimage版本OBS了。

至此,新版本的OBS安装包制作完成。推流、录像都不再有问题了,美滋滋