nix-flatpak终极指南:如何在NixOS上声明式管理Flatpak应用
nix-flatpak终极指南如何在NixOS上声明式管理Flatpak应用【免费下载链接】nix-flatpakInstall flatpaks declaratively项目地址: https://gitcode.com/gh_mirrors/ni/nix-flatpaknix-flatpak是一款专为NixOS设计的声明式Flatpak管理器灵感源自declarative-flatpak和nix-darwin的homebrew模块。它提供了NixOS和home-manager模块支持系统级或用户级Flatpak应用安装让你轻松实现Flatpak应用的声明式管理。什么是nix-flatpaknix-flatpak采用了一种收敛模式的包管理方法目标系统状态描述并非详尽无遗允许在构建和回滚过程中存在一定差异。对于许多桌面应用我们希望能够跟踪最新版本或允许它们自动更新这种收敛方法在系统可重现性方面是一个合理的权衡。Flatpak应用由systemd oneshot服务在系统激活时触发安装。根据要安装的应用数量这可能会显著增加激活时间。快速开始安装nix-flatpak使用Flakes安装推荐Flakes是推荐且官方支持的安装方法。你可以在flake配置中添加nix-flatpak输入{ inputs { # ... nix-flatpak.url github:gmodena/nix-flatpak/?reflatest; # 使用最新稳定版 }; outputs { nix-flatpak, ... }: { nixosConfigurations.host nixpkgs.lib.nixosSystem { modules [ nix-flatpak.nixosModules.nix-flatpak ./configuration.nix ]; }; }; }手动安装如果你不使用Flakes也可以手动下载并导入nix-flatpak模块。Nixpkgs用户可以使用fetchFromGithub获取器let # Fetch nix-flatpak nix-flatpak pkgs.fetchFromGitHub { owner gmodena; repo nix-flatpak; rev v0.7.0; hash sha256-7ZCulYUD9RmJIDULTRkGLSW1faMpDlPKcbWJLYHoXcs; }; in imports [ # 导入nix-flatpak NixOS模块以系统级安装应用 # HomeManager用户应在适当位置导入${nix-flatpak}/modules/home-manager.nix ${nix-flatpak}/modules/nixos.nix ];配置Flatpak应用启用Flatpak服务首先在configuration.nix中启用flatpak服务services.flatpak.enable true;配置远程仓库默认情况下nix-flatpak会添加flathub远程仓库。你可以通过services.flatpak.remotes选项手动配置远程仓库services.flatpak.remotes lib.mkOptionDefault [{ name flathub-beta; location https://flathub.org/beta-repo/flathub-beta.flatpakrepo; }];使用lib.mkOptionDefault可以将声明的远程仓库与默认的flathub合并而不是覆盖它。声明要安装的应用使用services.flatpak.packages选项声明要安装的Flatpak应用services.flatpak.packages [ { appId com.brave.Browser; origin flathub; } com.obsproject.Studio im.riot.Riot ];你还可以通过设置commithash属性来固定特定的提交版本。安装Flatpakref文件你可以通过设置flatpakref属性来安装Flatpakref文件services.flatpak.packages [ { flatpakref uri; sha256hash; } ];sha256哈希是必需的可以使用nix-prefetch-url uri生成。安装Flatpak捆绑包可以直接安装捆绑文件.flatpak方法是将bundle指向URI并提供匹配的sha256services.flatpak.packages [ rec { appId appId; sha256 hash; bundle ${pkgs.fetchurl { url bundle-uri; inherit sha256; }}; } ];管理Flatpak应用更新激活时更新设置以下选项可在系统激活时启用更新services.flatpak.update.onActivation true;默认值为false以确保nixos-rebuild switch的重复调用是幂等的。固定到特定提交哈希的应用不会被更新。定期自动更新可以通过设置以下选项启用定期更新services.flatpak.update.auto { enable true; onCalendar weekly; # 默认值 };自动更新在系统激活时触发。底层使用systemd计时器调度更新onCalendar接受systemd的日历表达式。配置Flatpak覆盖Flatpak覆盖允许你修改应用权限和环境变量。nix-flatpak提供了两种管理覆盖的方式内联settings和外部files。内联配置使用services.flatpak.overrides.settings直接在Nix配置中声明覆盖{ services.flatpak.overrides.settings { global { # 默认强制使用Wayland Context.sockets [wayland !x11 !fallback-x11]; Environment { # 修复某些Wayland应用中的光标主题问题 XCURSOR_PATH /run/host/user-share/icons:/run/host/share/icons; # 为某些GTK应用强制正确的主题 GTK_THEME Adwaita:dark; }; }; com.visualstudio.code.Context { filesystems [ xdg-config/git:ro # 暴露用户Git配置 /run/current-system/sw/bin:ro # 暴露NixOS管理的软件 ]; sockets [ gpg-agent # 暴露GPG代理 pcsc # 暴露智能卡如YubiKey ]; }; }; }外部覆盖文件使用services.flatpak.overrides.files从外部INI文件加载覆盖{ services.flatpak.overrides { files [ ./overrides/com.visualstudio.code ./overrides/org.gnome.Terminal ]; }; }文件名称必须与应用ID匹配例如com.visualstudio.code文件应采用标准Flatpak覆盖INI格式。高级设置管理未声明的包和远程仓库默认情况下nix-flatpak只会管理在services.flatpak.packages中声明的包和在services.flatpak.remotes中声明的仓库。通过命令行或应用商店安装的Flatpak包和仓库不会受到影响。设置services.flatpak.uninstallUnmanaged true可以改变此行为让nix-flatpak管理所有Flatpak包和仓库的生命周期。存储位置Flatpak存储在Nix存储之外系统级安装nixosModules位于/var/lib/flatpak用户级安装homeManagerModules位于${HOME}/.local/share/flatpak/。Flatpak安装不是分代的系统重建和回滚时包声明的更改将导致重新下载应用。系统d服务错误重试在网络连接不稳定的情况下nix-flatpak安装脚本可能会失败。restartOnFailure选项控制flatpak-managed-install服务遇到失败时的行为restartOnFailure { enable true; restartDelay 60s; exponentialBackoff { enable false; steps 10; maxDelay 1h; }; };示例配置你可以在testing-base/flatpak.nix找到示例配置{ lib, ... }: { # 添加新的远程仓库保留默认的flathub services.flatpak.remotes lib.mkOptionDefault [{ name flathub-beta; location https://flathub.org/beta-repo/flathub-beta.flatpakrepo; }]; services.flatpak.update.auto.enable false; services.flatpak.uninstallUnmanaged false; # 在这里添加你想要安装的flatpaks services.flatpak.packages [ #{ appId com.brave.Browser; origin flathub; } #com.obsproject.Studio #im.riot.Riot ]; }结语nix-flatpak为NixOS用户提供了一种简单而强大的方式来声明式管理Flatpak应用。通过本文介绍的方法你可以轻松配置、安装和更新Flatpak应用同时保持系统的可管理性和可重现性。无论你是NixOS新手还是有经验的用户nix-flatpak都能帮助你更好地管理桌面应用。开始使用nix-flatpak体验在NixOS上声明式管理Flatpak应用的便捷吧你可以通过克隆仓库开始git clone https://gitcode.com/gh_mirrors/ni/nix-flatpak【免费下载链接】nix-flatpakInstall flatpaks declaratively项目地址: https://gitcode.com/gh_mirrors/ni/nix-flatpak创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

