3A4000架构银河麒麟V10编译安装filezilla

最近因为甲方需求,要给其提供可断点续传的FTP客户端软件,跟银河麒麟公司联系,他们目前只有arm架构的filezilla,暂时还没有匹配3A4000下的filezilla,大概是还没有碰见这需求。无奈何,只能自己动手编译。
目前最新的filezilla的版本是3.65,根据经验判断,对于国产自主可控平台的软件移植,通常安装的软件版本,版本号越低,碰见的麻烦就会越少,斟酌之下,从网上找了个3.58版本的filezilla。
这里顺序记录正确的编译过程。

一、FileZilla的依赖解决

解压filiezilla-3.58源代码,其中有一个INSTALL文本文件,点开可看见其中内容。
可见依赖关系如下:

- libfilezilla 0.36.0 or greater
- wxWidgets 3.0.4 or greater of the 3.0.x branch
- libidn (only if not on Windows and not having gettaddrinfo with AI_IDN support)
- Nettle 3.1 or greater
- libdbus on *nix
- sqlite3 3.7 or greater

可见编译过程如下:

mkdir compile
cd compile
../configure
make
make install

可以使用yum list installed *XXX*利用关键字查看依赖满足的情况,可以发现。在我的银河麒麟系统中,缺少的依赖主要是libfilezilla以及wxWidget库。按照选用可用的最低版本的原则,我下载了libfilezilla-0.36以及wxWidget-3.0.4。

1.安装libfilezilla-0.36库

安装libfilezilla库文件,需要特意去解决的依赖关系有:
libfilezilla-0.36依赖于gnutls-3.7以上版本
gnutls-3.7依赖于nettle-3.6以上版本
在这部分依赖解决过程中,比较特别的是需要解决动态链接库以及库文件安装位置写入环境变量的问题。

1)动态链接库的搜索位置设置

因为默认的源代码安装的库文件的目录通常有两个,分别是/usr/lib以及/usr/local/lib,其中当搜索动态库时,前者目录默认是会被搜索的,而后者目录默认不会被搜索,因此需要修改配置项,即/etc/ld.so.conf,加入后者目录位置,修改方式如下

sudo pluma /etc/ld.so.conf

而后添加一行内容,修改为:

include /etc/ld.so.conf.d/*.conf
/usr/local/lib

保存之后,需要运行命令:

sudo ldconfig

即生效。
另外,注意!!!
通过源代码编译库文件,在每次成功编译一个动态库文件后,都需要进行sudo ldconfig以更新动态库的链接,不然不会生效。

2)./configure时依赖库搜索位置设置

执行./configure,进行依赖库文件搜索时,默认只搜索/usr/lib/pkgconfig文件下的库文件配置信息,而/usr/local/lib/pkgconfig文件夹不会被搜索,因此需要修改PKG_CONFIG_PATH环境变量,将/usr/local/lib/pkgconfig写入环境变量。
pkgconfig文件夹下保存的是一堆库文件的pc文件,即该库文件的版本之类的信息。
具体的做法有两种,一种是临时添加到环境变量,即在命令行中输入:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

另一种方法是写入bashrc中,随终端启动每次都被执行。

gedit ~/.bashrc

在最后一行添加相同内容:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
3)编译安装过程记录

在修改完上述两条之后,操作如下:

$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
$ tar -xf nettle-3.6.tar.gz 
$ cd nettle-3.6/
$ mkdir build
$ cd build
$ ../configure
$ make -j4
$ sudo make install
$ cd ../..
$ tar -xf gnutls-3.7.7.tar.xz
$ cd gnutls-3.7.7
$ mkdir build
$ cd build
$ ../configure --with-included-unistring
$ make -j4
$ sudo make install
$ cd ../..
$ tar -xf libfilezilla-0.36.0.tar.bz2
$ cd libfilezilla-0.36.0/
$ mkdir build
$ cd build
$ ../configure
$ make -j4
$ sudo make install
$ cd ../..

2.安装wxWidget-3.0.4库

在实际编译过程中,需要特意去解决的依赖关系有:
wxWidget-3.0.4依赖于pugixml-1.12
编译过程如下:

$ unzip pugixml-1.12.zip
$ cd pugixml-1.12/
$ mkdir build
$ cd build
$ cmake ../CMakeLists.txt
$ cd ..
$ make -j4
$ sudo make install
$ cd ../..
$ tar -xf wxWidgets-3.0.4.tar.bz2
$ cd wxWidgets-3.0.4/
$ mkdir build
$ cd build
$ ../configure
$ make -j4
$ sudo make install
$ cd ../..

二、FileZilla的安装

在解决完依赖后,安装过程如下:

$ tar -xf FileZilla_3.58.0_src.tar.bz2
$ cd filezilla-3.58.0/
$ mkdir build
$ cd build
$ ../configure --without-dbus
$ make -j4
$ sudo make install
$ cd ../..

三、总结

  1. 动态库的搜索目录需要添加/usr/local/lib
  2. configure的配置项记得添加/usr/local/lib/pkgconfig
  3. 记得源码编译安装完一个库后,尤其是动态库的话,记得执行一次ldconfig以写入环境变量。
  4. 源代码编译的依赖问题的解决,可多看看该库文件源代码下的说明文件。
  5. 最后,放上文章中所涉及的库文件源代码的下载地址,下载地址
### 下载并安装FileZilla最新版本 #### 获取官方资源 为了获取最新的FileZilla客户端,建议访问官方网站以确保获得稳定且安全的版本。可以从官网提供的链接下载适用于不同操作系统的文件[^2]。 对于Windows、macOS或Linux等主流操作系统而言,在浏览器中打开FileZilla项目主页后,点击页面上的“Download now”,会自动检测用户的操作系统并推荐合适的安装程序;如果需要特定平台版本,则可以选择其他选项来手动挑选适合当前环境的安装包。 #### Linux环境下具体步骤 考虑到部分用户可能使用的是基于Debian/Ubuntu或其他支持APT包管理器的发行版,这里给出一种通用的方法: 1. 更新本地软件源索引: ```bash sudo apt update ``` 2. 安装必要的依赖项(如wxWidgets),这些组件用于构建图形界面应用程序: ```bash sudo apt-get install libwxgtk3.0-gtk3-dev ``` 3. 对于某些特殊硬件架构比如ARM服务器或者国产CPU芯片组所组成的系统来说,由于预编译二进制文件可能存在兼容性问题,因此有时不得不自行编译。例如针对银河麒麟V10上搭载的3A4000处理器,可以考虑采用较低版本(如3.58)来进行交叉编译,从而减少遇到潜在的技术难题的概率[^1]。 4. 如果希望直接通过命令行快速部署而无需担心上述复杂情况的话,可以直接利用apt工具一键完成安装流程: ```bash sudo apt-get install filezilla ``` 需要注意的是,当执行`sudo apt-get install filezilla-locales`时遇到了无法找到指定名称的错误提示,这可能是由于软件仓库配置不当造成的。此时应该先确认网络连接正常,并检查/etc/apt/sources.list文件中的地址是否有效,必要时更新至最新的镜像站点列表[^3]。 #### 验证安装成果 启动应用验证安装是否成功。可以通过菜单栏查找该程序图标双击开启它;也可以在终端输入`filezilla --version`查看已安裝的具体版本号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼月半

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值