安装Beef时提示libgcc-9-dev无可用安装包 该如何解决?
报错说明
你遇到的报错核心是当前系统软件源中不存在libgcc-9-dev包,libreadline-dev自动替换libreadline6-dev的提示属于系统正常处理逻辑,无需单独处理。
报错原文:
Note, selecting 'libreadline-dev' instead of 'libreadline6-dev'
Package libgcc-9-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'libgcc-9-dev' has no installation candidate
排查步骤
- 确认当前系统版本:执行
lsb_release -a查看发行版代号,Ubuntu 22.04及以上、Debian 11及以上版本默认源均已移除gcc 9相关包,是该报错的高发场景 - 搜索当前源可用的libgcc-dev版本:执行
apt search libgcc-[0-9]*-dev,确认是否有其他版本的gcc开发包 - 定位依赖来源:执行
apt install aptitude -y && aptitude why libgcc-9-dev,查看具体是哪个Beef的依赖包要求安装libgcc-9-dev
解决方案
方案1:添加旧版本源安装(最常用)
针对Ubuntu系列系统,直接添加20.04(focal)版本的官方源获取gcc 9相关包:
echo "deb http://archive.ubuntu.com/ubuntu/ focal main universe" >> /etc/apt/sources.list apt update apt install libgcc-9-dev -y
Beef安装完成后可手动删除/etc/apt/sources.list中新增的focal源,避免后续系统版本升级出现依赖冲突。
方案2:Docker部署(零依赖冲突)
不需要修改系统配置的场景可直接使用官方预编译的Docker镜像运行:
docker pull beefproject/beef docker run -it --rm -p 3000:3000 beefproject/beef
启动后访问http://localhost:3000/ui/panel即可进入Beef管理后台。
方案3:手动编译gcc 9
上述方案无法使用时,可下载gcc 9源码手动编译安装,编译需要至少2核4G内存、20G以上磁盘空间,全程耗时约1-2小时,不建议新手使用。
内容的提问来源于stack exchange,提问作者Harrylever

