Jermineの博客

Jermineの博客

用心若镜,不将不迎,应而不藏,故能胜物而不伤. ——《庄子·应帝王》

  • 首页
  • Github
  • Go语言标准库
  • Nyx
  • 关于我

从 Gitea 到 Forgejo:开源代码托管与 CI/CD 的选型、对比与实践

在开源代码托管平台的选择上,Gitea 凭借轻量、易部署的特性,一直是很多开发团队的首选。但近两年来,Forgejo 的出现和崛起,给这个领域带来了新的变量。

Gitea 和 Forgejo 到底是什么关系?它们的 CI/CD 能力有何差异?如何基于它们搭建现代化的 DevOps 流水线?又能否将 Kubernetes 作为 CI/CD 的执行环境?

这篇文章将基于我们团队的调研和实践,一次性讲清楚这些问题。

2026年06月25日

在 Debian 12 上编译安装最新版 Buildah 1.44.0

解决 libsubid.so.5 缺失错误,并升级到最新版本的全过程记录。

问题背景

在 Debian 12 (bookworm) 上执行 buildah -v 时遇到以下错误:

buildah: error while loading shared libraries: libsubid.so.5: cannot open shared object file: No such file or directory

用 ldd 检查依赖后发现三个缺失项:

缺失的库 原因
libsubid.so.5 Debian 12 只有旧版本,不兼容
libgpgme.so.45 Debian 12 只有 libgpgme.so.11
GLIBC_2.38 Debian 12 的 GLIBC 版本是 2.36

根因分析

/usr/bin/buildah 二进制文件被替换成了针对较新系统(如 Debian 13/trixie 或 Ubuntu 24.04)编译的版本,与当前 Debian 12 系统不兼容。

2026年06月17日

使用buildah在容器中构建镜像

背景

多年来, Kaniko一直是构建镜像的首选方案,它是谷歌专为在非特权容器内构建镜像而开发的工具,无需 Docker 守护进程。然而在 2025 年 6 月,谷歌将该代码库归档,现在它已变为只读。GitLab 也已移除 Kaniko 的相关文档,并推荐使用 Buildah 或 Podman 等替代工具。

2026年03月15日

跨平台音乐播放器

MusicFree下载安装

  • 项目地址:
    • 手机端:https://github.com/maotoumao/MusicFree
    • 桌面端:https://github.com/maotoumao/MusicFreeDesktop
  • 插件地址:
    • https://musicfreepluginshub.2020818.xyz/plugins.json

2025年05月11日

如何在手机终端上使用claude-code?

在Termux中使用proot-distro运行ubuntu

直接在termux中安装claude code会遇到下面错误:

bun -version
error: "/data/data/com.termux/files/home/.bun/bin/bun" has unexpected e_type: 2

这个错误是因为bun是为标准Linux环境(依赖glibc库)编译的,和Termux的Android环境(bionic libc)不兼容。

2021年02月18日

git通过https协议使用仓库时如何记住token?

git通过https协议使用仓库时如何记住token?

通过配置 Git 的凭据助手(credential helper),可以记住 HTTPS 访问时需要的用户名和 Token(作为密码),避免重复输入。

常用方法(按安全性/便捷性排序)

1. 临时缓存(适合短期使用)

1git config --global credential.helper cache
2# 默认缓存 15 分钟,可修改超时(秒):
3git config --global credential.helper 'cache --timeout=3600'

2. 永久存储到文件(明文,安全性低)

1git config --global credential.helper store
2# 凭据会保存在 ~/.git-credentials,首次输入后永久生效

3. 使用操作系统安全存储(推荐)

  • Windows(Git for Windows 自带)
    1git config --global credential.helper manager-core
    2# 或旧版:git config --global credential.helper wincred
    
  • macOS(钥匙串)
    1git config --global credential.helper osxkeychain
    
  • Linux(需要安装 libsecret)
    1sudo apt-get install libsecret-1-0 libsecret-1-dev
    2sudo make -C /usr/share/doc/git/contrib/credential/libsecret
    3git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
    
    或者使用 gnome-keyring 等。

4. 直接在远程 URL 中嵌入 Token(一次性配置,URL 变更)

1git remote set-url origin https://你的用户名:你的token@github.com/用户名/仓库.git

⚠️ Token 会明文存储在 .git/config 中,且 git remote -v 会暴露 Token。

