Shadowsocks-libev: debian8下3.0.2编译出错

Created on 19 Feb 2017  ·  22Comments  ·  Source: shadowsocks/shadowsocks-libev

安照readme重新打包deb,已安装了libsodium.so.18.1.1但还是提示dpkg-shlibdeps: error: no dependency information found for /usr/lib/libsodium.so.18。
请问怎么解决。

make[1]: Leaving directory '/root/ss/shadowsocks-libev'
dh_installman
dh_systemd_enable
dh_installinit
dh_systemd_start
dh_perl
dh_link
dh_strip_nondeterminism
dh_compress
dh_fixperms
dh_strip
dh_makeshlibs
dh_shlibdeps
dpkg-shlibdeps: error: no dependency information found for /usr/lib/libsodium.so.18 (used by debian/shadowsocks-libev/usr/bin/ss-redir)
Hint: check if the library actually comes from a package.
dh_shlibdeps: dpkg-shlibdeps -Tdebian/shadowsocks-libev.substvars debian/shadowsocks-libev/usr/bin/ss-server debian/shadowsocks-libev/usr/bin/ss-manager debian/shadowsocks-libev/usr/bin/ss-redir debian/shadowsocks-libev/usr/bin/ss-tunnel debian/shadowsocks-libev/usr/bin/ss-local returned exit code 2
debian/rules:27: recipe for target 'binary' failed
make: * [binary] Error 2
dpkg-buildpackage: error: debian/rules binary gave error exit status 2

root@eth:~/ss/shadowsocks-libev# ls /usr/lib/libsodium.so.18 -l
lrwxrwxrwx 1 root root 19 Feb 3 22:20 /usr/lib/libsodium.so.18 -> libsodium.so.18.1.1
root@eth:~/ss/shadowsocks-libev# ls /usr/lib/libsodium.so.18.1.1 -l
-rwxr-xr-x 1 root root 2390736 Feb 3 22:20 /usr/lib/libsodium.so.18.1.1

question

Most helpful comment

@madeye 找到原因了,安装mbedTLS and libsodium后,find 发现 libsodium.so.18和libmbedcrypto.so.0 在分别在两个目录下都有,删除 /usr/lib下的这两个文件成功生成deb.

All 22 comments

If you insist on building from source, you will need to manually install libsodium from jessie-backports, NOT libsodium in main repository.

运行 sudo apt-get -t jessie-backports install libsodium 安装。
你是怎么安装的?

@hellofwy 用 apt -t jessie-backports install 命令和说明里编译安装方式都试过报一样的错。

刚又试了一下,后重新编译libsodium-dev后打包报:
dpkg-shlibdeps: error: no dependency information found for /usr/lib/libmbedcrypto.so.0 (used by debian/shadowsocks-libev/usr/bin/ss-local)

root@hus:~/ss/shadowsocks-libev# ls /usr/lib/libmbedcrypto.so.0 -l
-rwxr-xr-x 1 root root 449320 Feb 19 05:12 /usr/lib/libmbedcrypto.so.0

安装 libmbedtls:
sudo apt-get -t jessie-backports install libmbedtls

@hellofwy
root@eth:~/ss/shadowsocks-libev# sudo apt-get -t jessie-backports install libmbedtls
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libmbedtls

Sorry it's libmbedtls-dev:
sudo apt-get -t jessie-backports install libmbedtls-dev

已经是最新的了

2017年2月19日 19:15,"hellofwy" notifications@github.com写道:

Sorry it's libmbedtls-dev:
sudo apt-get -t jessie-backports install libmbedtls-dev


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/shadowsocks/shadowsocks-libev/issues/1276#issuecomment-280912246,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AC11t3HtvA842NzECMj4xzEDD9RcAgrvks5reCRbgaJpZM4MFaC3
.

那如果可以,删除 shadowsocks-libev 文件夹,重新下载代码,重新编译一遍试试吧。
我前几天按照 README 安装,中间分别提示缺 libsodiumlibmbedtls , 装了后就成功了。

刚才git pull 有代码更新,不知是不是在修改什么。
谢谢你,有空再试下。

2017年2月19日 19:40,"hellofwy" notifications@github.com写道:

那如果可以,删除 shadowsocks-libev 文件夹,重新下载代码,重新编译一遍试试吧。
我前几天按照 README 安装,中间分别提示缺 libsodium 和 libmbedtls , 装了后就成功了。


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/shadowsocks/shadowsocks-libev/issues/1276#issuecomment-280913562,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AC11t9vsGqkgYv7J33WmUza1hAZOT3lXks5reCo1gaJpZM4MFaC3
.

下载gz 文件解压后直接dpkg-buildpackage -b -us -uc -d 可以生成.deb
git 下来的按readme 或直接 dpkg-buildpackage 都要报dpkg-shlibdeps: error: no dependency information found for /usr/lib/libsodium.so.18

尝试在编译完 libsodium 后调用一下 ldconfig

@lxlslz 试了一下,还是dpkg-shlibdeps: error: no dependency information found for /usr/lib/libsodium.so.18 (used by debian/shadowsocks-libev/usr/bin/ss-server)
Hint: check if the library actually comes from a package.

试试最新添加的自动编译脚本:https://github.com/shadowsocks/shadowsocks-libev/blob/master/scripts/build_deb.sh

如果还是不行,考虑重新装系统,避免中间误操作对后续编译的影响。

@hellofwy 脚本一样报错。
......
dh_shlibdeps
dpkg-shlibdeps: error: no dependency information found for /usr/lib/libsodium.so.18 (used by debian/shadowsocks-libev/usr/bin/ss-local)
Hint: check if the library actually comes from a package.
dh_shlibdeps: dpkg-shlibdeps -Tdebian/shadowsocks-libev.substvars debian/shadowsocks-libev/usr/bin/ss-local debian/shadowsocks-libev/usr/bin/ss-redir debian/shadowsocks-libev/usr/bin/ss-server debian/shadowsocks-libev/usr/bin/ss-manager debian/shadowsocks-libev/usr/bin/ss-tunnel returned exit code 2
debian/rules:32: recipe for target 'binary' failed
make: * [binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
debuild: fatal error at line 1376:
dpkg-buildpackage -rfakeroot -D -us -uc -i -I failed
gbp:error: 'debuild -i -I -us -uc' failed: it exited with 29
......

Same problem here

cannot reproduce.
build in clean system please.
don't "make install", which makes your system dirty.

碰到一样的,vi debian/rules,添加:
override_dh_shlibdeps:
dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info
保存后编译即可。

no need to patch the script, so far.
if any issue occurs, please report, in detail.

@IronXiao 主要不知道ignore后,deb包是否完整。

@triaqu
使用无问题

debian8之前手动安装的libsodium,一直失败,删除后用jessie-backports安装了libsodium,和libmbedtls,服务端和客户端全部成功。(从源码编译)

@madeye 找到原因了,安装mbedTLS and libsodium后,find 发现 libsodium.so.18和libmbedcrypto.so.0 在分别在两个目录下都有,删除 /usr/lib下的这两个文件成功生成deb.

我也解决了,libsodium.so.18和libmbedcrypto.so.0 分别在两个目录下都有,删除 /usr/lib下的这两个文件成功生成deb.

Was this page helpful?
0 / 5 - 0 ratings