![尝试安装不在根文件夹中的 .deb 软件包时,“admindir 必须位于 instdir 内,dpkg 才能正常工作”](https://linux22.com/image/1628675/%E5%B0%9D%E8%AF%95%E5%AE%89%E8%A3%85%E4%B8%8D%E5%9C%A8%E6%A0%B9%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E7%9A%84%20.deb%20%E8%BD%AF%E4%BB%B6%E5%8C%85%E6%97%B6%EF%BC%8C%E2%80%9Cadmindir%20%E5%BF%85%E9%A1%BB%E4%BD%8D%E4%BA%8E%20instdir%20%E5%86%85%EF%BC%8Cdpkg%20%E6%89%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C%E2%80%9D.png)
由于超出本问题范围的原因,我必须在没有互联网连接和 GUI 的虚拟机上安装一些库。首先,我下载了所有.deb在我的主机系统上安装所需的软件包,然后使用 WinSCP 复制到虚拟机上。最后,使用 PuTTY,我移动到包含这些软件包的文件夹,并使用
sudo dpkg -i *.deb
这很好,因为我设法使用了该库实现的一些函数和数据结构(为了完整起见,将其称为libglib2.0-dev
)。无论如何,我需要它安装在根文件夹中,而不是根文件夹中
/opt/corbos-linux/2.4.4/sysroots/x86_64-poky-linux/
此时我尝试执行:
sudo dpkg -i --instdir=/opt/corbos-linux/2.4.4/sysroots/x86_64-poky-linux/ *.deb
但出现了这个错误:
dpkg (subprocess): admindir must be inside instdir for dpkg to work properly
dpkg: warning: subprocess old pre-removal script returned error exit status 2
dpkg: trying script from the new package instead
如何实现这一目标?有关正在使用的虚拟机的一些额外信息:
Static hostname: 06e2e468f8c4
Icon name: computer-vm
Chassis: vm
Machine ID: 07e8a1bebd223fc12a4a73e45d72352a
Boot ID: ae8230cd752c4e5f8a4772ebf2ae80a1
Virtualization: oracle
Operating System: Ubuntu 16.04.6 LTS
Kernel: Linux 4.4.0-75-generic
Architecture: x86-64