Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debian dpkg buildpackage-uc-us-b出现故障,出现“故障”;dpkg shlibdeps:错误:无法';找不到…monodis所需的libmono-2.0.so.1库。”;_Debian_Packaging_Deb - Fatal编程技术网

Debian dpkg buildpackage-uc-us-b出现故障,出现“故障”;dpkg shlibdeps:错误:无法';找不到…monodis所需的libmono-2.0.so.1库。”;

Debian dpkg buildpackage-uc-us-b出现故障,出现“故障”;dpkg shlibdeps:错误:无法';找不到…monodis所需的libmono-2.0.so.1库。”;,debian,packaging,deb,Debian,Packaging,Deb,尝试使用构建simple.deb包失败,原因如下: dh_installexamples dh_installman dh_installcatalogs dh_installcron dh_installdebconf dh_installemacsen dh_installifupdown dh_installinfo dh_pysupport dh_installinit dh_installmenu dh_insta

尝试使用构建simple.deb包失败,原因如下:

   dh_installexamples
   dh_installman
   dh_installcatalogs
   dh_installcron
   dh_installdebconf
   dh_installemacsen
   dh_installifupdown
   dh_installinfo
   dh_pysupport
   dh_installinit
   dh_installmenu
   dh_installmime
   dh_installmodules
   dh_installlogcheck
   dh_installlogrotate
   dh_installpam
   dh_installppp
   dh_installudev
   dh_installwm
   dh_installxfonts
   dh_bugfiles
   dh_lintian
   dh_gconf
   dh_icons
   dh_perl
   # Skipping dh_usrlocal - empty override
   dh_link
   dh_compress
   dh_fixperms
   dh_strip
   dh_makeshlibs
   dh_shlibdeps
dpkg-shlibdeps: error: couldn't find library libmono-2.0.so.1 needed by debian/7digital-mono/usr/usr/bin/monodis (ELF format: 'elf64-x86-64'; RPATH: '').
Note: libraries are not searched in other binary packages that do not have any shlibs or symbols file.
To help dpkg-shlibdeps find private libraries, you might need to set LD_LIBRARY_PATH.
dh_shlibdeps: dpkg-shlibdeps -Tdebian/7digital-mono.substvars debian/7digital-mono/usr/usr/bin/mono debian/7digital-mono/usr/usr/bin/mprof-report debian/7digital-mono/usr/usr/bin/mono-sgen debian/7digital-mono/usr/usr/bin/pedump debian/7digital-mono/usr/usr/bin/monograph debian/7digital-mono/usr/usr/bin/monodis debian/7digital-mono/usr/usr/lib/mono/4.5/mcs.exe.so debian/7digital-mono/usr/usr/lib/mono/4.5/mscorlib.dll.so debian/7digital-mono/usr/usr/lib/mono/2.0/mscorlib.dll.so debian/7digital-mono/usr/usr/lib/libMonoSupportW.so debian/7digital-mono/usr/usr/lib/libikvm-native.so debian/7digital-mono/usr/usr/lib/libmono-2.0.so.1.0.0 debian/7digital-mono/usr/usr/lib/libMonoPosixHelper.so debian/7digital-mono/usr/usr/lib/libmono-profiler-log.so.0.0.0 debian/7digital-mono/usr/usr/lib/libmono-profiler-cov.so.0.0.0 debian/7digital-mono/usr/usr/lib/libmono-profiler-aot.so.0.0.0 debian/7digital-mono/usr/usr/lib/libmonosgen-2.0.so.0.0.0 debian/7digital-mono/usr/usr/lib/libmono-profiler-iomap.so.0.0.0 returned exit code 2
make: *** [binary] Error 9
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2

你知道这意味着什么吗?

这意味着(在构建过程中)发现的二进制文件是
debian/7digital mono/usr/usr/bin/monodis
(可能最终会变成
/usr/bin/monodis
)正在链接到
libmono-2.0。所以.1
但是找不到这个文件

我怀疑.so文件也是您的包的一部分(尽管您还没有给出任何线索),因此它还没有安装在目标系统上


我发现最奇怪的是路径中出现了两次
usr
,这很可能表明问题所在:dpkg shlibdeps(通过链接器)可能在标准路径(例如
usr/lib
)和包路径(例如
debian/7digital mono/usr/lib
)中查找.so文件,但它不会研究
debian/7digital mono/usr/usr/lib

这意味着(在构建过程中)找到的二进制文件是
debian/7digital mono/usr/usr/bin/monodis
(最终可能会成为
/usr/bin/monodis
)链接到
libmono-2.0.so.1
,但找不到该文件

我怀疑.so文件也是您的包的一部分(尽管您还没有给出任何线索),因此它还没有安装在目标系统上

我发现最奇怪的是路径中出现了两次
usr
,这很可能表明问题所在:dpkg shlibdeps(通过链接器)可能在标准路径(例如
usr/lib
)和包路径(例如
debian/7digital mono/usr/lib
)中查找.so文件,但它不会查看
debian/7digital mono/usr/usr/lib

相应地更改
“debian/rules”
文件,以指示到
LD\u库的正确路径

在规则文件中搜索
“dh binary arch”
,并替换为

LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):/usr/lib/i386-linux-gnu:/lib/i386-linux-gnu dh binary-arch

相应地更改
“debian/rules”
文件,以指示到
LD\u库的正确路径

在规则文件中搜索
“dh binary arch”
,并替换为

LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):/usr/lib/i386-linux-gnu:/lib/i386-linux-gnu dh binary-arch


顺便说一句,为什么不让dpkg buildpackage为您运行configure呢?
dh
应该自动处理这个问题;如果您的源(包括
配置
脚本)不在根目录中,您可能必须使用
--sourcedirectory
标志指定它们;检查
man dh
等一下,如果我不调用configure,我也不能调用make,你是说dpkg buildpackage也会为我这样做吗?是的,dpkg configure自动化了整个构建过程我想你面临的问题主要是因为,您尝试使用单个工具链为各种版本的上游创建debian包;您可能不应该这样做……debian中的整个打包过程经过优化,以跟踪上游的特定版本,并最终引入子版本(用于debian相关的修复);结帐顺便说一句,为什么不让dpkg buildpackage为您运行configure?
dh
应该自动处理这个问题;如果您的源(包括
配置
脚本)不在根目录中,您可能必须使用
--sourcedirectory
标志指定它们;检查
man dh
等一下,如果我不调用configure,我也不能调用make,你是说dpkg buildpackage也会为我这样做吗?是的,dpkg configure自动化了整个构建过程我想你面临的问题主要是因为,您尝试使用单个工具链为各种版本的上游创建debian包;您可能不应该这样做……debian中的整个打包过程经过优化,以跟踪上游的特定版本,并最终引入子版本(用于debian相关的修复);签出是的,.so文件应该由我正在构建的包编译。我觉得这一切都是由构建中的单回归造成的:是的,.so文件应该由我正在构建的包编译。我的印象是,所有这些都是由构建中的单回归造成的:
LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):/path-to-shared-library dh binary-arch