# 使用 Homebrew, apk, MacPorts, Nix, pacman, apt, zypper 安装 libgit2

查看 libgit2 的安装路径、可执行文件、元数据以及面向 AI 代理工作流的安全说明。

## 安装

```sh
sudo av install brew:libgit2
```

其他安装命令:

### macOS

- Homebrew (100%):

```sh
brew install libgit2
```

  证据: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install libgit2
```

  证据: MacPorts ports tree: devel/libgit2/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add libgit2
```

  证据: Alpine Linux edge package indexes: libgit2 from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Nix (92%):

```sh
nix profile install nixpkgs#libgit2
```

  证据: nixpkgs package indexes: pkgs/by-name/li/libgit2/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S libgit2
```

  证据: Arch Linux sync databases: libgit2 from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- Debian apt (92%):

```sh
sudo apt install libgit2-1.9
```

  证据: Debian stable package indexes: libgit2-1.9 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- Ubuntu apt (92%):

```sh
sudo apt install libgit2-1.7
```

  证据: Ubuntu 24.04 LTS package indexes: libgit2-1.7 from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz

- zypper (92%):

```sh
sudo zypper install libgit2-1_9
```

  证据: openSUSE Tumbleweed package metadata: libgit2-1_9 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

## 软件包事实

- **软件包键:** brew:libgit2
- **软件包管理器:** Homebrew
- **版本:** 1.9.6
- **来源摘要:** C library of Git core methods that is re-entrant and linkable
- **主页:** <https://libgit2.org/>
- **仓库:** <https://github.com/libgit2/libgit2>
- **已生成:** 2026-08-03T19:37:03+00:00

## 可执行文件

- git2 (别名)

## 安装行为

- Bottle: 不可用

## 版本和新鲜度

- 页面生成时间: 2026-08-03
- 管理器版本: 1.9.6
## 项目历史与用法

libgit2 is a portable C implementation of Git core methods as a re-entrant, linkable library. It became important because the original Git executable was not designed as an embeddable library, while editors, forges, desktop clients, hosting providers, and language bindings needed Git behavior inside long-running applications.

### 项目历史

GitHub's 2010 project announcement describes libgit2 as started by Shawn Pearce a few years earlier, then revived through a Google Summer of Code project by Vicent Marti with Scott Chacon as mentor. The immediate motivation was practical: Git's own code called die() and was not re-entrant, so GUI, web, and scripting users often had to fork and parse the Git binary.

The upstream README describes libgit2 as a portable pure-C implementation with a solid API, usable from C directly and through bindings. By 2020, maintainer Edward Thomson announced libgit2 1.0 after many years of planning and bug fixing; by late 2024 maintainers were publicly discussing planned ABI/API changes for libgit2 2.0 and SHA-256 support.

### 采用历史

libgit2's adoption followed the rise of Git as a developer platform rather than only a command-line tool. The upstream README says it is used by GUI clients, hosting providers, forges, utilities, and applications, with bindings for Ruby, .NET, Python, Node.js, Rust, and more.

Because it is a shared C library with many language bindings, package managers ship libgit2 as infrastructure for other packages. Its releases matter to downstreams when Git compatibility, transport security, SHA-1/SHA-256 behavior, or ABI stability changes.

### 使用方式

Applications use libgit2 to open repositories, inspect objects and references, read and write commits, perform network operations, and embed Git workflows without shelling out to the Git CLI.

The library is especially attractive for IDEs, Git GUI clients, web services, and language ecosystems that want native bindings. The included git2 executable is secondary; the main value is the API surface.

### 为什么软件包爱好者会关心

libgit2 is one of the canonical examples of turning a famous CLI tool's behavior into a stable embeddable library. For package nerds, the interesting part is not just Git support; it is ABI management, language binding compatibility, bundled-versus-system crypto and SSH choices, and the long path to a 1.0 library release.

It also explains why some packages depend on libgit2 even when Git itself is installed: they need in-process repository operations and predictable APIs, not subprocess output.

### 时间线

- 2008: Shawn Pearce had started libgit2 by the period described in GitHub's 2010 announcement.
- 2010: GitHub announced renewed libgit2 work after a Google Summer of Code effort by Vicent Marti.
- 2020: libgit2 0.99 was released on 19 February 2020 as the project approached 1.0.
- 2020: libgit2 1.0 was announced on 1 April 2020.
- 2024: Maintainers stated that libgit2 v1.9 was expected to be the final v1.x release line.
- 2025: libgit2 v1.9.2 release notes documented security fixes for external SSH execution and SSH credential creation.

### Related projects

- Git is the reference command-line system whose repository behavior libgit2 implements as a library. Rugged, pygit2, NodeGit, git2-rs, and .NET bindings are language-level entry points. GitHub, GitLab, Bitbucket-style forges, IDEs, and desktop Git clients are common application categories cited by project material.

### 来源

- <https://formulae.brew.sh/formula/libgit2>
- <https://github.blog/news-insights/libgit2-a-git-linkable-library/>
- <https://github.com/libgit2/libgit2>
- <https://github.com/libgit2/libgit2/discussions/6988>
- <https://github.com/libgit2/libgit2/releases>
- <https://libgit2.org/>
- <https://libgit2.org/docs>
- <https://www.edwardthomson.com/blog>


## 安全说明

library-like package without higher-risk signals.

- **Geiger 风险:** 绿色 / 低
- library-like package without higher-risk signals

## 其他软件包管理器记录

- Debian apt - libgit2-1.9 - 1.9.0+ds-2: normalized package name match | Debian stable package indexes: libgit2-1.9 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | low-level Git library | https://libgit2.github.com/
- Debian apt - libgit2-dev - 1.9.0+ds-2: normalized package name match | Debian stable package indexes: libgit2-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | low-level Git library (development files) | https://libgit2.github.com/
- Debian apt - libgit2-fixtures - 1.9.0+ds-2: normalized package name match | Debian stable package indexes: libgit2-fixtures from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | low-level Git library - test suite examples | https://libgit2.github.com/
- Nix - libgit2: normalized package name match | nixpkgs package indexes: pkgs/by-name/li/libgit2/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - libgit2-1.7 - 1.7.2+ds-1ubuntu3: normalized package name match | Ubuntu 24.04 LTS package indexes: libgit2-1.7 from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | low-level Git library | https://libgit2.github.com/
- Ubuntu apt - libgit2-dev - 1.7.2+ds-1ubuntu3: normalized package name match | Ubuntu 24.04 LTS package indexes: libgit2-dev from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | low-level Git library (development files) | https://libgit2.github.com/
- Ubuntu apt - libgit2-fixtures - 1.7.2+ds-1ubuntu3: normalized package name match | Ubuntu 24.04 LTS package indexes: libgit2-fixtures from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | low-level Git library - test suite examples | https://libgit2.github.com/
- apk - libgit2 - 1.9.6-r0: normalized package name match | Alpine Linux edge package indexes: libgit2 from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | linkable library for Git | https://libgit2.org/
- apk - libgit2-dbg - 1.9.6-r0: normalized package name match | Alpine Linux edge package indexes: libgit2-dbg from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | linkable library for Git (debug symbols) | https://libgit2.org/
- apk - libgit2-dev - 1.9.6-r0: normalized package name match | Alpine Linux edge package indexes: libgit2-dev from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | linkable library for Git (development files) | https://libgit2.org/
- apk - libgit2-static - 1.9.6-r0: normalized package name match | Alpine Linux edge package indexes: libgit2-static from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | linkable library for Git (static library) | https://libgit2.org/
- apk - libgit2-tests - 1.9.6-r0: normalized package name match | Alpine Linux edge package indexes: libgit2-tests from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | linkable library for Git (tests) | https://libgit2.org/
- apk - libgit2-tools - 1.9.6-r0: normalized package name match | Alpine Linux edge package indexes: libgit2-tools from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | linkable library for Git (tools) | https://libgit2.org/
- pacman - libgit2 - 1:1.9.6-1: normalized package name match | Arch Linux sync databases: libgit2 from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | A linkable library for Git | https://github.com/libgit2/libgit2
- zypper - libgit2-1_9 - 1.9.6-1.2: normalized package name match | openSUSE Tumbleweed package metadata: libgit2-1_9 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | C git library | https://libgit2.github.com/
- zypper - libgit2-devel - 1.9.6-1.2: normalized package name match | openSUSE Tumbleweed package metadata: libgit2-devel from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | C git library | https://libgit2.github.com/


## Combined YAML source

View the package source record on GitHub. [combined/libgit2.yml](https://github.com/mxcl/pkgdb/blob/main/combined/libgit2.yml)


## 来源

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
