一 、首先要清楚几个概念
(一)归档:
归档是把多个文件合并成一个文件的过程。生成的文件称为归档包。
归档包带后缀名。不同的归档程序,生成的归档包的后缀名不同。
(二)压缩:
压缩是把一个大文件变成一个小文件的过程。生成的文件称为压缩包。
压缩包名带后缀名。不同的压缩程序,生成的压缩包的后缀名不同。
(三)归档压缩程序
仅归档 | ar:archiver。后缀名为.a, .ar Tar:Tape Archive。通过 Tar 归档的文件的后缀名为.tar |
仅压缩解压 | Gzip:GNU zip。后缀名为.gz。如果与tar一起使用,后缀是.tar.gz,.tgz Bzip2:bzip最新一代是bzip2。后缀是.bz2。如果与tar一起使用后缀是.tar.bz2, .tbz2, .tb2 Xz:后缀是.xz。如果与tar一起使用后缀是.tar.xz,.txz |
仅解压 | unar:The Unarchiver。只能解压不能压缩。支持几乎所有格式,而且不依赖其他应用程序 |
归档并压缩 | zip:后缀为.zip RAR:后缀名为.rar 7zip:后缀名为.7z ark:Ark是KDE桌面环境的默认归档管理器。Ark本身无法理解任何的压缩格式,而是调用其他归档压缩命令工作,因此只要安装了该格式的命令行程序,就支持该格式。 fileroller:是GNOME桌面环境的默认归档管理器。也是调用其他命令工作,但是它自己集成了这些命令程序,所以不必单独安装这些命令程序。 |
(四)软件包:
软件包是把软件文件归档压缩得到的文件。也叫安装包。
1.软件包分为两种:
二进制包:解压就能运行
源码包:需要编译才能运行
2.软件包命名规律
软件包的命名也有一定的规律,它遵循:
名称-版本-修正版本-可用平台-类型
名称是软件名
版本是版本号
修正版本是小的更新号
可用平台是软件运行的cpu类型。包括了:i386、i486、i586、i686、x86_64、ppc、sparc、alpha。若平台是noarch,说明这样的软件包可以在任何平台上安装运行,不需要特定的硬件平台。
类型是压缩格式
例如:software-1.2.3-1.tar.gz
软件名称:software
版本号:1.2.3
修正版本:1
类型:tar.gz
software-1.2.3-1.i386.rpm
软件名称:software
版本号:1.2.3
修正版本:1
可用平台:i386,适用于Intel 80x86平台。
类型:rpm,说明是一个rpm包。
注:由于rpm格式的通常是二进制程序,所以需指明平台。
3.软件包如何得到?
软件包一般存储在某个仓库中,需要时,从仓库下载即可。
仓库就是存储软件包的服务器。
(五)软件包管理程序:
简称包管理器。也叫软件安装卸载程序。是安装卸载升级软件包的程序,当然也可以把软件文件打包成一个文件,方便发行。
软件包格式 | 软件包管理程序 |
.deb 它是Debain Linux提供的一种包格式。 | dpkg:Debian Packager apt:Advanced Packaging Tools |
.rpm 它是Redhat Linux提供的一种包封装格式。 | rpm:Redhat Package Manager Zypper:zypp的命令行前端 |
.tar 这种格式一般是源码包。 | |
其他格式 |
|
RPM与DPKG只能做到检查相依性,在安装或移除时告知相依性的不满足,接下来就需要用户自行去找出所需的组件来安装。
这样非常不方便,为了实现可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装,高级工具如 APT及YUM就诞生了
二、安装:
(一)软件包来源
1.系统官方仓库,也叫官方应用商店
使用系统自带的包管理器安装,它能自动下载,分析依赖,把所有依赖的软件包一并下载安装。
2.第三方仓库,也叫第三方应用商店
使用第三方的包管理器,比如flatpak,snappy,也可以自动下载解决依赖,把所有依赖的库一并安装
3.软件包项目主页,就是项目官网
这种情况需要自己解决依赖,你要把它依赖的软件包一个个地下载安装,然后才能安装它自己。这种情况是当在官方仓库和第三方仓库都找不到的情况下,迫不得已的方法。
有时候不安装依赖,软件也可以运行,所以可以先不管依赖,直接安装运行试试
(二)根据包的格式分为:
1.源码安装
几乎所有的开源软件都支持在Linux下运行,而这些软件一般都以源码形式发放,只需要Linux安装了gcc、make、automake、autoconf都支持源码安装。
安装步骤:
(1)取得源码包
(2)解压缩文件:一般tar包,都会再做一次压缩,如gzip、bz2等,所以你需要先解压。
tar -zxvf program.tar.gz
tar -jxvf program.tar.bz2
进入解压后目录:
cd program
(3)阅读附带的INSTALL文件、README文件;
(4)执行./configure [opts]命令为编译做好准备;
(5)执行make命令进行软件编译;
(6)执行make install完成安装;
(7)执行make clean删除安装时产生的临时文件。
(8)执行make distclean删除配置过程中产生的文件
如何卸载:
(1)打开终端
(2)进入解压目录
(3)执行反安装命令:make uninstall
注意该命令必须在源码目录下执行,使用此命令卸载软件,会比较彻底,而且各相关路径全部都会列出来。
但是,往往我们安装后,源码目录会删除掉,此时只能直接删除安装目录;
安装目录:
make install命令执行过程中会打印安装目录
也可以阅读附带的INSTALL文件、README文件了解安装目录
还可以指定安装目录,在./configure命令后面加选项–prefix=xx,如:./configure –prefix=/opt,即把软件装在/opt这个目录里。
源码安装的优点:
文档齐全
因为可以定位到代码,所以debug方便
本机兼容性最好(由于是本机编译的,只要编译通过,就没有各种库的依赖的问题)
缺点:
编译麻烦
缺乏自动依赖管理,软件升级麻烦
2.二进制包安装
(1)rpm包安装
①用rpm软件管理器
1)安装:
rpm –ivh xx
如果报依赖错误,使用--nodeps选项,
rpm –ivh xx --nodeps
2)卸载:
rpm -e xx
如果不知道软件包全称,可以先查找RPM包软件:rpm -qa xx*,*是通配符,代表任意字符。执行后会显示软件完整名称xxf-1.2.3-1。然后再卸载。
如果因存在依赖关系而不能卸载。你可以使用如下的命令来忽略依赖关系,直接开始卸载:
rpm -e xxf-1.2.3.1 --nodeps
忽略依赖关系的卸载可能会导致系统中其它的一些软件无法使用
当卸载RPM安装包时,经常会遇到如下错误:
- error: specifies multiple packages,出现该错误一般是因为有两个或多个同名包,(典型:是x86和x64包都安装),Linux无法区分卸载目标。这时可使用--allmatches参数,告诉卸载程序,只要匹配就卸载,相当于同名的同时都卸载。
- 常见卸载错误xxx.so is needed by yyy时,说明这些库被程序依赖,如果确认没有问题,可以 使用--nodeps 参数,不考虑依赖关系而直接卸载包,比如 rpm -e xx --allmatches --nodeps
3)升级:
rpm -U xx
②使用yum软件管理器
1)安装
yum -y install xx
2)卸载
yum remove xx
③dnf
1)安装
dnf install nano
2)卸载
dnf remove nano 或 # dnf erase nano
dnf autoremove
3)升级
dnf update xx
④使用zypper包管理器
1)安装:
zypper install package
2)卸载:
zypper remove package
(2)deb包安装
①使用dpkg软件管理器:
1)安装:
dpkg –i xx
2)卸载:
dpkg –e xx
②使用apt软件管理器
1)安装:
sudo apt-get install xx
apt-get命令只能安装仓库中的包,不能安装本地的deb包。要想安装本地的deb包,用dpkg命令
2)卸载:
apt-get remove --purge xx # 移除应用及配置
apt-get autoremove # 移除没用的包
(3)有安装脚本的软件
有的软件包,会附带安装脚本,脚本名字一般是install.sh。脚本内容有几部分,一是把软件文件复制到/usr/local下,二是添加.desktop文件,三是安装mime类型和icon文件,四是设置默认打开方式
1)安装:
直接运行安装脚本,./install.sh
2)卸载:
直接运行卸载脚本,./uninstall.sh
有时候,卸载脚本与安装脚本是同一个文件,卸载时需要设置参数,如./install.sh un
(4)不需要安装的软件:
有些软件解压缩后可直接运行
1)获得文件xx.tar.gz
2)解压文件:使用命令sudo tar -xzvf xx.tar.gz -C /opt
3)进入目录:cd /opt/xx/
4)在/bin目录下建立一个xx的链接,用命令sudo ln -s /opt/xx/xx /usr/bin/,注意要使用绝对路径,否则会报符号链接层数太多错误
5)添加一个.desktop文件。可以使用菜单编辑工具添加,也可以直接到/usr/share/applications目录添加
.desktop文件是Linux应用程序菜单项,也叫启动项。相当于windows快捷方式。
卸载方法:
把程序目录删除就行了
rm -rf /opt/xx
(5)AppImage包的安装
AppImage 是一个压缩的镜像文件,它包含所有运行所需要的依赖和库文件,并且几乎可以在所有的linux发行版本中使用。
你可以直接执行AppImage 文件不需要安装。当你把AppImage 文件删除,整个软件也被删除了。你可以把它当成windows系统中的那些免安装的exe文件。它在硬盘上的任何地方都可以运行。
安装步骤:
1)找到相应的软件包,比如xx.AppImage,下载到本机某个目录;
2)cd xx.AppImage所在的目录;
3)添加可执行权限: sudo chmod a+x xx.AppImage ;
4)执行它:./xx.AppImage。
5)创建一个 .desktop 文件
卸载方法:
直接删除appimage文件就行了
rm xx.AppImage
三、运行程序
安装完软件后如何执行。有几种方法执行软件:
(1)在应用程序菜单里找菜单项,和windows一样;如果程序没有菜单项,可以自己添加.desktop文件
(2)在shell终端,输入软件名。如果不知道命令全称的话,可以输入开头的字母,然后按tab键查找,系统会自动显示以输入字母开头的所有命令。如果找不到命令,可以自己在/usr/bin添加应用程序的软链接,比如:ln -s /opt/Xmind/xmind /usr/bin
(3)直接到安装目录下找程序文件,点击运行
四、安装路径:
(一)常用安装目录:
usr是unix software resource的简称
/usr 系统程序目录,通过包管理器安装的程序基本分散安装在如下子目录
/usr/bin 程序的可执行文件目录
/usr/lib 程序的库文件目录
/usr/src 程序的源码目录
/usr/share 程序间的共享文件
/usr/local 用户自定义安装程序目录,它和/usr目录具有相似的目录结构。自己手动安装的软件,包括源码编译安装的软件,基本安装在如下子目录。
/usr/local/bin 程序的可执行文件目录
/usr/local/lib 程序的库文件目录
/usr/local/src 程序的源码目录
/usr/local/share 程序间的共享文件
/opt 用户自定义安装程序目录,类似D:/Software。这里可以用于安装第三方大型软件,在这里安装不需要分散到不同目录,所有程序文件都在一个目录里,所以当你不需要时,直接删掉整个目录即可。
(二)查看软件
1.不知道软件全名,查找软件全名
apt-cache search xx*
zypper se foo*
rpm -qa foo*
2.查看软件信息
zypper if foobar
3.查看软件安装目录
rpm -ql foobar
whereis xx
which xx
find -name xx
五、总结
安装实际上就是“将文件从一个地方复制到系统中适当位置”