bra*_*enb 6 software-installation flatpak
我在一个锁定的公司环境中工作,我需要在完全离线的环境中安装最新的 MonoDevelop ( http://www.monodevelop.com/download/linux/ )。我有能力访问网络来做我需要做的任何事情,但我需要以某种方式生成一组文件,我可以用闪存驱动器或其他媒体携带这些文件,我可以从中在 RHEL 7.2 机器上执行安装。
该flatpak build-bundle
命令看起来很有希望,但它似乎无法从在线存储库中工作。由于 MonoDevelop 是从 flatpakref 安装的,我一直无法弄清楚如何做到这一点。我需要在本地镜像整个 repo 吗?如果是这样,因为 flatpakref 文件还引用了运行时 Gnome 存储库,我是否也需要对其进行镜像?
我真正喜欢的是安装它,然后以某种方式导出一个包。对于以前版本的 MonoDevelop,我们能够使用 repotrack 找到所有相关的 RPM 并手动将它们带过来,但是现在它们已经转移到 flatpak 似乎并不那么容易。
2020 年 11 月更新:在 Flatpak 1.7.1+ 中,有一个新的 cmdline 选项\n--sideload-repo
和不同的离线存储库路径。还重新措辞答案\n以尝试缩小整体规模。
2020 年 6 月更新:我对离线存储库的位置不够具体。\n 为避免疑义,脱机存储库中摘要文件的完整路径应该是:/.ostree/repos.d/myoffline_repo/summary
。澄清\说明如下。还发现脱机存储库的链接必须位于同一文件系统上。
2020 年 5 月更新:记下导致离线使用 flatpak\n令人痛苦的两个问题。
\n请注意两个导致使用离线 Flatpak 存储库变得困难的问题:
\n安装使用脱机存储库中的扩展的 Flatpak 时,有一个错误会导致出现问题:当两个存储库中存在相同的扩展引用时,\nFlatpak 会感到困惑\n脱机工作时,\n您会创建第二个存储库来镜像在线存储库,因此这个错误是无法避免的。这意味着脱机\n计算机上未安装所需的扩展。检查是否属于这种情况的最佳方法是将\n健康在线系统上安装的内容与\n离线系统上安装的内容进行比较flatpak list
。\n显着差异可能表明\n离线系统上需要额外的扩展。当您安装某些东西时,Flatpak 会列出它将要安装的内容,以便您也可以通过这种方式进行比较。在离线系统上,它将无法列出扩展名。
某些 Flatpak 尝试在安装期间下载文件(额外数据)\n如果主机始终处于脱机状态,则会失败:从 Flatpak 脱机安装时无法下载 libopenh264\ncreate-usb \n其中一个示例是安装过程中出现的 openh264 扩展从 cisco.com 下载\n。您可以通过将所需的下载放在\nFlatpak 无需下载即可找到的正确位置来规避此问题:\n\'~/.local/share/flatpak/extra-data/$SHA256/$FILENAME\'。然而,确切的文件名取决于 flatpak 的配置。找出问题的一种方法是使用 strace 安装有问题的 flattak,并针对额外数据路径查找 ENOENT。shas 和文件名将在版本/更新之间发生变化,因此您\n必须持续更新它。
\n博客文章“关于 Flatpak 安装”\n(blogs.gnome.org) \nmclasen 在官方 GNOME 博客上表示这正是它的用途flatpak create-usb
- 它创建包含应用程序的远程存储库的镜像,并且\n也将捆绑所有依赖项。您甚至可以create-usb
多次重复此步骤,\n将更多应用推送到新存储库,然后再转移到\n离线主机。您也不必使用 USB 记忆棒,您可以根据需要将存储库传输到目标计算机。
从您将构建离线存储库的计算机开始:您正在镜像的远程服务器将需要集合 ID 和后续的 Flatpak 更新。如果您尝试从 flathub 打包应用程序,作者给出了一个示例:
\n# Configure the remote\nflatpak remote-modify --collection-id=org.flathub.Stable flathub\n# Force an update\nflatpak update\n# Package up GIMP (for example)\nflatpak create-usb ./ org.gimp.GIMP\n
Run Code Online (Sandbox Code Playgroud)\n作者解释了为什么需要这些步骤:
\n\n\n如果您不\xe2\x80\x99t 将集合 ID 添加到远程配置中,\n您将收到一条错误消息,提示 \xe2\x80\x9cRemote \xe2\x80\x98flathub\xe2\x80\x99 没有集合ID\n集\xe2\x80\x9d。如果省略 flatpak 更新,错误将显示 \xe2\x80\x9cNo suchbranch\n(org.flathub.Stable, ostree-metadata) inrepository\xe2\x80\x9d。
\n
尽管谈到了 USB 记忆棒,但这将在.ostree
当前目录下留下一个存储库。
现在您已经有了一个离线存储库,您想在安装 flatpaks 时使用它。这里\n根据您的 Flatpak 版本存在差异。
\n从 Flatpak 1.7.1 开始,有关USB 驱动器的最新文档将离线存储库称为旁载存储库。文档说您可以在--sideload-repo
命令行指定 \na,使用他们的新 systemd 单元或
\n\n或者,\xe2\x80\x99s 可以使用放置在系统范围或用户特定目录中的符号链接来指定旁加载源,然后这些源将\n用于所有 Flatpak 操作,而不需要 --sideload-repo \n选项。
\n
这是指flatpak 命令\n参考\n其内容如下:
\n\n\n此类存储库是通过在安装目录的 sideload-repos 子目录(即\n通常为 /var/lib/flatpak/sideload-repos)中创建指向 sideload 源的符号链接来配置的。此外,可以在 /run/flatpak/sideload-repos 中创建符号链接,这是非持久源的更好位置(因为它会在重新启动时清除)。这些符号链接可以指向指定给 flatpak create-usb 的目录(默认情况下写入子路径 .ostree/repo),也可以直接指向 ostree 存储库。
\n
永久设置的最佳选择是在 \n 下创建符号链接/var/lib
。作为一个示例,Flatpak 应该能够在\ offline_flatpak
n此处获取您的存储库的摘要:\n/var/lib/flatpak/sideload-repos/offline_flatpak/summary
前面提到的 systemd 单元似乎只是扫描新插入的驱动器并\n将符号链接放在\n下,/run/flatpak/...
如果您真正\n使用 USB 驱动器,这可能就足够了。
Flatpak 有一个存储库查找器机制,在查找存储库或其镜像时,它不仅会考虑远程,还会考虑某些本地路径。您只需将镜像存储库放在目标计算机上的正确位置,\nFlatpak 即可使用它。Flatpak 将在每个安装位置搜索位于以下\ndirs 的存储库:
\n.ostree/repo\nostree/repo\n.ostree/repos.d/\nostree/repos.d/\n
Run Code Online (Sandbox Code Playgroud)\n因此,您可以将存储库复制到 USB 并将其粘贴到目标计算机中,或者\n将文件复制到例如/.ostree/repo
以使用根文件系统。
需要明确的是,如果您选择使用,/.ostree/repos.d
则\n您的脱机存储库的摘要文件应位于/.ostree/repos.d/myoffline_repo/summary
。
您还可以在任何这些目录中使用符号链接并将真实文件\其他位置放置,例如
\n.ostree/repo\nostree/repo\n.ostree/repos.d/\nostree/repos.d/\n
Run Code Online (Sandbox Code Playgroud)\n但请注意,链接必须指向相同的文件系统,否则 flatpak 将不会使用它。
\n另请注意,Flatpak 将优先选择它能找到的最新存储库,无论是哪个\n。
\n当然,您仍然必须记住将原始存储库添加到目标计算机\n(在本例中为 flathub) - 并设置集合 ID。这是因为镜像存储库中的所有内容都是通过引用原始集合 ID 来存储的。在目标机器上:
\nmkdir -p /.ostree/repos.d\nln -s /home/user/Downloads/.ostree/repo /.ostree/repos.d/myoffline_repo\n
Run Code Online (Sandbox Code Playgroud)\n如果目标确实离线,您可以从 .flatpakrepo 文件添加远程,\而不是使用 URL:
\nflatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo\nflatpak remote-modify --collection-id=org.flathub.Stable flathub\n
Run Code Online (Sandbox Code Playgroud)\n然后您可以继续在目标计算机上正常安装:
\nflatpak remote-add --if-not-exists flathub flathub.flatpakrepo\n# Download file from https://flathub.org/repo/flathub.flatpakrepo\n
Run Code Online (Sandbox Code Playgroud)\n如果有任何问题:
\n--ostree-verbose
到 flatpak cmd,以从\nostree 中查看调试以了解可能存在的问题。ostree summary -v --repo=REPO
查看\n其中实际内容。 归档时间: |
|
查看次数: |
3163 次 |
最近记录: |