2021年02月18日

处理git无法显示中文的问题

git pull 遇到乱码

执行git pull 输出好多编码非中文的字符:

 1remote: Enumerating objects: 42, done.
 2remote: Counting objects: 100% (42/42), done.
 3remote: Compressing objects: 100% (18/18), done.
 4remote: Total 32 (delta 9), reused 32 (delta 9), pack-reused 0 (from 0)
 5Unpacking objects: 100% (32/32), 4.17 KiB | 8.00 KiB/s, done.
 6From github.com:JermineHu/jerminehu.github.io
 7   08d9ec6..9c5c1ec  master     -> origin/master
 8Updating 08d9ec6..9c5c1ec
 9Fast-forward
10 .../29\346\227\245/\345\205\263\344\272\216claude code\344\275\277\347\224\250.md" | 39 +++++++++++++++++++++++++++++++++++++++
11 .../30\346\227\245/\346\210\220\344\270\272\350\207\252\345\267\261.md"            |  1 +
12 .../03\346\227\245/\345\205\263\344\272\216\347\235\241\347\234\240.md"            | 21 +++++++++++++++++++++
13 ...203\345\271\263\350\203\275\346\204\210\344\270\211\345\215\203\347\226\276.md" | 15 +++++++++++++++
14 ...214\345\222\214\346\203\263\346\210\220\344\270\272\347\232\204\344\272\272.md" | 14 ++++++++++++++
15 .../05\346\227\245/\346\234\235\350\212\261\345\244\225\346\213\276.md"            |  6 ++++++
16 6 files changed, 96 insertions(+)
17 create mode 100644 "6. \350\241\250\350\276\276/\345\215\241\347\211\207/2026\345\271\264/2\345\255\243\345\272\246/05\346\234\210/03\346\227\245/\345\205\263\344\272\216\347\235\241\347\234\240.md"
18 create mode 100644 "6. \350\241\250\350\276\276/\345\215\241\347\211\207/2026\345\271\264/2\345\255\243\345\272\246/05\346\234\210/05\346\227\245/\345\277\203\345\271\263\350\203\275\346\204\210\344\270\211\345\215\203\347\226\276.md"
19 create mode 100644 "6. \350\241\250\350\276\276/\345\215\241\347\211\207/2026\345\271\264/2\345\255\243\345\272\246/05\346\234\210/05\346\227\245/\346\210\221\344\273\254\347\273\210\345\205\266\344\270\200\347\224\237\345\257\273\346\211\276\347\232\204\357\274\214\345\272\224\350\257\245\346\230\257\350\207\252\345\267\261\345\226\234\346\254\242\347\232\204\347\224\237\346\264\273\346\226\271\345\274\217\357\274\214\345\222\214\346\203\263\346\210\220\344\270\272\347\232\204\344\272\272.md"
20 create mode 100644 "6. \350\241\250\350\276\276/\345\215\241\347\211\207/2026\345\271\264/2\345\255\243\345\272\246/05\346\234\210/05\346\227\245/\346\234\235\350\212\261\345\244\225\346\213\276.md"

解决方案:

遇到的问题是 Git 默认将非 ASCII 路径名(如中文)转义为 \nnn 形式的八进制编码,这是为了确保在老旧或非 UTF-8 环境中输出不会乱码。解决办法很简单:关闭路径转义。

2021年01月18日

解决GPU显存未释放问题

定位问题

我们在使用tensorflow+pycharm或者PyTorch写程序的时候, 有时候会在控制台终止掉正在运行的程序,但是有时候程序已经结束了,nvidia-smi也看到没有程序了,但是GPU的内存并没有释放,这是怎么回事呢?

2019年03月21日

Openshift Setup

介绍:

OpenShift是红帽的云开发平台即服务(PaaS)。自由和开放源码的云计算平台使开发人员能够创建、测试和运行他们的应用程序,并且可以把它们部署到云中。Openshift广泛支持多种编程语言和框架,如Java,Ruby和PHP等。另外它还提供了多种集成开发工具如Eclipse integration,JBoss Developer Studio和 Jenkins等。OpenShift 基于一个开源生态系统为移动应用,数据库服务等,提供支持。 OpenShift Online服务构建在Red Hat Enterprise Linux上。Red Hat Enterprise Linux提供集成应用程序,运行库和一个配置可伸缩的多用户单实例的操作系统,以满足企业级应用的各种需求。

