🐧 DetectLinuxDistro
检测当前 Linux 发行版信息。
何时使用
当需要根据发行版选择合适的包管理器(apt/dnf/pacman/apk 等)来安装 PHP 或 Composer 时使用。仅 Linux 有效。🔍
签名
go
func DetectLinuxDistro() (*DistroInfo, error)参数
| 参数 | 类型 | 说明 |
|---|---|---|
| 无 | — | 包级函数,无参数 |
返回值
*DistroInfo:包含ID、Name、Version、PackageManager的发行版信息。✅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-release→lsb_release命令 → 发行版特定文件(/etc/redhat-release等)→ 可用包管理器兜底。🛠️ - 支持 Ubuntu/Debian、Fedora/CentOS/RHEL、Arch、Alpine、openSUSE、Gentoo 等主流发行版。📦
- 结果用于
InstallComposerViaPackageManager与InstallPHP。🔗