PAYATHON 2026

ubuntu 15.04 安装 Google ios-webkit-debug-proxy 报错

排障赵师傅

结论

报错是因为 libimobiledevice 版本过低。ios-webkit-debug-proxy 要求:

libimobiledevice-1.0 >= 1.2.0

pkg-config 找到的版本却是 1.1.6,说明查找机制基本正常,问题不只是文件路径。只有系统已经安装 1.2.0 或更高版本,而 pkg-config 仍指向旧版本时,才需要检查 PKG_CONFIG_PATH。

Ubuntu 15.04 软件仓库中的版本较旧,系统也早已停止维护。省事的办法是升级到仍受支持的 Ubuntu 版本。如果必须继续使用 Ubuntu 15.04,就需要自行安装新版 libimobiledevice。

确认当前版本和来源

运行以下命令:

pkg-config --modversion libimobiledevice-1.0
pkg-config --variable=pcfiledir libimobiledevice-1.0
apt-cache policy libimobiledevice-dev

第一条命令应输出:

1.1.6

第二条命令会显示 pkg-config 当前从哪个目录读取 .pc 文件。该文件保存了库版本、头文件路径和链接参数。

如果系统中只有 1.1.6,修改 PKG_CONFIG_PATH 也无法解决问题,因为环境变量不会改变已经安装的库版本。

升级 Ubuntu 后安装开发包

在仍受支持的新版 Ubuntu 中,先检查仓库提供的版本:

sudo apt update
apt-cache policy libimobiledevice-dev

确认候选版本满足 >= 1.2.0 后安装:

sudo apt install libimobiledevice-dev

再检查版本:

pkg-config --modversion libimobiledevice-1.0

版本符合要求后,回到 ios-webkit-debug-proxy 源码目录重新编译:

./autogen.sh
make
sudo make install

不要混用其他 Ubuntu 发行版的软件源,也不要随意安装来自新发行版的 .deb 文件。这些软件包还依赖 libplist、libusbmuxd 等组件,混装可能引发依赖问题或 ABI 冲突。

在 Ubuntu 15.04 中从源码安装

如果必须保留 Ubuntu 15.04,可以将 libimobiledevice 1.2.0 或兼容的更高版本安装到 /usr/local。以下命令以 1.2.0 标签为例:

sudo apt-get update
sudo apt-get install build-essential git autoconf automake libtool pkg-config \
  libusbmuxd-dev libplist-dev libssl-dev

git clone https://github.com/libimobiledevice/libimobiledevice.git
cd libimobiledevice
git checkout 1.2.0

./autogen.sh --prefix=/usr/local
make
sudo make install
sudo ldconfig

不同源码版本所需的构建依赖可能不同。如果 ./autogen.sh 提示缺少其他开发包,请按照该版本源码中的 README 或 INSTALL 补齐依赖。

安装完成后检查版本:

pkg-config --modversion libimobiledevice-1.0

如果输出仍是 1.1.6,查找新安装的配置文件:

find /usr/local -name 'libimobiledevice-1.0.pc' -print

假设文件位于 /usr/local/lib/pkgconfig,执行:

export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH}"
pkg-config --modversion libimobiledevice-1.0

确认输出为 1.2.0 或更高版本后,再编译 ios-webkit-debug-proxy:

cd /path/to/ios-webkit-debug-proxy
./autogen.sh
make
sudo make install

如果 .pc 文件位于其他目录,请将 /usr/local/lib/pkgconfig 替换为 find 命令返回的实际目录。

不要强行绕过版本检查

错误信息中提到可以设置:

libimobiledevice_CFLAGS
libimobiledevice_LIBS

这两个变量只能让 configure 使用手动指定的编译和链接参数,无法提供 1.2.0 中新增的接口。继续使用 1.1.6 并强行通过检查,之后可能遇到编译失败、符号缺失或运行异常。

Ubuntu 15.04 已停止维护,默认软件源现在可能无法使用。即使通过历史归档源装好依赖,仍要面对安全更新缺失和软件版本过旧的问题。通常升级系统会比长期维护这套旧依赖省事。

备注:内容仅供参考。