首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用 AppImage 进行 Linux 软件包管理

使用 AppImage 进行 Linux 软件包管理

作者头像
用户1880875
修改于 2021-09-16 10:15:32
修改于 2021-09-16 10:15:32
1.6K00
代码可运行
举报
运行总次数:0
代码可运行

管理 Linux 机器(尤其是远程机器)的一个重要分就是管理和安装软件。当本地应用程序出现问题时,或者文件系统上的某些文件损坏需要修复时,你通常会希望推送更新,而不必走很多路坐在物理屏幕前。正如我在 Pluralsight 课程《Linux 系统维护和故障排除》中所解释的那样,许多问题当然可以通过 Bash 脚本解决,但是仍有很多情况下,除了老式的二进制文件外,没有其他选择。

想象一下,你的某些远程系统需要安装新的应用程序,这样使用这些计算机的团队成员就能够执行某些业务。能够利用 Debian 或 RPM 之类的主要 Linux 仓库系统的集成和自动化,可以使你的管理任务变得更加容易。

正如 Linus Torvalds 永不厌倦地提醒我们的那样,太多的 Linux 软件管理系统的问题是 Linux 软件管理系统太多了。多年来,应用开发甚至是 Linux 的采用都变得愈加复杂起来,因为你为了提供你的软件(比如,放到 Debian 仓库)而投入的所有时间和工作,对于你想让它们进入 RPM 系统并没有什么帮助,对于 SUSE 的 Zypper 管理器也一样,没有什么帮助。

解决软件孤岛问题的一种有前途的方案是分发具有自足环境的应用,它们可以在任何 Linux 发行版上运行。在这个年轻且不断发展的领域中,选择之一是 AppImage

使用 AppImage

我全面投入到了 AppImage。就像我提到的其他软件包管理系统一样,如果你需要的话,有很多复杂的功能可以使用。但是,从本质上讲,AppImage 非常简单。AppImage 不像大多数其他包管理器一样通过仓库工作,它使用单个、独立的文件,可以直接发送或通过网站共享。

下面是个展示它的美妙之处的例子。当我在用 AppImage 时,我在一个技术论坛上看到了一个很老的讨论,它让我找到了一个同样久远且废弃的 GitHub 项目以及相关的 YAML 和配方文件。它们旨在自动构建准备生成 AppImage 包所需的相当复杂的基础架构。尽管该基础架构全部是在 5 年前的 Ubuntu 版本上构建的,但是当我将它们放在一起并运行 appimagetool 命令时,它创建了一个 AppImage 文件,它可在我当前的桌面上无缝运行。我不认为有很多有五年历史的 GitHub 复杂项目可以使用其他技术运行,而无需认真重做。

但是这里我我不会介绍这个案例。相反,我将用一个简单的 Hello World 程序向你展示它是如何工作的。首先,请确保本地已安装 AppStream 包。

对于基于 Debian 的系统,运行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo apt install appstream

对于 RPM 系统,请使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ sudo dnf install appstream

克隆这篇文章中提及的 Git 仓库,我会基于它示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git clone <https://github.com/boolean-world/appimage-resources>
$ cd appimage-resources
$ ls hello-world-appimage

接下来,使用 cd 进入 Git 新创建的目录。这里有两个目录。请使用 hello-world-appimage。另一个是更复杂的项目,你也应该考虑尝试一下。

Linux GUI 系统会读取 helloworld.desktop 文件来知道如何呈现桌面图标。事实证明,当前的这个文件会在以后给你带来点麻烦,因此请进行一些小修改:添加 Categories= 这行并为其赋予值 GNOME。不要忘记最后的分号:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ nano hello-world-appimage/helloworld.desktop
        add Categories=GNOME;

AppImage GitHub 项目下载 appimagetool 预编译的二进制文件。访问 GitHub 的原因之一:那里有很多出色的文档和资源。下载二进制文件后,使文件可执行,并将 hello-world-appimage 目录传给它。但是首先,你需要告诉它你想要的架构。由于某些原因,一个名字以 x86_64 结尾的工具都不能自行确定是否该使用 x86_64 来构建应用程序(我不知道这是怎么回事)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ wget <https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage>
$ chmod +x appimagetool-x86_64.AppImage
$ ARCH=x86_64 ./appimagetool-x86_64.AppImage hello-world-appimage

如果你没有看到任何错误消息,那么表示完成了,请运行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ ls
$ ./hello-world-appimage-x86_64.AppImage

总结

