您的位置:首页 > 运维架构 > Linux

Linux 安装卸载软件及管理软件仓库

2017-04-14 13:18 381 查看
软件仓库

Linux的软件包都存放在一个地方,叫做软件仓库,repository。

因为Linux是在Windows之后诞生的(1991年前后),所以为了避免Windows的这个“弊端”,Linux选择创建一个集中存放软件的地方。

当然了,Linux的这一优势也得益于它的开源性。Linux中的软件基本都是开源自由的,任何人都可以分发,传播软件,只要遵守一定软件协议。因此把这些软件集中存放在某个地方是可行的。

Linux的软件会集中存放在一个地方,叫做软件仓库,英语是repository。

软件仓库绝不只是存放在一台服务器上,全球有很多个软件仓库(也就是有很多服务器),大部分软件仓库里的软件都是一样的,只不过是拷贝而已。

一般建议用户选择离自己所在地较近的软件仓库的服务器,这样下载速度会比较快。

.deb的安装包只能用于Debian一族的操作系统,包括Ubuntu。而Redhat一族(包括Fedora)用的则是后缀为.rpm(rpm是Redhat Package Manager的缩写)的安装包。

有个软件可以帮忙将rpm安装包转换为deb安装包。这个软件是alien

# alien默认没有安装,所以首先要安装它。
sudo apt-get install alien

# 将rpm转换为deb,完成后会生成一个同名的xxxx.deb。
sudo alien xxxx.rpm

# 安装deb安装包。注意,用alien转换的deb包并不能保证100%顺利安装,所以可以找到deb最好直接用deb。
sudo dpkg -i xxxx.deb


管理软件仓库

编辑的那个包含软件仓库的列表的文件是:

/etc/apt/sources.list


这个文件是系统文件,只能被root用户修改。

用nano来编辑此文件

nano /etc/apt/sources.list


通常来说,这个文件中有作用的行是由以下两个指令开头:

deb:用于下载软件的二进制版本,大多数情况下我们都是用这个。
deb-src:用于下载软件的源代码。一般我们用不到,除非你很好奇想查看软件的源代码。这也是自由软件运动的一个好处。


查询软件仓库服务器地址

用搜索引擎来寻找其他软件仓库的服务器地址,比如可以搜“Ubuntu repository”。

图形界面工具

菜单栏中的System->Administration->Software Sources

包管理工具

package:包。这是软件的二进制安装包。类似Windows中软件的安装程序(大多以.exe结尾)。
dependency:依赖。一个软件包可能需要其他的软件包作为运行的基础。这是依赖关系。
repository:仓库。软件的仓库,就是存放软件的服务器,我们从这些服务器上下载软件。


在Ubuntu中,可以使用图形界面的软件包管理,例如 Synaptic Package Manager(新立得软件包管理器),要打开很简单:

菜单栏中的System->Administration->Synaptic Package Manager

使用终端来管理软件包,终端的软件包管理命令一般用两个:

apt-get:最常用的,一般小编用这个比较多。
aptitude:这个命令在卸载软件时可以卸载不用的依赖。


#软件包缓存的更新
sudo apt-get update
#搜索软件包
sudo apt-cache search
#安装软件包
sudo apt-get install xxx
xxx是对应软件包名
#删除软件包
sudo apt-get autoremove xxx     #xxx是对应软件包名
#升级所有已安装的软件包
sudo apt-get upgrade


apt-get 是用于处理 apt包的公用程序集,我们可以用它来在线安装、卸载和升级软件包等,下面列出一些apt-get包含的常用的一些工具:

工具                 说明
install     其后加上软件包名,用于安装一个软件包
update          从软件源镜像服务器上下载/更新用于更新本地软件源的软件包列表
upgrade     升级本地可更新的全部软件包,但存在依赖问题时将不会升级,通常会在更新之前执行一次update
dist-upgrade    解决依赖关系并升级(存在一定危险性)
remove  移除已安装的软件包,包括与被移除软件包有依赖关系的软件包,但不包含软件包的配置文件
autoremove  移除之前被其他软件包依赖,但现在不再被使用的软件包
purge   与remove相同,但会完全移除软件包,包含其配置文件
clean   移除下载到本地的已经安装的软件包,默认保存在/var/cache/apt/archives/
autoclean   移除已安装的软件的旧版本软件包


下面是一些apt-get常用的参数:

参数  说明
-y  自动回应是否安装软件包的选项,在一些自动化安装脚本中使用这个参数将十分有用
-s  模拟安装
-q  静默安装方式,指定多个q或者-q=#,#表示数字,用于设定静默级别,这在你不想要在安装软件包时屏幕输出过多时很有用
-f  修复损坏的依赖关系
-d  只下载不安装
--reinstall     重新安装已经安装但可能存在问题的软件包
--install-suggests  同时安装APT给出的建议安装的软件包


dpkg 这个命令也是很有用的,事实上,dpkg 是 apt-get 和 aptitude 这两个命令的后端 (backend)命令,而 apt-get 和 aptitude 又是 Synaptic 和 Software Center 这样的软件安装工具的后端。

依赖链:

dpkg --> apt-get, aptitude --> Synaptic, Software Center


如果是本地的 .deb 软件包,我们可以用 dpkg 来安装:

sudo dpkg -i *.deb


卸载:

sudo dpkg -r 包名


dpkg常用参数介绍:

参数  说明
-i  安装指定deb包
-R  后面加上目录名,用于安装该目录下的所有deb安装包
-r  remove,移除某个已安装的软件包
-I  显示deb包文件的信息
-s  显示已安装软件的信息
-S  搜索已安装的软件包
-L  显示已安装软件包的目录信息


参考文献

Linux探索之旅 | 第二部分第七课:软件安装,如虎添翼
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: