当前位置: 首页 > article >正文

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 

你的账号密码

等待下载即可

交大的源不稳定,如果替换了交大的源下不了的花就多试几次替换源,下载

交大的源最大能有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 | icon-default.png?t=O83Ahttps://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


http://www.kler.cn/a/449669.html

相关文章:

  • conda 环境报错error while loading shared libraries: libpython3.9.so.1.0
  • 网络下载ts流媒体
  • springboot中使用gdal将表中的空间数据转shapefile文件
  • 《计算机组成及汇编语言原理》阅读笔记:p48-p81
  • 知识图谱+RAG学习
  • OpenHarmony的分布式服务框架介绍与实现解析
  • 20241230 基础数学-线性代数-(1)求解特征值(numpy, scipy)
  • 如何调大unity软件的字体
  • 大恒相机开发(3)—大恒相机工业检测的实际案例
  • css 裁剪 clip-path
  • STM32MP1linux根文件系统目录作用
  • 深入探索鸿蒙NEXT:设计原理、架构揭秘与ArkTS应用开发【书籍推荐】
  • 面试经典题目:LeetCode55_跳跃游戏
  • 基于Java+Swing+Mysql的超市客户关系管理系统
  • uniapp+vue开发app,蓝牙连接,蓝牙接收文件保存到手机特定文件夹,从手机特定目录(可自定义),读取文件内容,这篇首先说如何读取,手机目录如何寻找
  • Windows中Microsoft Edge兼容性问题|修复方案
  • Git的简介
  • .NET Core 项目配置到 Jenkins
  • dbcat mysql 慢日志监控利器
  • 潜在狄利克雷分配LDA 算法深度解析
  • Java面试要点94 - Java分布式锁的实现与应用
  • OSPF的基本配置
  • 从0-1逐步搭建一个前端脚手架工具并发布到npm
  • 基于python使用UDP协议对飞秋进行通讯—DDOS
  • 从AI换脸到篡改图像,合合信息如何提升视觉内容安全?
  • 【深度学习】论文复现-对论文数据集的一些处理