[App Sharing] Deepin20.4编译FilezillaServer
Tofloor
poster avatar
fozei
deepin
2022-03-15 00:56
Author

最后PS:

问题已经解决,通过手动编译源码,能在Deepin20.4上完美运行。编译过程中,编译了缺少的各种依赖,还遇到了GCC版本bug,又由于FileZilla官方源码的一些问题,必须要求特定的wxWidgets版本。最后,终于编译成功了。具体过程录了屏,由于需要降下噪,所以还未完全更新完,有兴趣的小伙伴可以去看看。关于configure时,怎么让其寻找系统自带的,但是不在 /usr/local/lib/usr/lib目录下的lib,依然没有答案。

编译FileZilla Server视频列表(尚未更新完):

  1. Deepin20.4 运行FileZilla Server报错 https://www.bilibili.com/video/BV15Z4y1B7Wy?share_source=copy_web
  2. configure libfilezilla缺少libgmp https://www.bilibili.com/video/BV1j94y1f7dL?share_source=copy_web
  3. 恢复现场,重新编译libgmp https://www.bilibili.com/video/BV1DL411w7SN?share_source=copy_web
  4. 下载guntls源码,引出libnettle https://www.bilibili.com/video/BV13a411b7MZ?share_source=copy_web
  5. 编译libnettle,完成guntls https://www.bilibili.com/video/BV19P4y1T7Ft?share_source=copy_web
  6. apt安装gettext,完成libfilezilla https://www.bilibili.com/video/BV1wF411s7pw?share_source=copy_web
  7. 编译安装wxWidgets https://www.bilibili.com/video/BV1h94y1f7q7?share_source=copy_web
  8. 编译Filezilla Server报错,碰到GCC版本bug https://www.bilibili.com/video/BV1vY4y1p7Hq?share_source=copy_web
  9. 读文档,编译GCC10.3.0 https://www.bilibili.com/video/BV1eY4y1p7bc?share_source=copy_web

原文

下载最新版本的FileZilla Server,启动gui程序,报如下错误:

