本地编译安装libimobiledevice-glue等库后apt-get无法识别的求助
解决手动编译安装库后apt无法识别及deb包依赖错误问题
问题本质
make install会把库文件安装到系统本地路径(如/usr/local),但apt仅管理自身仓库中的包,不会识别手动编译安装的文件。因此你安装deb包时,apt仍会从官方仓库查找依赖,导致两个问题:
- 找不到版本匹配的
libimobiledevice-glue-1.0-0运行库 - 仓库中
libplist-dev版本(2.2.0-6)低于deb包要求的2.3.0+
解决方案
方法一:用checkinstall生成deb包让apt管理(推荐)
通过checkinstall将手动编译的库转为deb包安装,这样apt就能识别这些依赖:
- 先安装checkinstall工具:
sudo apt-get install checkinstall - 处理libplist:
- 进入libplist源码编译完成的目录
- 执行以下命令生成deb包(按提示完成配置,默认选项即可):
sudo checkinstall - 安装生成的libplist相关deb包(包括运行库和dev包):
sudo dpkg -i libplist*.deb
- 用同样的方法处理libimobiledevice-glue,生成并安装对应的deb包
- 最后安装你下载的deb包,此时apt会识别到依赖已满足:
sudo apt-get install ./libimobiledevice-glue-dev_1.1.0-1~exp1_amd64.deb
方法二:强制安装deb包(不推荐,可能导致依赖混乱)
如果只是临时使用,可以忽略依赖强制安装:
sudo dpkg --force-depends -i ./libimobiledevice-glue-dev_1.1.0-1~exp1_amd64.deb
之后尝试修复依赖(注意:此步骤可能会卸载刚安装的包,需谨慎):
sudo apt-get install -f
方法三:手动升级libplist并更新库缓存
先升级libplist到满足版本要求的版本,再尝试安装deb包:
- 下载libplist 2.3.0及以上版本的源码,编译安装:
./configure && make && sudo make install - 更新系统库缓存:
sudo ldconfig - 此时直接安装deb包仍可能因apt不识别手动库而报错,建议搭配方法一的checkinstall生成deb包来解决依赖识别问题。
内容的提问来源于stack exchange,提问作者user3571677
相关产品推荐
相关产品推荐