AppImage 是软件包管理的非常有效的选择。当你探索它时,我想你会发现它是 Linux 发行版默认软件包系统的很好的替代品。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
Linux问题故障定位,看这一篇就够了
有时候会遇到一些疑难杂症,并且监控插件并不能一眼立马发现问题的根源。这时候就需要登录服务器进一步深入分析问题的根源。那么分析问题需要有一定的技术经验积累,并且有些问题涉及到的领域非常广,才能定位到问题。所以,分析问题和踩坑是非常锻炼一个人的成长和提升自我能力。如果我们有一套好的分析工具,那将是事半功倍,能够帮助大家快速定位问题,节省大家很多时间做更深入的事情。
十四君
2020/03/13
3.2K0
Linux问题故障定位,看这一篇就够了
掌握运维必备技能--问题故障定位
a. on-CPU:执行中,执行中的时间通常又分为用户态时间user和系统态时间sys。
用户6543014
2019/10/25
1.3K0
掌握运维必备技能--问题故障定位
四种火焰图,快速定位Off-CPU性能问题
On-CPU性能问题可以借助On-CPU火焰图解决,但是无法了解进程和线程不在CPU上运行所花费的时间。如果有很多的时间花在同步请求上,也会很容易影响性能表现。
程栩的性能优化笔记
2023/11/01
2.8K0
四种火焰图,快速定位Off-CPU性能问题
火焰图:全局视野的Linux性能剖析
日常的工作中,会收到一堆CPU使用率过高的告警邮件,遇到某台服务的CPU被占满了,这时候我们就要去查看是什么进程将服务器的CPU资源占用满了。通常我们会通过top或者htop来快速的查看占据CPU最高的那个进程,如下图:
公众号: 云原生生态圈
2020/07/07
2.6K0
火焰图:全局视野的Linux性能剖析
宋宝华: 用off-cpu火焰图进行Linux性能分析
在《宋宝华:火焰图:全局视野的Linux性能剖析》一文中,我们主要看了on-cpu火焰图,理解了系统的CPU的走向的分析。但是,很多时候,单纯地看on-cpu的情况(什么代码在耗费CPU),并不能解决性能问题,因为有时候性能差的原因瓶颈不一定在CPU上面,而是在off-cpu的时间,比如:
Linux阅码场
2019/12/26
3K0
程序员精进之路:性能调优利器--火焰图
作者:厉辉,腾讯 CSIG 后台开发工程师 本文主要分享火焰图使用技巧,介绍 systemtap 的原理机制,如何使用火焰图快速定位性能问题原因,同时加深对 systemtap 的理解。 让我们回想一下,曾经作为编程新手的我们是如何调优程序的?通常是在没有数据的情况下依靠主观臆断来瞎蒙,稍微有些经验的同学则会对差异代码进行二分或者逐段调试。这种定位问题的方式不仅耗时耗力,而且还不具有通用性,当遇到其他类似的性能问题时,需要重复踩坑、填坑,那么如何避免这种情况呢? 俗语有曰:兵欲善其事必先利其器,个人认
腾讯技术工程官方号
2020/06/15
1.9K0
使用火焰图进行Java性能分析
内核维护着各种统计信息,被称为Counters,用于对事件进行计数。例如,接收的网络数据包数量,发出的磁盘I/O请求,执行的系统调用次数。常见的这类工具有:
mazhen
2023/11/24
1.5K0
使用火焰图进行Java性能分析
perf和火焰图使用方法
perf是linux上的性能分析工具,perf可以对event进行统计得到event的发生次数,或者对event进行采样,得到每次event发生时的相关数据(cpu、进程id、运行栈等),利用这些数据来对程序性能进行分析。
嵌入式与Linux那些事
2023/03/24
4.2K0
perf和火焰图使用方法
LINUX 性能专家 Brendan Gregg博文拜读系列<1>-附九张性能图片
在深入Linux系统的复杂世界中,性能优化始终是SRE关注的热点。最近在拜读国际著名的 LINUX 性能专家 Brendan Gregg 的个人博客和技术书籍。他的工作不仅涵盖了系统性能的监控和分析,还深入探讨了性能问题的根源及其解决方案。通过他的个人博客和技术书籍,我们可以窥见Linux性能优化的精髓,学习到如何利用各种工具和方法来提升系统效率,确保应用的顺畅运行。将会结合 Brendan Gregg博文与个人理解 出一个拜读系列博文。
五分钟学SRE
2024/04/10
9200
LINUX 性能专家 Brendan Gregg博文拜读系列<1>-附九张性能图片
Off-CPU分析:窥见冰山下的性能瓶颈
遇到CPU性能问题时,我们常常通过perf来了解CPU上到底在执行什么,以及通过On-CPU火焰图来帮助我们寻找性能瓶颈。但是,这种方式并不能让我们知道不在CPU上运行的进程和线程到底在做什么。在一些场景中,我们会发现CPU的使用率上不去,性能表现很差,这时候我们也许就需要考虑,是不是花在应用请求、异步调用这种Off-CPU的场景上的时间太多了。
程栩的性能优化笔记
2023/11/01
9170
Off-CPU分析:窥见冰山下的性能瓶颈
宋宝华:火焰图 全局视野的 Linux 性能剖析
本文介绍了Linux性能剖析利器Flame Graph,从Flame Graph的原理、使用方式、案例以及更多的细节。
Linuxer
2017/11/21
2.5K0
宋宝华:火焰图 全局视野的 Linux 性能剖析
差分火焰图,让你的代码优化验证事半功倍
一般来说,我们将这种火焰图称为on-cpu火焰图,可以用来记录CPU上运行的程序的占比情况。除此之外,还有多种其他种类的火焰图,如:
程栩的性能优化笔记
2023/11/01
1K0
差分火焰图,让你的代码优化验证事半功倍
牛逼的Linux性能剖析—perf
系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化。性能剖析的目标是寻找性能瓶颈,查找引发性能问题的原因及热点代码。代码优化的目标是针对具体性能问题而优化代码或编译选项,以改善软件性能。本篇主要讲性能分析中常用的工具——perf。
刘盼
2019/05/08
6.5K0
牛逼的Linux性能剖析—perf
超全整理!Linux 性能分析工具汇总
出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章。本文也可以作为检验基础知识的指标,另外文章涵盖了一个系统的方方面面。如果没有完善的计算机系统知识,网络知识和操作系统知识,文档中的工具,是不可能完全掌握的,另外对系统性能分析和优化是一个长期的系列。
释然IT杂谈
2022/10/27
1.2K0
超全整理!Linux 性能分析工具汇总
性能优化的正确方向
概述 什么是性能? 性能最通俗的衡量指标就是“时间”,CPU的使用率指的是CPU用于计算的时间占比,磁盘使用率指的是磁盘操作的时间占比,当CPU使用率100%时,意味着有部分请求来不及计算,响应时间
汪伟
2017/07/12
4.4K0
性能优化的正确方向
服务器性能优化的正确姿势(好文推荐)
导言:运维工作中除了要维持平台的稳定运行以外,还得对服务器的性能进行优化,让服务器发挥出良好的工作性能是稳定运行的基础。腾讯互娱DBA团队的汪伟(simon)在这一领域里整理出了一套性能优化的资料为大家在性能优化提供充足的方向。
Spark学习技巧
2019/05/16
2.8K0
服务器性能优化的正确姿势(好文推荐)
白话火焰图
很多人感冒发烧的时候,往往会模仿神农氏尝百草的路子:先尝尝抗病毒的药,再试试抗细菌的药,甭管家里有什么药挨个试,什么中药西药,瞎猫总会碰上死耗子,如此做法自然是不可取的,正确的做法应该是去医院验个血,确诊后再对症下药。
LA0WAN9
2021/12/14
7970
白话火焰图
超全整理!Linux 大牛收集的Linux性能分析工具合集
本文由马哥教育面授班23期学员推荐,转载自恒生研究院,作者为董西孝,内容略经小编改编和加工,观点跟作者无关,最后感谢作者的辛苦贡献与付出。 出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望,因此整理了这篇文章。本文也可以作为检验基础知识的指标,另外文章涵盖了一个系统的方方面面。如果没有完善的计算机系统知识,网络知识和操作系统知识,文档中的工具,是不可能完全掌握的,另外对系统性能分析和优化是一个长期的系列。 本文档主要是结合Linux 大牛,Netflix 高级性能架构师 Brendan Greg
小小科
2018/05/04
3.7K0
超全整理!Linux 大牛收集的Linux性能分析工具合集
90%的人会遇到性能问题,如何用1行代码快速定位?
今天,齐光将会基于之前列举的众多指标,给出一些常见的调优分析思路,即:如何在众多异常性能指标中,找出最核心的那一个,进而定位性能瓶颈点,最后进行性能调优。整篇文章会按照代码、CPU、内存、网络、磁盘等方向进行组织,针对对某一各优化点,会有系统的「套路」总结,便于思路的迁移实践。
Datawhale
2019/12/09
9070
90%的人会遇到性能问题,如何用1行代码快速定位?
不会用这个工具,你的 Linux 服务器就是个摆设!
vmstat(VirtualMeomoryStatistics,虚拟内存统计)是 Linux 中监控内存的常用工具,可对操作系统的虚拟内存、进程、CPU 等的整体情况进行监视。
民工哥
2023/09/09
9670
不会用这个工具,你的 Linux 服务器就是个摆设!
推荐阅读
相关推荐
Linux问题故障定位,看这一篇就够了
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档