前言:大家好,我是小满同学。我是通过中国大学MOOC上的《零基础学Linux操作系统》这门课程入门了linux,学习和使用linux一年多,收获了很多。下面是关于linux下安装软件方式的一些分享。
在课程中,我们了解到在linux平台下安装软件有三种常见的方式:1.以软件包的方式安装 2.在线方式安装 3.以源代码的方式安装。本文将介绍另一种安装软件的方式,即AppImage格式的软件安装,并进行演示。阅读本文大概需要5分钟。
linux下软件安装的现状
在linux下,当需要使用某一个软件时,一般会选择使用软件包机制进行软件安装,在centos下是yum和rpm,在Ubuntu下是apt和dpkg。使用yum或apt方式安装软件,其原理是使用的软件仓库,即我们常说的“源”,进行软件安装。
下图是ubuntu系统默认选用的软件源。
一般来说,开发者会经过仔细审查,将常用的软件打包好,在上游维护好软件仓库,以便下游的用户能够方便的通过命令行进行软件安装。如果选择yum或apt方式安装,一个好处是,yum或apt会自行使用rpm或dpkg帮我们解决软件之间的依赖关系。
而单独使用rpm或dpkg安装软件,则可能需要自己解决软件包的依赖问题,不仅如此,由于不同发行版所使用的包管理器并不相同,也就是说,在ubuntu上无法使用以rpm格式打包的软件,在centos上无法使用以deb格式打包的软件,这导致软件包无法通用。
虽说如此,但总体来说,使用yum和apt是最为便捷的软件安装方式,因为多数情况下只需要一行命令即可安装软件。但如果一个需要的软件没有足够幸运地被维护人员选中放入软件仓库中,该怎么办?一种解决方案是可以选择自己下载软件源代码编译,但是这太过繁琐,且很容易出错。尤其是当你要编译的代码数量比较多时,那编译所花费的时间都足够喝一杯咖啡了😂。
AppImage格式的软件
AppImage是一种全新的软件安装格式,它提供了便利的安装方式,或者说你根本不用安装,因为整个软件仅仅只是一个文件😮,你只需下载下来即可使用! 下面的介绍引用自AppImage的首页:
让 Linux 应用随处运行 “作为一名用户,我在从原作者处下载到应用后,我希望能直接在Linux桌面上运行它,就像运行一个Windows或者Mac应用程序一样。” “作为一名应用开发者,我想为Linux桌面系统提供软件包的同时,不需要将其分发到每一个发行版中,也不必为不同的发行版编译多个版本。”
坏消息是并不是所有的应用都有AppImage的安装方式,但不得不说已经有很多的软件已经支持这种安装方式,包括firfox、nvim、gvim、vlc,OBS等开发和日常使用的软件。 这里列出了支持AppImage格式的软件列表:AppImageHub,可以方便地查找自己需要的软件。据官网数据,目前已有1282 apps 支持AppImage格式,数量还是比较可观的。
实战演练
下面,我们通过AppImage的方式,来安装我们的第一个软件,文本编辑器–neovim。为什么选择它,原因是neovim是一个比较新的软件,很多发行版上游没有打包提供neovim的软件包,或者是提供的版本过于陈旧,同时,秉承着开箱即用的原则,我们不希望安装过于复杂,恰巧neovim的开发者维护了一个最新的AppImage格式的版本,于是就使用了AppImage方式进行安装😀。
首先进入neovim的首页,找到release部分
找到下载链接,然后下载对应的appimage格式软件,这里以下载neovim0.5.0版本为例。在终端下推荐使用wget下载,格式如下:
wget https://github.com/neovim/neovim/releases/download/v0.5.0/nvim.appimage
一般情况下,下载下来后需要赋予软件执行权限,之后就可以直接运行软件了
chmod 755 ./nvim.appimage
但是在centos7下按此方式操作时,出现了如下的报错:
原来是centos需要FUSE这个库的支持,似乎是我们没有安装。仔细看报错信息,通过追加–appimage-extract参数应该就可以解决这个问题。通过如下命令启动:
./nvim.appimage --appimage-extract
我们发现appimage被展开了,目录下多了一个squashfs-root文件夹,查看里面的内容:
尝试着运行AppRun,发现可以运行了!而且版本也是最新的0.05✨
为了使用方便,我们将AppRun做一个软链接,放到PATH环境变量记录的文件夹下,以便在任意地方直接调用nvim。做软链接的时候,最好使用绝对路径。这样就可以直接输入nvim启动软件了。
sudo ln -s $PWD/AppRun /usr/bin/nvim