问题标签 [appimage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - 如何正确设置 MSSQL SERVER 的 odbc
我已经将 QT 桌面应用程序作为 Appimage。在我的开发笔记本电脑上,它可以完美地连接到数据库。但是,当我将 Appimage 放到我的 PC 上时,它也托管了 MS SQL Server,它不再工作了。
我的笔记本电脑和 PC 是 Linux Mint 19 笔记本电脑是 19.1,具体来说 PC 是 19.3。
我已经按照本指南安装了 odbc 和 tds: https ://help.interfaceware.com/kb/904
Ubuntu
我还像这样编辑了/etc/odbc.ini:
但是当我在 PC 上运行应用程序时,我总是得到:
我还检查了该库是否确实位于指定路径下:/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so 是的,它确实存在。
所以我问我在这里错过了什么?
帮助将不胜感激
此致
罗尔夫
appimage - 我的 appimage 包包含两个 python 库
我想appimage
用来捆绑一个基于 PyQt 的 python 应用程序。为此,我使用appimage-builder
. 将执行 appimage 构建的机器是 a debian/buster
(默认情况下与 python 3.7.3 一起提供)。根据文档,我派生了以下 appimage-builder 配置文件:
构建看起来不错,但是当我运行图像时,我收到 PyQt 的导入错误。检查图片的内容,发现里面有两条蟒蛇usr/lib
:apython 3.7
和a python 3.8
。我猜python 3.7来自构建机器的python是python 3.7,而python 3.8来自捆绑过程中安装的python(ubuntu/focal
用作源代码行)。您知道我的设置有什么问题以及如何解决吗?
linux - 由 appimage-builder 创建的巨大 appimage
我正在将我编写的应用程序打包到 AppImage 中,以便可以将其交付给 Linux 用户。
我正在使用的 GUI 工具包的一个关键特性是它小巧轻便,允许我编译一个静态链接到大约 6Mb 的 GUI 库的构建。
然而,在构建 AppImage 之后——我按照说明进行操作——使用所有功能(基本上只包括使用文件浏览器对话来加载文件)——它会生成一个绝对巨大的 AppImage,大约 200Mb!
我知道 AppImages 应该是“一点点”大,但是当本机编译的二进制文件(包括静态链接的 GUI 工具包)只有 6Mb 时,作为可移植性的提议解决方案,这完全是疯狂的。
但是,我根本不相信我需要全部 200Mb。一个与我非常相似的软件,但另外使用 Qt(相比之下相当臃肿)只有大约 30Mb。我实际上怀疑 appimage-builder 做错了什么 - 我认为它列出了我在使用文件浏览器对话框作为依赖项时探索的目录中的文件(它们是大文件)。我没有其他真正的解释。但如果是这样,我该如何阻止它这样做呢?
为什么我的那么大?我能做些什么呢?
作为记录,我正在使用这种方法来构建我的 AppImage
- 分别构建我的二进制文件
- 运行
appimage-builder --generate
并填写表格 - 跑步
appimage-builder --recipe AppImageBuilder.yml --skip-tests
编辑:删除明显不需要的正在打包的文件已将 appimage 的大小减小到仅140Mb,但这仍然比我见过的同等 appimage 大 5 倍。是否有一些我不知道的技巧/选项?
c - Oracle OCI 库在 AppImage 中打包时失败
以下代码设置 OCI(Oracle 调用接口)环境,必须在尝试连接到数据库之前完成。它在作为普通程序编译和链接时工作正常,但是当我尝试将其打包到 AppImage 中时,OCIEnvCreate()
返回OCI_ERROR
.
如果我设置LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib/
AppImage 按预期工作。显然,AppImage 构建器所做的库诡计在 Oracle 库上以某种方式失败。有什么技巧可以让它们在 AppImage 中工作吗?
(设置 LD_LIBRARY_PATH 不是解决方案,因为我试图不必在每个客户端上都安装 Oracle 库。)
在 CentOS 8、GCC 8.4.1 和 10.2.1、oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64 上测试
fuse - 在 appimage 中使用 unionfs
我正在从 AppImage(使用 appimage-builder v0.9.2 创建)中的脚本创建覆盖 FS(使用 unionfs-fuse)。
覆盖已成功挂载,但在脚本结束时,无法使用“ Operation not permitted
”正确卸载。
在 AppImage 结束后,fusermount -u
工作正常。
这是脚本script.sh
:
这是 AppImage 配方AppImageBuilder.yml
:
terminal.png
(构建 AppImage还需要一个随机图标文件)。
AppImage 是使用以下工具构建的:
任何帮助,将不胜感激!
ruby - Appimage制作包问题
我需要发布我用 ruby 编写的程序。
首先,我想将 ruby 制作成 appimage 包到客户端 linux。
现在我制作“ruby-img”文件夹并将桌面文件放下,如下所示:
我使用的 ruby 已编译 --prefix 到“/app”文件夹,该文件夹是“/app/ruby”,其中包含“/app/ruby/bin,/app/ruby/lib ...”,然后我复制了/app/ruby 整个文件夹到“ruby-img”文件夹,它看起来像“ruby-img/app/ruby,ruby-img/usr ...”然后我将符号链接设置为“ln -r -s app/ ruby/bin/ruby usr/bin/。” 在“ruby-img”文件夹中。并使用 appimagetools 创建 ruby-x86-64.AppImage。但不能运行。找不到一些 ruby 库,(看起来像运行 ruby.AppImage,ruby 库路径仍然可以在 /app/ruby/lib 中找到,但不在“ruby-img/app/ruby/lib”中,如果我重命名/app/ ruby 会出现错误)
我尝试将 ruby --prefix 重新编译为 /usr/local/ruby 或 /tmp/ruby ...然后复制到“ruby-img”并制作一些相关的东西,修复桌面文件,但仍然无法运行 ruby.AppImage appimagetool 创建了什么。
有什么想法可以帮助我吗?谢谢
ruby - 应用映像问题
我想发布我用 ruby 语言编写的程序,我需要先将 ruby 打包到 appimage 文件并发送到我的客户端 ubuntu PC。
所以我创建文件夹“ruby-img”,然后将“/app/ruby”文件夹中我编译的ruby复制到“ruby-img/app/ruby”,然后创建一个链接为“ln -r -s app/ruby” /bin/ruby usr/bin/。” 在“ruby-img”文件夹中。
然后我创建桌面文件并将png文件放入“ruby-img”,使用appimagetool创建ruby-x86_64.AppImage。遗憾的是它无法运行,AFAIK ruby.AppImage 仍在使用 /app/ruby/lib 文件夹来查找一些 ruby 库,但不在“ruby-img/app/ruby/lib”相关文件夹中。
所以我尝试将 ruby 重新编译为 --prefix=/tmp/ruby 或 --prefix=/usr/local/ruby,然后将它们复制到“ruby-img/usr/local/ruby”或“ruby-img/tmp /ruby" 然后是上面的一些链接,然后重新打包到 AppImage 但 ruby.AppImage 仍然无法正常工作......
有什么想法可以帮助我吗?
c++ - Ubuntu Packaging - 如何将 QT GUI 二进制文件与控制台二进制文件一起打包为一个 AppImage?
我制作了一个 Qt GUI c++ 应用程序,它是控制台二进制文件的包装器。Qt 应用程序引导用户创建一些数据,将该数据提供给控制台二进制文件并显示结果。
我需要将应用程序和控制台二进制文件部署到没有 Internet 访问权限的 Ubuntu 18.04,并且该应用程序需要双击可执行图标。最终用户不会精通计算机。
我已经收集到 AppImage 应该可以解决问题。但是,有一些限制我不知道如何克服:
- 我无权将控制台二进制文件集成到包装器应用程序的源代码中。它们将作为两个独立的二进制文件保留。
- 这是我有史以来的第一次部署,大多数关于 AppImage 的教程/论坛讨论都假设我没有关于在 Linux 上安装的知识。
我可以使用 linuxdeployqt 单独创建包装应用程序的 AppImage。(即使生成的 AppImage 不尊重原始二进制文件的字体系列)
./linuxdeployqt-continuous-x86_64.AppImage ./WarpperApp-v0.8/usr/share/applications/WarpperApp.desktop -appimage
我试图简单地将控制台二进制文件添加到使用 linuxdeployqt 构建包装应用程序 AppImage 所需的目录的 /usr/bin 中。
./linuxdeployqt-continuous-x86_64.AppImage ./WarpperApp-v0.9/usr/share/applications/WarpperApp.desktop -appimage
但是,控制台二进制文件的库没有加载,即使加载了,我也不知道调用控制台二进制文件的新路径是什么。我使用 C++ 函数system( "path/to/console/binary path/to/data")
进行调用。
linux - 如何在运行时提取和比较 libc 版本?
如何在运行时提取和比较具有以下限制的 libc 版本?
- 稳定的解决方案(命令输出解析被丢弃,因为这可能会有所不同)
- 不应依赖执行外部工具,如 ldd、gcc 或其他
- 必须在静态链接的二进制文件 (AppRun) 上工作
- 将在 C 中实现
语境:
在 AppImage 项目中,一直在开发一项功能,以允许创建向后兼容的包。为此,我们创建了一个名为 AppRun 的程序。Things 程序将系统 glibc 版本与捆绑包中的版本进行比较,并将捆绑包配置为在运行时使用较新的版本。该程序是静态链接的,不应依赖外部工具。
现在我们扫描libc.so
文件以查找GLIBC_X.XX
并存储更大的。但这不再适用于 Ubuntu 20.04 中的最新二进制文件。二进制文件是 2.31,但文件中没有GLIBC_2.31
字符串,因此该方法失败。
相关问题:
python - appimage-builder 在创建 gpg 密钥时出现 pacman 错误
我一直在尝试使用 appimage-builder 来生成基于 PyQt5 的应用程序。为此,我需要将 python3 与它捆绑在一起,并且我正在尝试使用它,pacman
因为我正在运行 arch。
但是,当我运行时appimage-builder
,它会出错并显示以下消息:
在我的操作系统上安装期间使用没有任何问题pacman
,所以我不确定问题是什么,或者为什么它甚至试图生成新的 gpg 密钥。
有什么我想念的吗?有没有另一种将 python 捆绑到 AppImage 中的方法?
AppImageBuilder.yml
以供参考: