Skip to content

🐧 DetectLinuxDistro

检测当前 Linux 发行版信息。

何时使用

当需要根据发行版选择合适的包管理器(apt/dnf/pacman/apk 等)来安装 PHP 或 Composer 时使用。仅 Linux 有效。🔍

签名

go
func DetectLinuxDistro() (*DistroInfo, error)

参数

参数类型说明
包级函数,无参数

返回值

  • *DistroInfo:包含 IDNameVersionPackageManager 的发行版信息。✅
  • error:非 Linux 环境返回错误;找不到任何线索时 PackageManager"unknown"。⚠️

示例

go
package main

import (
	"fmt"
	"log"

	"github.com/scagogogo/composer-skills/pkg/installer"
)

func main() {
	distro, err := installer.DetectLinuxDistro()
	if err != nil {
		log.Fatalf("检测发行版失败: %v", err)
	}
	fmt.Printf("%s %s (包管理器: %s)\n", distro.Name, distro.Version, distro.PackageManager)
}

进阶

  • 检测顺序:/etc/os-releaselsb_release 命令 → 发行版特定文件(/etc/redhat-release 等)→ 可用包管理器兜底。🛠️
  • 支持 Ubuntu/Debian、Fedora/CentOS/RHEL、Arch、Alpine、openSUSE、Gentoo 等主流发行版。📦
  • 结果用于 InstallComposerViaPackageManagerInstallPHP。🔗

基于 MIT 许可证发布