BNU-FZH

fengzhenhua@outlook.com

ArchLinux是一款灵活、强大、可定制的Linux发行版,提供丰富的软件包和工具,支持滚动更新和多种桌面环境,拥有庞大的社区支持和方便的包管理器,适合各种用户需求和使用场景。Endeavour 是一个基于ArchLinux的轻量级和用户友好的发行版,预装了桌面环境和预配置的软件包,旨在提供一个无忧的ArchLinux体验。

阅读全文 »

今天更新我的笔记本电脑发现总是出错,错误信息如下:

sudo pacman -Syu
1
2
3
4
5
6
7
8
9
10
11
12
:: 进行安装吗? [Y/n] y
:: 正在获取软件包......
pandoc-cli-0.1.1.1-141-x86_64.pkg.tar.zst下载失败
全部 (1/8) 171.5 KiB 318 KiB/s 00:01 [#####################################] 100%
错误:无法从 mirrors.tuna.tsinghua.edu.cn : The requested URL returned error: 404 获取文件 'pandoc-cli-0.1.1.1-141-x86_64.pkg.tar.zst'
错误:无法从 mirrors.tuna.tsinghua.edu.cn : The requested URL returned error: 404 获取文件 'pandoc-cli-0.1.1.1-141-x86_64.pkg.tar.zst'
错误:无法从 mirrors.tuna.tsinghua.edu.cn : Protocol "rsync" not supported 获取文件 'pandoc-cli-0.1.1.1-141-x86_64.pkg.tar.zst'
警告:mirrors.tuna.tsinghua.edu.cn 返回错误过多,将在此事务的剩余部分中跳过
错误:无法从 rsync.mirrors.ustc.edu.cn : Protocol "rsync" not supported 获取文件 'pandoc-cli-0.1.1.1-141-x86_64.pkg.tar.zst'
警告:无法获取某些文件
错误:无法提交处理 (无法获取某些文件)
发生错误,没有软件包被更新。

造成错误的原因是办公室和宿舍同时配置了台式机,所以较长时间没有更新和使用我的Thinkpad T490 了. 解决方法为:重新生成一下源文件,然后再更新。

1
2
sudo reflector --verbose -c China --latest 12 --sort rate --threads 100 --save /etc/pacman.d/mirrorlist
sudo pacman -Syu

作为电子书管理的瑞士军刀,Calibre 一直备受书籍爱好者和数字书虫们的喜爱。虽然存在更好(更轻量级)的 电子书阅读器,但 Calibre 在创建电子书、转换格式以及管理你的电子书库方面做得更出色。简言之,它是满足你所有电子书需求的全套解决方案。

从ArchLinux仓库中安装 Calibre

1
sudo pacman -S calibre

如果您不需要它,可以使用pacman卸载 Calibre

1
sudo pacman -Rns calibre

获取最新版本的 Calibre

Calibre 官方 推荐安装提供的官方二进制文件。目的是防止用户使用存在错误或已过时的软件包。该二进制文件包含了所有私有版本的依赖项,支持 32 位和 64 位的机器。

安装依赖

1
sudo pacman -S xdg-utils wget xz-utils python3

从官网安装二进制文件

1
sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin
关于上述安装命令的解解释

考虑两种情况:

  1. sudo未配置为命令需要密码( NOPASSWD标记), 对sudo的两个调用都在没有任何提示的情况下成功。
  2. sudo被配置为需要命令的密码:
    • 如果它们最近进行了身份验证,sudo -v只需更新缓存凭据的时间戳即可。
    • 如果用户最近没有对sudo进行身份验证,它将提示他们输入密码;一旦经过验证,他们的凭据就会被缓存。

一旦sudo -v进程成功,第二个sudo sh /dev/stdin调用应该使用其缓存的凭据并不间断地运行。

考虑另一种情况( sudo仍然被配置为提示输入密码),其中没有初始的sudo -v命令。在这种情况下,wget可能已经将输出写到stdoutstderr,这可能会导致用户错过看到它,并想知道为什么什么都没有发生。

sh /dev/stdin的目的是什么?

在这里,sh是用一个参数作为command_file调用的,这个参数是一个特殊的文件--一个指向stdin的链接。

名称破折号-命令解释器(外壳)简要说明破折号.[command_file 争论...]

结果,sh读取command_file,期待并执行它的命令。这个特殊的stdin“文件”通过管道连接到来自wget的输出,因此最终的结果是将URL的内容发送到根级shell

我不知道为什么口径项目具体选择这种语法。备选办法包括:
1
2
... | sudo sh
... | sudo sh -

创建启动器

/usr/share/applications/calibre-gui.desktop
1
2
3
4
5
6
7
8
9
10
11
12
13
[Desktop Entry]
Version=1.0
Type=Application
Name=Calibre
GenericName=E-book library management
Comment=E-book library management: Convert, view, share, catalogue all your e-books
TryExec=/opt/calibre/calibre
Exec=/opt/calibre/calibre --detach %U
Icon=calibre-gui
Categories=Office;
X-GNOME-UsesNotifications=true
Keywords=epub;ebook;manager;
MimeType=application/x-cbz;application/x-cbc;application/x-mobipocket-ebook;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/ereader;application/x-cb7;application/x-mobi8-ebook;application/vnd.ms-word.document.macroenabled.12;application/vnd.ctc-posml;application/epub+zip;application/oebps-package+xml;image/vnd.djvu;application/x-cbr;application/x-sony-bbeb;application/x-mobipocket-subscription;x-scheme-handler/calibre;
/usr/share/applications/calibre-lrfviewer.desktop
1
2
3
4
5
6
7
8
9
10
11
12
[Desktop Entry]
Version=1.0
Type=Application
Name=LRF viewer
GenericName=Viewer for LRF files
Comment=Viewer for LRF files (SONY ebook format files)
TryExec=/opt/calibre/lrfviewer
Exec=/opt/calibre/lrfviewer %f
Icon=calibre-viewer
MimeType=application/x-sony-bbeb;
Categories=Office;Viewer;
Keywords=lrf;viewer;
/usr/share/applications/calibre-ebook-edit.desktop
1
2
3
4
5
6
7
8
9
10
11
12
[Desktop Entry]
Version=1.0
Type=Application
Name=E-book editor
GenericName=Editor for E-books
Comment=Edit E-books in various formats
TryExec=/opt/calibre/ebook-edit
Exec=/opt/calibre/ebook-edit --detach %f
Icon=calibre-ebook-edit
Categories=Office;WordProcessor
Keywords=epub;ebook;editor;
MimeType=application/xhtml+xml;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/x-mobi8-ebook;application/epub+zip;text/html;
/usr/share/applications/calibre-ebook-viewer.desktop
1
2
3
4
5
6
7
8
9
10
11
12
[Desktop Entry]
Version=1.0
Type=Application
Name=E-book viewer
GenericName=Viewer for E-books
Comment=Viewer for E-books in all the major formats
TryExec=/opt/calibre/ebook-viewer
Exec=/opt/calibre/ebook-viewer --detach %f
Icon=calibre-viewer
Categories=Office;Viewer;
Keywords=epub;ebook;viewer;
MimeType=application/x-cbz;application/x-cbc;application/x-mobipocket-ebook;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/ereader;application/x-cb7;application/x-mobi8-ebook;application/vnd.ms-word.document.macroenabled.12;application/vnd.ctc-posml;application/epub+zip;application/oebps-package+xml;image/vnd.djvu;application/x-cbr;application/x-sony-bbeb;application/x-mobipocket-subscription;

注意:各启动器文件所有者和群组都应当设置为root.

参考文章

Linux KDELinux GNOME桌面系统都使用 Desktop Entry Specification来描述程序启动配置信息。Desktop Entry 文件标准是由 X Desktop Group 制定的,目前最新的版本是"Desktop Entry Specification 1.5"。

有时候遇到一个较大的PDF文件,但是我们想得到一份压缩版的小文件,本文介绍几种方法。

Linux 中的命令 gostscript

安装gostscript工具

1
sudo pacman -S gostscript

压缩到可读的质量

1
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
-dPDFSETTINGS Option Description
-dPDFSETTINGS=/screen Has a lower quality and smaller size. (72 dpi)
-dPDFSETTINGS=/ebook Has a better quality, but has a slightly larger size (150 dpi)
-dPDFSETTINGS=/prepress Output is of a higher size and quality (300 dpi)
-dPDFSETTINGS=/printer Output is of a printer type quality (300 dpi)
-dPDFSETTINGS=/default Selects the output which is useful for multiple purposes. Can cause large PDFS.

Linux 使用ps2pdf命令

此命令 ps2pdf 将 PDF 转换为 PS,然后再转换回来,从而有效地压缩它。它可能并不总是有效,但它可以提供非常好的结果。

1
ps2pdf input.pdf output.pdf

建议您使用 -dPDFSETTINGS=/ebooks 设置以获得最佳性能,因为电子书的可读性最好,而且尺寸足够小。

1
ps2pdf -dPDFSETTINGS=/ebook input.pdf output.pdf

在线工具

问题描述

平时的工作中离不开编写脚本,LaTeX等纯文本文件。然而,有时候我们会遇到多个文件中存在某一个字符串,但是时间久了我们记不请哪个文件中有这个字符串. 由于技术的更新我们需要把这个字符串替换为新的字符串, 而一个文件一个文件的去人工查找,然后即使使用vim来替换也是一个相当大的工作量,同时也容易遗漏。

解决方案

本文介绍一条命令即可搞定这个操作:

1
sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`

命令解释

  • 命令行中的反单引号(和左上角~在同一个键上), 表示执行这条命令,并将其输出作为其他命令的参数。
  • 命令grep 原字符串 -rl 所在目录, 使用grep查找当前目录中含有原字符串的文件,并带有路径表示。
  • sed -i \"s/原字符串/新字符串/g\" 目标文件 表示使用sed将目标文件中的原字符串替换为新字符串

参考命令

设置畅言云评

畅言是业界领先的社交评论系统,同时支持 PC 端和移动端的访问方式,提供了一种全新的网站评论方式。畅言拥有多种常用账号登录、三重过滤机制、实时数据统计、数据快速导出、全面支持移动端等领先功能。完全满足各大网站的用户登录、评论、分享、审核需求。

  1. 创建账号或登录畅言,然后添加站点以获取 APP IDAPP SECRET

  2. enable 设置为 true,并将获取到的 APP ID(appid)APP SECRET(appkey)添加到 NexT 配置文件的畅言部分,如下所示:

    NexT config file
    1
    2
    3
    4
    5
    6
    # changyan
    changyan:
    enable: false
    appid:
    appkey:
    count: true

    注意:评论后,您需要一些时间才能看到评论数量的增加。

Next Comment Systems

为了让您更好地选择适合自己的桌面环境,本文精选了当前最受欢迎的 8 大主流 Linux 桌面环境。接下来,我们将逐一分析它们的长处和短板,希望能为你的选择提供参考。

1. KDE Plasma

KDE Plasma 桌面环境

KDE Plasma 桌面环境因其卓越的可定制性和对资源的高效利用而闻名。多项基准测试表明,KDE 在轻量级桌面环境中的表现甚至超越了 XFCE。

借助 KDE Connect 功能,KDE 极大地简化了手机与 Linux 系统之间的连接过程。Plasma 的浏览器集成功能,进一步实现了手机与浏览器之间的无缝连接,实现了信息的快速交互。

默认搭载 KDE 的 Linux 发行版有 openSUSE、Kubuntu 和 KDE Neon 等。如果你考虑在 Ubuntu 上安装 KDE,可以参考我们之前的教程。

优势亮点

  • 界面设计现代且精致,提供卓越的视觉体验。
  • 高度可定制,操作体验灵活多变。
  • 内置多种实用工具,有效提升工作效率。
  • 资源占用低,系统运行流畅。

对于初学者来说,KDE 丰富的定制选项可能需要一段时间来适应和学习。

2. MATE

MATE 桌面环境

MATE 桌面环境GNOME 2 的继承者,保留了其经典设计,为不习惯 GNOME 最新变革的用户提供了一个舒适的选择。

在坚守传统的基础上,MATE 团队也在推陈出新,推出了一系列的新功能。以 Ubuntu MATE 22.04 为例,它引入了多项值得关注的新特性。

作为轻量级桌面环境,MATE 对硬件要求不高,非常适合配置较低的设备。它还提供了一整套基本应用程序和多种提高效率的工具。

Ubuntu MATE 作为 Ubuntu 官方支持的版本之一,默认采用了 MATE 桌面。Linux Mint 和 Manjaro 等其他受欢迎的 Linux 发行版也提供了基于 MATE 的版本。

优势亮点

  • 继承 GNOME 2 的稳定性,带来熟悉且舒适的用户体验。
  • 作为轻量级桌面环境,对系统资源的占用很小。
  • 界面简洁,提供丰富的自定义选项,满足个性化需求。

MATE 力求简洁,但对于习惯直观操作的用户,可能需要一段时间来熟悉。

3. GNOME

GNOME 桌面环境

GNOME 桌面环境在 Linux 领域享有盛誉,多数著名 Linux 发行版都将其作为默认界面。它的设计哲学专注于易用性和可定制性,致力于提供一种既适合移动设备又适用于桌面电脑的独特体验。

尽管 GNOME 不属于轻量级桌面环境,对于配置较低的老旧电脑可能不是最佳选择,但 GNOME 团队在最新的 GNOME 44 版本中已经开始着重优化性能。

如果你追求卓越的用户体验,并且想要一种与传统 Windows 界面完全不同的新体验,GNOME 无疑是一个不错的选择。

GNOME 被 Debian、Fedora、openSUSE 和 Ubuntu 等主流发行版采用为首选桌面环境。

优势亮点

  • 提供现代化且对触摸屏友好的用户界面。
  • 通过 GNOME Shell 扩展,用户能够进一步增强桌面功能。
  • 支持深度定制,用户可以根据个人喜好调整桌面环境。

由于 GNOME 不是轻量级桌面,对于老旧或配置较低的电脑可能不太合适。

4. Cinnamon

Cinnamon 桌面环境

Cinnamon 桌面环境源自 GNOME 3,已经成为 Linux Mint 的标志性界面。它与 Windows 界面有着诸多相似之处,极大地降低了 Linux 新手的入门门槛。

Cinnamon 的设计理念是将现代风格与传统元素相结合,为用户提供一个既熟悉又具有现代感的操作体验。它对系统资源的要求相对较低,非常适合寻求平衡使用体验的用户。

优势亮点

  • 界面美观,视觉效果令人愉悦。
  • 为 Windows 用户提供了一个易于过渡的操作环境。
  • 允许用户根据个人喜好进行高度定制,满足不同的使用需求。

虽然 Cinnamon 界面友好,但对于习惯于直观操作的用户,可能需要一段时间来适应。

5. Budgie

Budgie 桌面环境

Budgie 桌面环境由 Solus 项目团队精心打造,Solus 是一个独立开发的 Linux 发行版。团队利用 GNOME 技术栈中的 GTK 等工具,打造出了这款具有独特风格的桌面环境。

Budgie 桌面环境融合了现代 UI 设计的美感和传统用户界面的实用性。它资源消耗适中,不完全属于轻量级,而是巧妙地在两者之间找到了平衡。

Ubuntu Budgie 作为 Ubuntu 的官方版本之一,采用了 Budgie 作为其默认桌面环境,提供了一个既现代又直观的用户体验。虽然 Budgie 不是所有主流 Linux 发行版的首选,但在 Solus 和 Ubuntu Budgie 中的出色表现,已经足以让用户耳目一新。

优势亮点

  • 界面直观,上手容易。
  • UI 设计现代而优雅,视觉效果吸引人。
  • 桌面操作流畅快速,确保了愉悦的用户体验。

虽然 Budgie 并非所有发行版的默认选择,但大多数 Linux 发行版都支持手动安装 Budgie 桌面环境。

6. LXQt

LXQt 桌面环境

LXQt 是一款基于 Qt 的轻量级桌面环境,它在低资源消耗的同时,提供了比 LXDE 更为现代和美观的用户界面。LXQt 的设计哲学在于简洁高效,尤其适合那些老旧或配置较低的电脑。

在实际使用中,LXQt 是 LXDE 在 Lubuntu 等发行版上的完美替代,它在保证性能的同时,提供了更加愉悦的视觉体验。

优势亮点

  • 作为极轻量级的桌面环境,LXQt 提供了迅速的响应和流畅的操作体验。
  • LXQt 的用户界面设计依然保持了现代感,提供了良好的视觉体验。

LXQt 的用户界面不够引人注目,可定制性相对一般。虽然只在少数 Linux 发行版上默认提供,但大多数发行版都支持手动安装 LXQt。

7. Xfce

Xfce 桌面环境

Xfce 桌面环境是众多桌面环境中的佼佼者,主打一个轻量级。与 LXQt 相比,Xfce 得到了更多主流 Linux 发行版的支持,并在资源消耗与功能性之间达到了平衡。

Xfce 以低资源消耗而广受赞誉,同时提供了功能完备且用户友好的体验。对于那些注重性能且不追求复杂定制的用户来说,Xfce 是一个理想的选择。

Zorin OS Lite 默认采用了 Xfce 桌面环境,此外,像 Manjaro Linux、Xubuntu、MX Linux 等主要 Linux 发行版也都将 Xfce 作为默认桌面环境,这进一步证明了它的普及度。

优势亮点

  • 对老旧硬件友好,即使在配置较低的电脑上也能流畅运行。
  • 提供现代化且视觉吸引力强的用户界面。
  • 提供类似 Windows 的熟悉操作环境,易于用户过渡。

Xfce 不支持某些高级定制功能,限制了一些深度个性化的需求。

8. Deepin

Deepin 桌面环境

在选择 Linux 桌面环境时,除了定制性和资源消耗,用户界面的美观度也是一个不可忽视的因素。Deepin 桌面环境正是凭借其卓越的美学设计和用户体验,在众多桌面环境中崭露头角。

Deepin 提供了一个类似于 macOS 的优雅界面,再结合流畅的动画效果和精心设计的布局,打造出了一个既美观又实用的操作环境。这种设计理念吸引了许多愿意为了更好的视觉体验而接受一些性能折中的用户。

起初,Deepin 桌面环境是 Deepin OS 的独有特色,但随着其受欢迎程度的提升,其他 Linux 发行版也开始采用 Deepin 桌面。例如,通过 UbuntuDDE 项目,可以将 Deepin 桌面环境成功集成到 Ubuntu,这标志着 Deepin 正在赢得更广泛的认可。

优势亮点

  • 提供了极具美感的用户界面,视觉吸引力十足。
  • 平滑的动画效果提升了整体的交互体验。

Deepin 桌面环境对资源的需求较高,在一些老旧硬件上可能出现反应迟缓的情况。


从 KDE Plasma 的高度可定制性,到 Xfce 的轻量级效率,再到 Deepin 的精美设计,每种 Linux 桌面环境都力求在功能、美观和性能之间找到完美的平衡点。希望本文能为你提供有价值的信息,帮助你做出明智的决策。

文章引用

8 款最佳 Linux 桌面环境推荐(2024)

默认情况下,Office 的批量许可版本(如 Office LTSC 2024)使用通用批量许可证密钥 (GVLK) 进行安装。GVLK 使 Office 能够自动发现并激活您的密钥管理服务 (KMS) 主机或 Active Directory 基础结构。

GVLKs for Office LTSC 2024

Product GVLK
Office LTSC Professional Plus 2024 XJ2XN-FW8RK-P4HMP-DKDBV-GCVGB
Office LTSC Standard 2024 V28N4-JG22K-W66P8-VTMGK-H6HGR
Project Professional 2024 FQQ23-N4YCY-73HQ3-FM9WC-76HF4
Project Standard 2024 PD3TT-NTHQQ-VC7CY-MFXK3-G87F8
Visio LTSC Professional 2024 B7TN8-FJ8V3-7QYCP-HQPMV-YY89G
Visio LTSC Standard 2024 JMMVY-XFNQC-KK4HK-9H7R3-WQQTV
Access LTSC 2024 82FTR-NCHR7-W3944-MGRHM-JMCWD
Excel LTSC 2024 F4DYN-89BP2-WQTWJ-GR8YC-CKGJG
Outlook LTSC 2024 D2F8D-N3Q3B-J28PV-X27HD-RJWB9
PowerPoint LTSC 2024 CW94N-K6GJH-9CTXY-MG2VC-FYCWP
Skype for Business LTSC 2024 4NKHF-9HBQF-Q3B6C-7YV34-F64P3
Word LTSC 2024 MQ84N-7VYDM-FXV7C-6K7CC-VFW9J

GVLKs for Office LTSC 2021

Product GVLK
Office LTSC Professional Plus 2021 FXYTK-NJJ8C-GB6DW-3DYQT-6F7TH
Office LTSC Standard 2021 KDX7X-BNVR8-TXXGX-4Q7Y8-78VT3
Project Professional 2021 FTNWT-C6WBT-8HMGF-K9PRX-QV9H8
Project Standard 2021 J2JDC-NJCYY-9RGQ4-YXWMH-T3D4T
Visio LTSC Professional 2021 KNH8D-FGHT4-T8RK3-CTDYJ-K2HT4
Visio LTSC Standard 2021 MJVNY-BYWPY-CWV6J-2RKRT-4M8QG
Access LTSC 2021 WM8YG-YNGDD-4JHDC-PG3F4-FC4T4
Excel LTSC 2021 NWG3X-87C9K-TC7YY-BC2G7-G6RVC
Outlook LTSC 2021 C9FM6-3N72F-HFJXB-TM3V9-T86R9
PowerPoint LTSC 2021 TY7XF-NFRBR-KJ44C-G83KF-GX27K
Publisher LTSC 2021 2MW9D-N4BXM-9VBPG-Q7W6M-KFBGQ
Skype for Business LTSC 2021 HWCXN-K3WBT-WJBKY-R8BD9-XK29P
Word LTSC 2021 TN8H9-M34D3-Y64V9-TR72V-X79KV

GVLKs for Office 2019

Product GVLK
Office Professional Plus 2019 NMMKJ-6RK4F-KMJVX-8D9MJ-6MWKP
Office Standard 2019 6NWWJ-YQWMR-QKGCB-6TMB3-9D9HK
Project Professional 2019 B4NPR-3FKK7-T2MBV-FRQ4W-PKD2B
Project Standard 2019 C4F7P-NCP8C-6CQPT-MQHV9-JXD2M
Visio Professional 2019 9BGNQ-K37YR-RQHF2-38RQ3-7VCBB
Visio Standard 2019 7TQNQ-K3YQQ-3PFH7-CCPPM-X4VQ2
Access 2019 9N9PT-27V4Y-VJ2PD-YXFMF-YTFQT
Excel 2019 TMJWT-YYNMB-3BKTF-644FC-RVXBD
Outlook 2019 7HD7K-N4PVK-BHBCQ-YWQRW-XW4VK
PowerPoint 2019 RRNCX-C64HY-W2MM7-MCH9G-TJHMQ
Publisher 2019 G2KWX-3NW6P-PY93R-JXK2T-C9Y9V
Skype for Business 2019 NCJ33-JHBBY-HTK98-MYCV8-HMKHJ
Word 2019 PBX3G-NWMT6-Q7XBW-PYJGG-WXD33

GVLKs for Office 2016

Product GVLK
Office Professional Plus 2016 XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99
Office Standard 2016 JNRGM-WHDWX-FJJG3-K47QV-DRTFM
Project Professional 2016 YG9NW-3K39V-2T3HJ-93F3Q-G83KT
Project Standard 2016 GNFHQ-F6YQM-KQDGJ-327XX-KQBVC
Visio Professional 2016 PD3PC-RHNGV-FXJ29-8JK7D-RJRJK
Visio Standard 2016 7WHWN-4T7MP-G96JF-G33KR-W8GF4
Access 2016 GNH9Y-D2J4T-FJHGG-QRVH7-QPFDW
Excel 2016 9C2PK-NWTVB-JMPW8-BFT28-7FTBF
OneNote 2016 DR92N-9HTF2-97XKM-XW2WJ-XW3J6
Outlook 2016 R69KK-NTPKF-7M3Q4-QYBHW-6MT9B
PowerPoint 2016 J7MQP-HNJ4Y-WJ7YM-PFYGF-BY6C6
Publisher 2016 F47MM-N3XJP-TQXJ9-BP99D-8K837
Skype for Business 2016 869NQ-FJ69K-466HW-QYCP2-DDBV6
Word 2016 WXY84-JN2Q9-RBCCQ-3Q3J3-3PFJ6

在安装完成gitlab-runner后,发现如要直接部署到gitlabgitlab-runner无法正常工作,使用diary.sh发布博客时还需要设置一段代码检测gitlab-runner是否以普通帐号运行,如果不运行则使用 gitlab-runner run 启动,这个操作不规范,虽然用了一段时间,但是今天还是决定修复这个问题。造成这个问题的原因是,在安装gitlab-runner时其默认建立了一个名为gitlab-runner的帐号,但是这个帐号又不在root组中,这个权限问题导致了部署博客时gitlab-runner无法正常运行。

解决方法

  • gitlab-runner加入开机启动:
    1
    2
    sudo systemctl enable gitlab-runner.service
    sudo systemctl start gitlab-runner.service
  • 查看gitlab-runner进程:ps aux|grep gitlab-runner 可以查看到gitlab-runner的工作目录和默认用户等一系列相关信息。
  • 卸载gitlab-runner默认用户:sudo gitlab-runner uninstall
  • 建立gitlab-runner的工作目录:mkdir /home/.gitlab-runner
  • 将用户设置为rootgitlab-runner install --working-directory /home/.gitlab-runner --user root
  • 重启服务:systemctl restart gitlab-runner.service
  • 再次查看gitlab-runner进程:ps aux|grep gitlab-runner

注意:--working-directory 也可以在设置在任何您喜欢的位置,为了避免造成家目录的混乱,此处我设置在了/home/.gitlab-runner.

参考文章

Next主题默认检测网站根目录安装的插件,将其视为内部的插件,对于某些未通过npm安装的插件视为第三方插件。Next主题有一些特定的插件,而这些插件在CDNJS的镜像网站上一般没有适配的对应,而Next默认调用https://cdnjs.cloudflare.com的速度又不是足够快。所以要完全适配Next主题的专有插件,必须安装@next-theme/plugins, 这样适配Next主题的特定插件就会在托管的网站内部加载,这可以保证Next的各项功能正常工作。操作如下:

1
2
diary --ThemeUpdate
npm install @next-theme/plugins

先更新Next主题的目的是匹配最新的@next-theme/plugins, 于是可以保证主题内部插件工作良好。然而Next主题的一些部分还采用了图标,这些图标并不在@next-theme/plugins范围内,其中最重要的local-search插件也会受到影响,所以需要加载CDN网站到第三方插件。目前国内有很多 NPMCDN镜像,其中速度比较快,库比较全的CDN为:

其中Zstatic用到了镜像回源,也就是说只要访问一次,文件就会被存储到国内的服务器上,再也不用担心缓存过期了,所以网络文章建议优先用这个。Next配置文件为:

hexo-site/_config.next.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
vendors:
internal: local
plugins: custom
# custom_cdn_url: https://cdnjs.cloudflare.com/ajax/libs/${cdnjs_name}/${version}/${cdnjs_file}
# custom_cdn_url: https://cdnjs.onmicrosoft.cn/ajax/libs/${cdnjs_name}/${version}/${cdnjs_file}
# custom_cdn_url: https://mirrors.sustech.edu.cn/cdnjs/ajax/libs/${cdnjs_name}/${version}/${cdnjs_file}
# custom_cdn_url: https://s4.zstatic.net/ajax/libs/${cdnjs_name}/${version}/${cdnjs_file}
custom_cdn_url: https://cdn.iocdn.cc/npm/${npm_name}@${version}/${minified}
# custom_cdn_url: https://cdn.jsdelivr.net/npm/${npm_name}@${version}/${minified}
# custom_cdn_url: https://github.elemecdn.com/${npm_name}@${version}/${minified}
# custom_cdn_url: https://npm.elemecdn.com/${npm_name}@${version}/${minified}
css: css
js: js
images: images

安装@next-theme/plugins后,可以保证PDFNext主题依赖的插件由站内加载,其他部分则由cdn镜像加载,于是多数的镜像均可以正常使用了,为确保访问的稳定重新切换为s4.zstatic.net.