./filezilla-server-gui: /lib/x86_64-linux-gnu/libcrypt.so.1: version `XCRYPT_2.0' not found (required by /opt/filezilla-server/bin/../lib/libfilezilla.so.24)

PS:

感谢热心回复,的确如一楼所说那样,FileZilla Server是在Debian11上构建的,需要自己下载源码编译。编译过程中,发现缺失其他依赖,于是一一下载编译,最后依赖齐备了,FileZilla Server源码configure成功,但是最后make的时候,源码报错了。最终,放弃了,但是这个过程很nice,由于工作原因,暂时放弃进一步探究。其实官方wiki上,有编译之前安装依赖的介绍,当时没看,如果按照wiki上先安装好依赖,估计过程会轻松很多。

最后附上最以后make FileZilla Server的报错信息:

输入密码:
验证成功
Making install in res
make[1]: 进入目录“/home/fozei/code/c-cpp/filezilla-server-1.3.0/res”
make[2]: 进入目录“/home/fozei/code/c-cpp/filezilla-server-1.3.0/res”
make[2]: 对“install-exec-am”无需做任何事。
make[2]: 对“install-data-am”无需做任何事。
make[2]: 离开目录“/home/fozei/code/c-cpp/filezilla-server-1.3.0/res”
make[1]: 离开目录“/home/fozei/code/c-cpp/filezilla-server-1.3.0/res”
Making install in src
make[1]: 进入目录“/home/fozei/code/c-cpp/filezilla-server-1.3.0/src”
Making install in filezilla
make[2]: 进入目录“/home/fozei/code/c-cpp/filezilla-server-1.3.0/src/filezilla”
/bin/bash ../../libtool  --tag=CXX   --mode=compile g++ -std=c++17 -DHAVE_CONFIG_H -I. -I../../src    -I/usr/local/include -I/usr/include/p11-kit-1 -fno-exceptions -g -O2 -MT acme/libfilezilla_common_la-client.lo -MD -MP -MF acme/.deps/libfilezilla_common_la-client.Tpo -c -o acme/libfilezilla_common_la-client.lo `test -f 'acme/client.cpp' || echo './'`acme/client.cpp
libtool: compile:  g++ -std=c++17 -DHAVE_CONFIG_H -I. -I../../src -I/usr/local/include -I/usr/include/p11-kit-1 -fno-exceptions -g -O2 -MT acme/libfilezilla_common_la-client.lo -MD -MP -MF acme/.deps/libfilezilla_common_la-client.Tpo -c acme/client.cpp  -fPIC -DPIC -o acme/.libs/libfilezilla_common_la-client.o
In file included from acme/../http/client.hpp:13,
                 from acme/client.hpp:10,
                 from acme/client.cpp:1:
acme/../http/../util/options.hpp: In instantiation of ‘fz::util::options::opt::opt(fz::util::options::opt&&) [with U = fz::util::options::empty; Value = std::function; Holder = fz::http::client::options]’:
acme/../http/client.hpp:36:55:   required from here
acme/../http/../util/options.hpp:30:37: error: call of overloaded ‘function(std::remove_reference::empty&>::type)’ is ambiguous
     , holder_(std::move(rhs.holder_))
                                     ^
In file included from /usr/include/c++/8/functional:59,
                 from /usr/local/include/libfilezilla/thread.hpp:6,
                 from /usr/local/include/libfilezilla/event_loop.hpp:8,
                 from /usr/local/include/libfilezilla/event_handler.hpp:4,
                 from /usr/local/include/libfilezilla/socket.hpp:13,
                 from /usr/local/include/libfilezilla/tls_layer.hpp:8,
                 from acme/client.hpp:8,
                 from acme/client.cpp:1:
/usr/include/c++/8/bits/std_function.h:422:7: note: candidate: ‘std::function<_Res(_ArgTypes ...)>::function(std::function<_Res(_ArgTypes ...)>&&) [with _Res = void; _ArgTypes = {fz::http::response&&}]’
       function(function&& __x) noexcept : _Function_base()
       ^~~~~~~~
/usr/include/c++/8/bits/std_function.h:652:5: note: candidate: ‘std::function<_Res(_ArgTypes ...)>::function(const std::function<_Res(_ArgTypes ...)>&) [with _Res = void; _ArgTypes = {fz::http::response&&}]’
     function<_Res(_ArgTypes...)>::
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/8/bits/std_function.h:402:7: note: candidate: ‘std::function<_Res(_ArgTypes ...)>::function(std::nullptr_t) [with _Res = void; _ArgTypes = {fz::http::response&&}; std::nullptr_t = std::nullptr_t]’
       function(nullptr_t) noexcept
       ^~~~~~~~
In file included from acme/../http/client.hpp:13,
                 from acme/client.hpp:10,
                 from acme/client.cpp:1:
acme/../http/../util/options.hpp: In instantiation of ‘fz::util::options::opt::opt(fz::util::options::opt&&) [with U = fz::util::options::empty; Value = fz::http::headers; Holder = fz::http::client::options]’:
acme/../http/client.hpp:37:55:   required from here
acme/../http/../util/options.hpp:30:37: error: call of overloaded ‘headers(std::remove_reference::empty&>::type)’ is ambiguous
     , holder_(std::move(rhs.holder_))
                                     ^
In file included from /usr/include/c++/8/map:61,
                 from /usr/local/include/libfilezilla/json.hpp:9,
                 from /usr/local/include/libfilezilla/jws.hpp:8,
                 from acme/client.hpp:6,
                 from acme/client.cpp:1:
/usr/include/c++/8/bits/stl_map.h:192:7: note: candidate: ‘std::map<_Key, _Tp, _Compare, _Alloc>::map(const _Compare&, const allocator_type&) [with _Key = std::__cxx11::basic_string; _Tp = std::__cxx11::basic_string; _Compare = fz::less_insensitive_ascii; _Alloc = std::allocator, std::__cxx11::basic_string > >; std::map<_Key, _Tp, _Compare, _Alloc>::allocator_type = std::allocator, std::__cxx11::basic_string > >]’
       map(const _Compare& __comp,
       ^~~
In file included from acme/../http/request.hpp:7,
                 from acme/../http/client.hpp:15,
                 from acme/client.hpp:10,
                 from acme/client.cpp:1:
acme/../http/headers.hpp:53:13: note:   inherited here
  using map::map;
             ^~~
In file included from /usr/include/c++/8/map:61,
                 from /usr/local/include/libfilezilla/json.hpp:9,
                 from /usr/local/include/libfilezilla/jws.hpp:8,
                 from acme/client.hpp:6,
                 from acme/client.cpp:1:
/usr/include/c++/8/bits/stl_map.h:226:7: note: candidate: ‘std::map<_Key, _Tp, _Compare, _Alloc>::map(std::initializer_list >, const _Compare&, const allocator_type&) [with _Key = std::__cxx11::basic_string; _Tp = std::__cxx11::basic_string; _Compare = fz::less_insensitive_ascii; _Alloc = std::allocator, std::__cxx11::basic_string > >; std::map<_Key, _Tp, _Compare, _Alloc>::allocator_type = std::allocator, std::__cxx11::basic_string > >]’
       map(initializer_list __l,
       ^~~
In file included from acme/../http/request.hpp:7,
                 from acme/../http/client.hpp:15,
                 from acme/client.hpp:10,
                 from acme/client.cpp:1:
acme/../http/headers.hpp:53:13: note:   inherited here
  using map::map;
             ^~~
In file included from /usr/include/c++/8/map:61,
                 from /usr/local/include/libfilezilla/json.hpp:9,
                 from /usr/local/include/libfilezilla/jws.hpp:8,
                 from acme/client.hpp:6,
                 from acme/client.cpp:1:
/usr/include/c++/8/bits/stl_map.h:234:7: note: candidate: ‘std::map<_Key, _Tp, _Compare, _Alloc>::map(const allocator_type&) [with _Key = std::__cxx11::basic_string; _Tp = std::__cxx11::basic_string; _Compare = fz::less_insensitive_ascii; _Alloc = std::allocator, std::__cxx11::basic_string > >; std::map<_Key, _Tp, _Compare, _Alloc>::allocator_type = std::allocator, std::__cxx11::basic_string > >]’
       map(const allocator_type& __a)
       ^~~
In file included from acme/../http/request.hpp:7,
                 from acme/../http/client.hpp:15,
                 from acme/client.hpp:10,
                 from acme/client.cpp:1:
acme/../http/headers.hpp:53:13: note:   inherited here
  using map::map;
             ^~~
acme/../http/headers.hpp:12:7: note: candidate: ‘fz::http::headers::headers(const fz::http::headers&)’
 class headers: public std::map
       ^~~~~~~
acme/../http/headers.hpp:12:7: note: candidate: ‘fz::http::headers::headers(fz::http::headers&&)’
make[2]: *** [Makefile:1032:acme/libfilezilla_common_la-client.lo] 错误 1
make[2]: 离开目录“/home/fozei/code/c-cpp/filezilla-server-1.3.0/src/filezilla”
make[1]: *** [Makefile:419:install-recursive] 错误 1
make[1]: 离开目录“/home/fozei/code/c-cpp/filezilla-server-1.3.0/src”
make: *** [Makefile:449:install-recursive] 错误 1

image.png

再次PS

提交了issue:https://trac.filezilla-project.org/ticket/12676

Reply Favorite View the author
All Replies
beavailable
deepin
2022-03-15 03:05
#1

filezilla server 构建在 debian 11 的基础上,目前 deepin 还是基于 debian 10 的,所以应该用不了。

分享文件可以试试这个(命令行程序):https://github.com/beavailable/share

Reply View the author
neko
deepin
Ecological co-builder
Q&A Team
2022-03-15 05:11
#2

你可以下载官方提供的源代码自行编译

Reply View the author