宇树RL面试,让机器人学会走路比你想的难十倍

宇树RL面试,让机器人学会走路比你想的难十倍

写完宇树仿真岗面试那篇之后,我在评论区看到一个说法:"宇树最核心的算法岗不是控制也不是仿真,是强化学习。"这话有一定道理——宇树的Go2和H1上跑的步态策略,很大一部分都是RL训出来的。跟传统控制方法比,RL策略能学到更自然的步态、更好的地形适应能力,而且一…

2026/7/28 7:36:40 阅读更多 →
宇树仿真岗面试,推导牛顿-欧拉方程这关刷掉了七成候选人

宇树仿真岗面试,推导牛顿-欧拉方程这关刷掉了七成候选人

上篇聊完宇树运动控制面试的WBC和MPC之后,群里有个正在准备宇树面试的同学说:"控制岗考优化,仿真岗考物理,这两条路线简直是两条平行的修罗之路。"他说得没错。宇树的动力学仿真工程师面试跟运动控制岗画风完全不同——控制岗关心的是"怎么让机器人走好&quo…

2026/7/28 7:36:40 阅读更多 →
G-Helper:轻量级华硕笔记本性能管理工具,3个步骤告别Armoury Crate臃肿体验

G-Helper:轻量级华硕笔记本性能管理工具,3个步骤告别Armoury Crate臃肿体验

