我正在尝试构建一个需要的应用程序libprocess-cpp-dev
。有18.04 没有可用版本。
我还尝试使用以下命令寻找具有相同头文件的替代包apt-file
:
apt-file search /usr/include/core/
但没有文件/usr/include/core/posix/child_process.h
我该怎么做才能在 18.04 上获取我需要的文件?
答案1
Ubuntu 版本 trusty (14.04LTS)、xenial (16.04LTS)、artful (17.10) 和 cosmic (18.10) 均存在所需的软件包。
Ubuntu 支持从 LTS 版本升级到下一个 LTS 和下一个非 LTS 版本,以及从非 LTS 升级到下一个版本。
由于 bionic (18.04) 是 LTS 版本,因此使用以前 LTS 版本的软件包会更简洁,因为支持时间较长。查看/etc/apt/sources.list
并从 xenial 中选择最少数量的存储库以供使用:
deb http://hr.archive.ubuntu.com/ubuntu/ bionic main restricted
deb http://hr.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
然后复制这些行并替换bionic
为xenial
:
deb http://hr.archive.ubuntu.com/ubuntu/ bionic main restricted
deb http://hr.archive.ubuntu.com/ubuntu/ xenial main restricted
deb http://hr.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
deb http://hr.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
您可以使用 artful 或 cosmic release,但使用 cosmic 会升级安装。这样系统的行为就像 xenial 升级到 bionic 一样。
答案2
如果您使用系统安装脚本,您可以尝试如下操作:
PKG_OK=$(dpkg-query -W --showformat='${Status}\n' 2>&1 *libprocess-cpp-dev* |grep "install ok installed")
if [ "" == "$PKG_OK" ]; then
echo -n "- libprocess library <file> "
sudo apt-get install -yq libprocess-cpp-dev
echo " - done."
else
echo "- libprocess library already installed"
fi
# check again and if fail, try another way
PKG_OK=$(dpkg-query -W --showformat='${Status}\n' 2>&1 *libprocess-cpp-dev* |grep "install ok installed")
if [ "" == "$PKG_OK" ]; then
echo -n "- > append to sources.list file the xenial libs and try again."
sudo echo "deb http://hr.archive.ubuntu.com/ubuntu/ xenial main restricted" >> /etc/apt/sources.list
sudo echo "deb http://hr.archive.ubuntu.com/ubuntu/ xenial-updates main restricted" >> /etc/apt/sources.list
sudo apt-get install -yq libprocess-cpp-dev
echo " - done."
else
echo "- libprocess library already installed"
fi
这对我有用