我需要libpangox-1.0-0:i386
在 Ubuntu 20.04LTS 下构建一个包,但目前不可用。libpangox-1.0-0
我的系统中有。
32 位版本适用于 19.10 及以下版本 https://pkgs.org/download/libpangox-1.0-0 https://ubuntu.pkgs.org/19.10/ubuntu-universe-i386/libpangox-1.0-0_0.0.2-5build1_i386.deb.html
还有什么其他方法可以获得该功能?
如果我获取
.deb
19.10 的文件并运行sudo gdebi libpangox-1.0-0_0.0.2-5build1_i386.deb
, 它是否只是存储网页中“文件”下列出的文件,除了注册包之外,不对系统进行任何进一步的更改dpkg
?我可以尝试一下,看看它是否有效,如果不行的话,只需删除包吗? (可能存在一些问题,因为 下的文件
/usr/share/doc/libpangox-1.0-0
(即使只有文档)在 32 位和 64 位版本之间是共享的)。请注意,包中的文件只有so
和指向它的软链接,/usr/lib/i386-linux-gnu/libpangox-1.0.so.0
以及/usr/lib/i386-linux-gnu/libpangox-1.0.so.0.0.0
。
注意:我从来没有从源代码构建过这样的东西。
编辑:
为了避免弄乱dpkg
,作为第一次尝试,我扩展了.deb
文件,并手动将so
和软链接复制到中 /usr/lib/i386-linux-gnu
。然后
$ export LD_LIBRARY_PATH="/usr/lib/i386-linux-gnu"
$ fakeroot debian/rules binary
...
dpkg-shlibdeps: error: no dependency information found for /usr/lib/i386-linux-gnu/libpangox-1.0.so.0 (used by debian/iscan/usr/bin/iscan)
Hint: check if the library actually comes from a package.
这导致我同时尝试了三种解决方法:
- 添加到
debian/rules
override_dh_shlibdeps:
(tab) dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info
$ export DEB_DH_SHLIBDEPS_ARGS_ALL=--dpkg-shlibdeps-params=--ignore-missing-info
$ export DEB_BUILD_OPTIONS=nocheck
这些都无法消除上述错误。
编辑#2。
尝试构建库时出现错误
$ debuild -a i386
...
dpkg-deb: building package 'libpangox-1.0-dev' in '../libpangox-1.0-dev_0.0.2-5ubuntu1_i386.deb'.
dpkg-genbuildinfo
dpkg-genchanges >../pangox-compat_0.0.2-5ubuntu1_i386.changes
dpkg-genchanges: info: not including original source code in upload
dpkg-source --after-build .
dpkg-source: info: using options from pangox-compat-0.0.2/debian/source/options: --compression=xz
dpkg-buildpackage: info: binary and diff upload (original source NOT included)
debuild: fatal error at line 1062:
can't open pangox-compat_0.0.2-5ubuntu1_amd64.changes for reading: No such file or directory
有关的:
https://linux.debian.user.narkive.com/tVuR0mKc/package-shared-library-with-application
https://github.com/SpiderLabs/ModSecurity-nginx/issues/16
https://www.man7.org/linux/man-pages/man1/dpkg-shlibdeps.1.html
https://ubuntu.com/blog/statement-on-32-bit-i386-packages-for-ubuntu-19-10-and-20-04-lts
答案1
我在 Ubuntu 21.04 上也遇到了缺少 libpangox-1.0.so.0 的问题。
我可以通过执行此命令创建到 pangoxft 模块的软链接来解决此问题,从而使其正常工作。
sudo ln -s /usr/lib/x86_64-linux-gnu/libpangoxft-1.0.so.0 /usr/lib/x86_64-linux-gnu/libpangox-1.0.so.0
希望这可以帮助。
答案2
首先你需要启用所有deb-源文件(源代码)存储库使用软件与更新(software-properties-gtk
)。然后确认刷新包列表或sudo apt-get update
手动运行。
然后获取源代码并使用以下命令将其编译为 32 位
# get build tools
sudo apt-get install devscripts gcc-i686-linux-gnu
# get build dependencies for 32-bit (i386) architecture
sudo apt-get build-dep -a i386 libpangox-1.0-0
# get source
cd ~/Downloads
apt-get source libpangox-1.0-0
cd pangox-compat-0.0.2
# compile source for i386
debuild -a i386
最后安装编译好的软件包
sudo apt-get install ../libpangox-1.0-0_0.0.2-5ubuntu1_i386.deb ../libpangox-1.0-dev_0.0.2-5ubuntu1_i386.deb