G-Helper:轻量级华硕笔记本性能管理工具,3个步骤告别Armoury Crate臃肿体验 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar…

2026/7/28 7:36:40 阅读更多 →

最新新闻

行空板Python硬件编程入门:从环境搭建到交互项目实战

行空板Python硬件编程入门:从环境搭建到交互项目实战

1. 初识行空板:从开箱到点亮第一盏灯如果你对编程和硬件交互感兴趣,想找一个比树莓派更简单、比Arduino功能更强大的起点,那么行空板很可能就是你正在寻找的那块“敲门砖”。我最初接触它,也是被它“自带屏幕、按键、传感器&#…

2026/7/28 7:55:46 阅读更多 →
基于ATtiny85与BCD编码的极简数码管手表设计与实现

基于ATtiny85与BCD编码的极简数码管手表设计与实现

1. 项目概述:当极简单片机遇上复古显示几年前,我在一个电子垃圾箱里翻到一块老旧的七段数码管,它那橙红色的发光体瞬间把我拉回了童年。当时就想,能不能用最小的硬件,做一块纯粹显示时间的手表?不是智能手表…

2026/7/28 7:55:46 阅读更多 →
基于行空板与ESP32的智能眼镜DIY:从架构设计到实践部署

基于行空板与ESP32的智能眼镜DIY:从架构设计到实践部署

1. 项目缘起:从一块屏幕到一副眼镜的奇思妙想大概半年前,我在捣鼓一块行空板,这玩意儿本质上是个集成了屏幕、Wi-Fi、蓝牙和各种传感器的微型Linux电脑,非常适合用来做物联网和交互原型。当时用它做了个智能家居中控,效…

2026/7/28 7:55:46 阅读更多 →
如何在Flutter中快速集成socket.io-client-dart:5分钟上手教程

如何在Flutter中快速集成socket.io-client-dart:5分钟上手教程

如何在Flutter中快速集成socket.io-client-dart:5分钟上手教程 【免费下载链接】socket.io-client-dart socket.io-client-dart: Dartlang port of socket.io-client https://github.com/socketio/socket.io-client 项目地址: https://gitcode.com/gh_mirrors/so/…

2026/7/28 7:55:46 阅读更多 →
Simply主题会员功能详解:如何通过Ghost博客实现内容变现

Simply主题会员功能详解:如何通过Ghost博客实现内容变现

Simply主题会员功能详解:如何通过Ghost博客实现内容变现 【免费下载链接】simply Theme for Ghost inspired on Medium 项目地址: https://gitcode.com/gh_mirrors/si/simply Simply主题是一款基于Ghost平台开发的Medium风格博客主题,其强大的会员…

2026/7/28 7:55:46 阅读更多 →
React-Selectize完全指南:打造高效React下拉选择组件的终极方案

React-Selectize完全指南:打造高效React下拉选择组件的终极方案

React-Selectize完全指南:打造高效React下拉选择组件的终极方案 【免费下载链接】react-selectize 项目地址: https://gitcode.com/gh_mirrors/re/react-selectize React-Selectize是一个功能强大的React下拉选择组件库,提供了丰富的特性和灵活的…

2026/7/28 7:54:46 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