刘帅的个人站

天行健,君子以自强不息

0%

hexo 迁移步骤

当更换电脑后,之前的hexo配置,theme等需要迁移,在此记录下来,以备不时之需。

1、安装hexo环境

hexo通过npm安装,需要安装nodejs环境。

1、安装nodejs

以centos安装为例。

  • 需要安装环境:
1
sudo yum install gcc-c++ make
  • nodejs
1
2
3
# setup_16.x可以选择安装版本,可以在nodejs官网查看支持的版本,修改16->安装版本
curl -sL https://rpm.nodesource.com/setup_16.x | sudo bash -
sudo yum install -y nodejs
  • 查看安装是否成功

    1
    2
    node -v
    npm -v

2、copy文件

需要拷贝原来blog的hexo的相关文件,如下:

1
2
3
4
5
1、_config.yml
2、package.json(没用到)
3、scaffolds/(没用到)
4、source/
5、theme/

将上面的文件/文件夹复制到新的电脑上,放到一个新的文件夹下,比如blog。

在copy到文件夹blog之前,需要对文件夹blog做初始化:

1
2
3
cd blog

hexo init

3、安装所需模块

1
2
3
4
npm install
npm install hexo-deployer-git --save
npm install hexo-generator-feed --save
npm install hexo-generator-sitemap --save

4、部署

1
2
hexo g
hexo deploy

5 、注意事项

由于现在github加了鉴权的机制,在通过hexo deploy部署时,如果是通过http的方式,会报无权限问题。

image-20230916173902188

只需把_config.yml的repo的链接改为ssh方式即可。

image-20230916174050264

当然,需要把宿主机的ssh的公钥id_rsa.pub上传到github即可。

6、插入图片

  • 插件方式,自动处理
1
npm install hexo-asset-image --save

第一次建个人网站,今后会在这里分钟分享一些个人diy项目,以及分享一些技术文档。

祝我自己玩的开心

制作debian rootfs的方法

qemu-debootstrap

如我们知道,debootstrap用以通过源制作debian/ubuntu 的基础rootfs。通常来说其分为下载(–foreign)和安装配置(–second-stage)两个阶段。对于跨平台的第一阶段下载只需要通过–arch置顶平台下载对应deb包,但是对于包安装则需chroot后在编译机上面虚拟目标机的deboosttap 执行安装。

1
2
3
4
5
6
7
8
9
10
$which qemu-debootstrap |xargs tail -n 10

if ! which "qemu-$qemu_arch-static" >/dev/null 2>&1; then
die "Sorry, couldn't find binary %s" "qemu-$qemu_arch-static"
fi

eval run debootstrap --arch "$deb_arch" --foreign $opts $args
mkdir -p "$target/usr/bin"
cp $(which "qemu-$qemu_arch-static") "$target/usr/bin"
run chroot "$target" /debootstrap/debootstrap --second-stage

提示:

如上代码片段所示qemu-debootstrap 功能:

  • line.7 指示debootstrap 第一阶段通过指定–arch 确定平台下载包。

  • line.9 拷贝qemu-arrch64-static 下的虚拟软件到rootfs /usr/bin 目录用以chroot

  • line10指示chroot后debootstrap 第二阶段。arm64 debian jessie

如上讨论,这里我们在x64 平台下载arm64(aarch64)平台rootfs并且尝试通过chroot实现初始用户、包安装重等操作。

安装依赖包

1
2
3
4
5
 #用以下载安装rootfs
sudo apt-get install debootstrap
#包含应用qemu-debootstarp,
#以及用以跨平台chroot的qemu-aarch64-static的应用软件
sudo apt-get install qemu-user-static

下载归档keyring

1
2
sudo apt-get install debian-archive-keyring
sudo apt-key add /usr/share/keyrings/debian-archive-keyring.gpg

通过源下载rootfs

1
2
3
4
sudo qemu-debootstrap --arch=arm64 
--keyring /usr/share/keyrings/debian-archive-keyring.gpg
--variant=buildd --exclude=debfoster
unstable debian-arm64 http://ftp.debian.org/debian

提示:如上已经分析qemu-debootstrap 源码,其操作已经包含编译机(x64)的下载和chroot后arm64(arm64)的包安装配置阶段。

deiban jessie 如上下载安装可能会因为包缺失提示下载失败,这里搜索寻找替换了老的软件源。

1
2
3
4
5
sudo qemu-debootstrap --arch=arm64 
--keyring /usr/share/keyrings/debian-archive-keyring.gpg
--variant=buildd --exclude=debfoster
--include=systemd-sysv jessie debian-jessie
https://mirrors.mediatemple.net/debian-archive/debianchroot

安装软件

  • chroot方式

    chroot 是linux 用以切换rootfs的一个应用,跨平台操作通过需要切换的rootfs 路径下的/usr/bin/qemu-aarch64-static 应用实现。
    如上通过qemu-debootstrap 跨平台下载rootfs之后,可以通过chroot增加用户和安装软件。

    1
    2
    3
    4
    5
    6
    7
    sudo chroot debian
    #挂载proc文件系统,否则部分命令无法运行,
    #比如htop,需要注意的是,在退出chroot时,要卸载proc文件系统
    mount -t proc proc /proc
    #之后就可以在x64 平台 虚拟 arm64 roofs,并且可以虚拟运行其软件。
    adduser pi
    apt-get install vim
    • nfs方式

      可以通过nfs的方式,挂在下载好的rootfs,然后安装需要的软件。