Nautilus源码编译傻瓜式教程一
安装flatpak并更改为国内源
安装flatpak
选择你的系统
ubuntu安装flatpak
根据上面的步骤安装
上面的步骤里面有一步执行了如下命令
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
命令解析:
-
flatpak remote-add
:这是用于管理 Flatpak 应用仓库的命令。它允许用户添加、删除、列出和管理 Flatpak 应用仓库。 -
--if-not-exists
:这是一个选项(flag),表示如果指定的远程仓库不存在,则添加它。如果已经存在同名的远程仓库,则不会执行任何操作,这样可以避免重复添加相同的仓库。 -
flathub
:这是你为远程仓库指定的名称。在 Flatpak 中,远程仓库通常用于存储和分发 Flatpak 应用程序。 -
https://dl.flathub.org/repo/flathub.flatpakrepo
:这是远程仓库的 URL 地址,即要添加的远程仓库的位置。在这种情况下,https://dl.flathub.org/repo/flathub.flatpakrepo
是 Flathub 提供的官方仓库地址,用于访问 Flathub 存储的 Flatpak 应用程序。
先安装官方仓库:注意此处命名为:flathub 接下来更改镜像源的时候,以这个名称为准
注意:如果你把官方仓库命名为flathub-1 ,那么接下来更改镜像源时,
也要以flathub-1的名称为准:
flatpak remote-modify flathub-1 --url=https://mirror.sjtu.edu.cn/flathub,
而不是flathub,不然按网上默认的flathub名称去操作,会无法更改镜像源。
更改为国内源
flatpak remotes --show-details 查看源
flatpak remote-modify flathub --url=https://mirror.sjtu.edu.cn/flathub 更换上交大的源
上交大网站
如上表示源切换成功
下载Builder
Builder下载链接
flatpak install flathub org.gnome.Builder
执行上面指令后会出现交互,输入
你的账号密码
Y
Y
你的账号密码
等待下载即可
交大的源不稳定,如果替换了交大的源下不了的花就多试几次替换源,下载
交大的源最大能有500kb左右的速度,下载速度会随着链接的稳定越来越快,耐心等待即可
启动Builder
flatpak run org.gnome.Builder
参照https://welcome.gnome.org/zh-CN/app/Nautilus/#installing-a-nightly-build
下载Nautilus源码
填入项目地址:GNOME / Files · GitLabA file browser for GNOME Report a Bug | Questions & Suggestions | https://gitlab.gnome.org/GNOME/nautilus.git
下载的路径保持默认
下载完后会自动打开项目,并提示你下载依赖资源
这里可查看系在信息跟进度预览
reload可以重新检测你的sdk环境
安装必要环境
sudo apt install fuse3
sudo apt-get install libinih-dev
sudo apt-get install -y build-essential cmake git libz-dev libexpat1-dev
sudo apt install libfuse-dev
编译项目
点击小锤子编译
详细编译过程参考下一篇博文
附录:
处理编译报错
错误一
cp: cannot stat '/home/XXXXXX/Projects/.gnome-builder/flatpak-builder/git/https_github.com_Exiv2_exiv2.git': No such file or directory
原因是github链接不稳定
下载 GitCode - 全球开发者的开源社区,开源代码托管平台
到本地
cd .gnome-builder/flatpak-builder/git
git clone git@gitcode.com:gh_mirrors/ex/exiv2.git
并修改配置文件
nautilus/build-aux/flatpak/org.gnome.Nautilus.json
"name": "exiv2",
"config-opts": [
"-DCMAKE_INSTALL_PREFIX=/app",
"-DCMAKE_INSTALL_LIBDIR=/app/lib"
],
"buildsystem": "cmake-ninja",
"sources": [
{
"type": "dir",
"path": "/home/lijilei/Projects/.gnome-builder/flatpak-builder/git/exiv2",
"branch": "0.27-maintenance"
}
错误二
Could NOT find inih (missing: inih_LIBRARY inih_INCLUDE_DIR inih_inireader_INCLUDE_DIR inih_inireader_LIBRARY)
上面下载的exiv2编译报错
.gnome-builder/flatpak-builder/git/exiv2/cmake/Findinih.cmake
在上述文件中将
set(inih_LIBRARY_NAMES "inih" "libinih")
set(inih_inireader_LIBRARY_NAMES "INIReader" "libINIReader")
find_path(inih_INCLUDE_DIR
NAMES "ini.h"
DOC "inih include directory")
find_path(inih_inireader_INCLUDE_DIR
NAMES "INIReader.h"
DOC "INIReader include directory")
find_library(inih_LIBRARY
NAMES ${inih_LIBRARY_NAMES}
DOC "inih library")
find_library(inih_inireader_LIBRARY
NAMES ${inih_inireader_LIBRARY_NAMES}
DOC "inih library")
改为固定路径
set(inih_INCLUDE_DIR "/usr/include/")
set(inih_inireader_INCLUDE_DIR "/usr/include/")
set(inih_LIBRARY "/usr/lib/x86_64-linux-gnu/")
set(inih_inireader_LIBRARY "/usr/lib/x86_64-linux-gnu/")
具体的路径可通过以下命令查找
find /usr -name *libINIReader*
find /usr -name INIReader.h
find /usr -name ini.h
find /usr -name libinih.a
错误三
[32/89] Building CXX object src/CMakeFiles/exiv2lib_int.dir/nikonmn_int.cpp.o
<command-line>: warning: "_FORTIFY_SOURCE" redefined
.gnome-builder/flatpak-builder/git/exiv2/cmake/compilerFlags.cmake
注释掉add_compile_options(-Wp,-D_FORTIFY_SOURCE=2) # Requires to compile with -O2