目录
Deepin File Manager is a file management tool independently developed by Deepin Technology, featured with searching, copying, trash, compression/decompression, file property and other file management functions.
dde-file-manager是Deepin操作系统自带的文件管理器应用。使用过程中遇到bug,为修改源码提交patch,需要从源码编译并重新安装。
一、Deepin环境准备
使用的是Deepin 20.8 stable版本的虚拟机。从大学镜像站下载iso文件,虚拟机分配4核CPU、4G内存、128G硬盘。安装时选择推荐设置即可。

二、编译源码
1. 从git仓库下载源码
sudo apt install git
git clone https://github.com/linuxdeepin/dde-file-manager
2. 安装第三方库依赖
2.1. 可以直接apt install的库
按照仓库README的依赖说明,直接安装如下第三方库。
sudo apt install cmake debhelper pkg-config dh-systemd qtbase5-dev qtbase5-private-dev qtmultimedia5-dev libffmpegthumbnailer-dev libqt5svg5-dev libpolkit-agent-1-dev libpolkit-qt5-1-dev libdtkwidget-dev libdtkgui-dev libdtkcore-dev libdtkcore5-bin qttools5-dev-tools dde-dock-dev libdframeworkdbus-dev libtag1-dev libdmr-dev libicu-dev libqt5xdg-dev libgio-qt-dev libssl-dev libgtest-dev libgmock-dev libgsettings-qt-dev liblucene++-dev libdocparser-dev libboost-filesystem-dev libsecret-1-dev libkf5codecs-dev libpoppler-cpp-dev libcryptsetup-dev
此外,有4个无法直接通过apt安装的库,分别是:
- libdeepin-pdfium-dev
- libdfm-io-dev
- libdfm-mount-dev
- libdfm-burn-dev
这四个库需要从deepin的其他仓库中编译源码获得。
2.2. 安装Qt
从官网取得Qt的linux安装包。这里下载的是5.9.1版本。将.run文件直接复制到虚拟机中,终端运行。按照默认设置安装在/home/deepin/Qt5.9.1目录下。
https://download.qt.io/archive/qt/5.9/5.9.1/qt-opensource-linux-x64-5.9.1.runhttps://download.qt.io/archive/qt/5.9/5.9.1/qt-opensource-linux-x64-5.9.1.run在接下来编译其他三方库和软件源码的过程中,会遇到qmake和lrelease程序报错:
qmake: could not find a Qt installation of ‘’
为解决此报错,需要把系统自带的qmake和lrelease软链接到Qt安装目录下的可执行文件上。另外,qmake运行需要g++支持。
which qmake # /usr/bin/qmake
which lrelease # /usr/bin/lrelease
sudo rm /usr/bin/qmake
sudo ln -s /home/deepin/Qt5.9.1/5.9.1/gcc_64/bin/qmake /usr/bin/qmake
sudo rm /usr/bin/lrelease
sudo ln -s /home/deepin/Qt5.9.1/5.9.1/gcc_64/bin/lrelease/usr/bin/lrelease
sudo apt insall g++
2.3. 安装deepin其他第三方库
在2.1中的4个无法通过apt install安装的第三方库,在deepin源码仓库中分为两个项目,分别是util-dfm和deepin-pdfium。
git clone https://github.com/linuxdeepin/deepin-pdfium.git
git clone https://github.com/linuxdeepin/util-dfm.git
同样进一步安装两个库所需要的第三方依赖库。
# deepin-pdfium
sudo apt install liblcms2-dev libopenjp2-7-dev libchardet-dev
# util-dfm
sudo apt install libudisks2-dev libisoburn-dev libmediainfo-dev
此后,并不需要按照两个库中的README文件按步骤编译,而是直接用dpkg-buildpackage命令构建deb包,使用dpkg -i安装。
# dependencies
sudo apt install fakeroot build-essential
# deepin-pdfium
cd deepin-pdfium
dpkg-buildpackage -us -uc
sudo dpkg -i ../libdeepin-pdfium*.deb # libdeepin-pdfium-dev
# util-dfm
cd ../util-dfm
dpkg-buildpackage -us -uc
sudo dpkg -i ../libdfm*.deb # libdfm-io-dev libdfm-mount-dev libdfm-burn-dev
在上面的编译过程中,会出现如下的报错,提示依赖问题。

需要在debian/rules文件中,加上如下的两行,方可编译通过:
override_dh_shlibdeps:
dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info
至此,dde-file-manager的所有三方依赖安装完成,可以开始编译。
3. 编译安装
按照README文件所述的步骤进行编译安装。
# 检查并安装依赖
sudo apt build-dep ./
# 编译
cmake -B build -DCMAKE_INSTALL_PREFIX=/usr
cmake --build build
# 安装并替换原有应用
sudo cmake --build build --target install
编译过程比较慢。好在如果后续修改单个文件的话,不需要将整个项目重新编译一遍,速度还是可以接受的。

三、测试运行
在终端唤起dde-file-manager应用。
# 可以使用-h查看支持的参数
dde-file-manager
从源码构建的dde-file-manager已经可以成功运行。
参考
安装qt qmake assistant 错误:could not find a Qt installation of ''_wangshaobovip的博客-优快云博客
dpkg-buildpackage制作deb软件包_weixin_34124651的博客-优快云博客
debian packaging - dpkg-shlibdeps: error: no dependency information found for - Stack Overflow