2019年03月15日

基于Docker部署ceph分布式文件系统[MImic13.2

本文记录了基于docker部署最新ceph版本的多节点高可用测试详尽过程,切身体会比ceph-deploy方便得多,希望能给初次接触ceph的同学提供些许参考。

2019年01月24日
  • ««
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
  • »»

标签

  • agent3
  • ai4
  • ai agent1
  • aider1
  • ai编程1
  • all1
  • alpine linux1
  • arm6
  • arm646
  • autossh2
  • buildah2
  • c/c++2
  • ceph1
  • chart1
  • ci/cd2
  • claude code7
  • cli2
  • cloudflare1
  • code-review1
  • codex2
  • conda1
  • cross-compiling1
  • cuda4
  • cursor2
  • database1
  • debian1
  • debug1
  • deeplearn3
  • devops6
  • dns1
  • doas1
  • docker20
  • dotnet core1
  • editor1
  • efficiency4
  • forgejo1
  • fuse1
  • gatus1
  • gdb1
  • gemini cli1
  • git6
  • gitea1
  • go2
  • golang6
  • gpu1
  • harbor3
  • helm1
  • hud1
  • influxdb1
  • jenkins2
  • jermine1
  • jira2
  • k8s3
  • kimi1
  • kubernates2
  • kubernetes4
  • kvm5
  • ldap2
  • linux34
  • linux管理1
  • markdown1
  • mcp1
  • microservice1
  • mirrors1
  • mq1
  • music1
  • nexcloud1
  • nvida-docker1
  • nvidia3
  • obsidian1
  • openclaw1
  • opencv2
  • openshift2
  • openstack1
  • ppt1
  • prompt engineering1
  • proot-distro1
  • python3
  • raspberry-pi7
  • rdp1
  • registry1
  • reviewboard1
  • samba1
  • server4
  • shortcut keys1
  • skill1
  • sse1
  • ssh2
  • ssh-tunnel2
  • swap1
  • tensorflow3
  • termux1
  • tools5
  • ubuntu1
  • vs-code2
  • web1
  • websocket1
  • windows4
  • wsl1
  • zsh2
  • 交叉编译1
  • 产品经理1
  • 代理1
  • 代码托管1
  • 健康检查1
  • 关于我1
  • 写作1
  • 协议2
  • 反向代理1
  • 反向隧道1
  • 反思1
  • 哲学1
  • 容器2
  • 嵌入式1
  • 工作流1
  • 庄子1
  • 应物1
  • 开发工具2
  • 开源1
  • 心性1
  • 成本优化1
  • 故障排查1
  • 效率工具2
  • 敏捷开发1
  • 文件系统1
  • 武汉大学授课1
  • 监控1
  • 端口转发1
  • 终端2
  • 编程工具1
  • 编译安装1
  • 自动化1
  • 课程1
  • 跳板机1
  • 远程桌面1
  • 项目管理1
  • 飞书1

归档

标签云

agent ai ai agent aider ai编程 all alpine linux arm arm64 autossh buildah c/c++ ceph chart ci/cd claude code cli cloudflare code-review codex conda cross-compiling cuda cursor database debian debug deeplearn devops dns doas docker dotnet core editor efficiency forgejo fuse gatus gdb gemini cli git gitea go golang gpu harbor helm hud influxdb jenkins jermine jira k8s kimi kubernates kubernetes kvm ldap linux linux管理 markdown mcp microservice mirrors mq music nexcloud nvida-docker nvidia obsidian openclaw opencv openshift openstack ppt prompt engineering proot-distro python raspberry-pi rdp registry reviewboard samba server shortcut keys skill sse ssh ssh-tunnel swap tensorflow termux tools ubuntu vs-code web websocket windows wsl zsh 交叉编译 产品经理 代理 代码托管 健康检查 关于我 写作 协议 反向代理 反向隧道 反思 哲学 容器 嵌入式 工作流 庄子 应物 开发工具 开源 心性 成本优化 故障排查 效率工具 敏捷开发 文件系统 武汉大学授课 监控 端口转发 终端 编程工具 编译安装 自动化 课程 跳板机 远程桌面 项目管理 飞书
RSS 订阅

Powered by Jermine © 2026 Jermineの博客