将 git 放到 ubuntu 核心的最简洁方法是什么?

将 git 放到 ubuntu 核心的最简洁方法是什么?

在 Ubuntu 核心上使用 git 的原因有很多,例如使用 python3 或运行 docker-compose 之类的东西(核心附带 python3 并且 docker 可作为 snap 使用)。

但是,Ubuntu 核心没有可用的 git。

  • 它不附带 git
  • 没有 git snap
  • 核心上没有 c 编译器来编译它

当然,也可以将其从常规 Ubuntu 机器移出,使用 docker 或 LXD 安装常规的 debian 包,但这些都不是很干净和严格的方法。

将 git 放到核心上的预期和干净的方法是什么?

答案1

更新2022-08-10: 收到此回复后,有人告诉我,我可以在 ubuntu core 中使用 lxd 来实现相同的目的。这是推荐的方法,因为使用 lxd 需要的资源较少,并且与 Ubuntu 紧密集成。但我还没有亲自测试过。

原始回应:

我在 RaspberryPi 中遇到过同样的需求,最后解决了。

我建议使用基于 git 的 docker 镜像。

如果您没有可用的,您可以根据尽可能最小的一个来创建一个。

RaspberryPi 的 Ubuntu 核心支持 docker,因此可以安装 docker,然后使用基于 git 的映像,并可以在 RaspberryPi 中直接构建该映像。

安装 docker 和 git

sudo snap install docker
sudo docker pull alpine/git

存储库中提供了有关从具有自动删除功能的 docker 容器中使用 git 的说明https://github.com/alpine-docker/git

来自 alpine-docker 文档的一个示例

$ cd application
$ alias git="docker run -ti --rm -v $(pwd):/git -v $HOME/.ssh:/root/.ssh alpine/git"
$ git clone [email protected]:YOUR_ACCOUNT/YOUR_REPO.git
$ cd YOUR_REPO
$ alias git="docker run -ti --rm -v $(pwd):/git -v $HOME/.ssh:/root/.ssh alpine/git"
# edit several files
$ git add . 
$ git status
$ git commit -m "test"
$ git push -u origin master

注意:使用 Ubuntu Core 时可能需要添加sudogit 别名:

别名 git="须藤docker run -ti --rm -v $(pwd):/git -v $HOME/.ssh:/root/.ssh alpine/git"

注意 2:使用 git 时,它不是速度和性能的最佳解决方案,但您可以使用一些 Docker 知识使用相同的容器实例来改进解决方案,而不是为每个 git 命令创建一个。

注意 3:使用此解决方案时,CLI 上的自动完成命令将不可用

相关内容