- 我们的Linux系统大部分都是某个Linux厂商的系统,所以这些厂商可以编译好一些软件来提供用户下载,用户下载完了之后就可以直接安装,从而省去了编译源码及其过程中的各种问题。这时我们就可以使用相应的软件管理器来操作软件(下载、安装、删除)。我们使用的是Linux厂商的系统,即我们的系统和他们的系统是一样的,所以他们编译的软件我们当然可以用。
在安装软件的时候可以添加一些有关软件的一些信息,将这些信息新建成数据库,那么就可以进行卸载、更新和验证等相关操作了。(类似于windows下面的添加或删除程序) - 两种常见的软件管理机制:RPM( RedHat Package Manager)、DPKG
-
distribution代表 软件管理机制 使用命令 在线升级机制(命令)(可以用来解决依赖问题) RedHat/Fedora RPM rpm,rpmbuild YUM(yum) Debian/Ubuntu DPKG dpkg APT(apt-get) -
RedHat、Fedora、Centos、SuSE等发行商使用的RPM机制;
Debian、B2D、Ubuntu(派生于Debian,所以可以用于Debian想用的机制)使用的是DPKG横向比较:rpm/dpkg 不能用来解决包依赖,用来安装、卸载、更新 `*.rpm 或者 *.ded` 文件
- RPM:RedHat Package Manager, 以一种数据库记录方式安装软件的一套管理机制。
RPM最大的一个特点就是将要安装的软件先编译好并打包成RPM机制的安装包,通过包装好的软件中默认的数据库记录这个软件的依赖的软件。
优点:
已经编译且打包完毕,所以软件的传输和安装都很方便。(省去了编译源码的麻烦)
软件的 信息都已记录在数据库中方便查询、升级、卸载等操作。
缺点:RPM文件已经是编译好的文件,那么其中的数据就无法修改了。该软件只能安装在原本默认的环境(硬件和操作系统)中,也就是说你的主机系统要和当初建立这个软件的主机环境相同。
所以,一个发行商的RPM文件不能用在另一个不相同的发行商的系统上。比如说,RedHat推出的RPM无法直接SuSE上进行安装,并且,很可能同一个发行商的不同版本的系统之间的RPM包也是无法兼容的,例如,Centos4.x的RPM包无法直接应用在Centos5.x上
总结:要想使用相同的RPM包最好做到:1、同一个系统的发行商的RPM 2、同一个发行商的系统版本最好也是相同的 3、最好是完全相同的一个系统
- 软件的安装环境必须和当初编译该软件的机器的环境是一样的或者时候相当的
- 需要满足依赖关系
- 卸载的时候特别是不能先删除最底层的软件,否则可能造成系统出问题
6. 几个命令:
dbkg: [这里详细的介绍了dbkg的15个用法](http://www.tecmint.com/dpkg-command-examples/)
dbkg -i packagename #安装或者更新某个软件,如果这个包没有下载的话那么就会保存,所以可以先使用wget命令下载下来.deb软件
wget http://archive.canonical.com/pool/partner/a/adobe-flashplugin/adobe-flashplugin_11.2.202.228-0maverick1_amd64.deb -O flashplugin.deb
这里将下载下来的软件包重命名为flashplugin.deb,然后使用sudo dpkg -i flashplugin.deb安装这个软件
[flashplugin.deb的地址](http://archive.canonical.com/pool/partner/a/adobe-flashplugin/)
dpkg -l #列出所有安装的软件
dpkg -r `packagename_without_.deb`#卸载软件软件,这里的软件名不带后缀
dpkg -R –install directory/ #安装direcory目录下的所有的*.deb软件
apt-get: apt-get的介绍和用法
[apt-get的介绍和用法](http://www.tecmint.com/useful-basic-commands-of-apt-get-and-apt-cache-for-package-management/)
sudo apt-get install packagename1 packagename2 #安装或者升级一个或多个软件
sudo apt-get install ‘*name*’` #使用通配符安装软件
sudo apt-get install packageName –only-upgrade #指定的软件升级
sudo apt-get install packageName –no-upgrade #不升级已经安装的软件
sudo apt-get install vsftpd=2.5.3-3ubuntu #安装指定版本的软件
sudo apt-get remove packageName #移除指定的软件且不删除其配置文件
sudo apt-get purge packageName #移除指定文件且删除其配置文件,完全删除了这个文件
sudo apt-get remove –purge packageName #跟上面的命令一样
sudo apt-get –download-only source vsftpd #只下载指定软件的源码
sudo apt-get –compile source goaccess #下载、解压、编译源码一气呵成
sudo apt-get source vsftpd #下载并解压一个包
sudo apt-get download nethogs #只下载不安装sudo apt-get upgrade #升级所有已经安装的软件
sudo apt-cache pkgnames#列出所有available软件
apitude:
- 这个命令和apt-get差不多,但是比apt-get更好用,在删除一个软件的时候它会将该软件所依赖的软件一并删除,这样一来软件卸载的会非常的干净,就不会出现想apt-get卸载软件时出现的一些问题,例如“已经知道有哪些包但是无法操作”这样的问题。
- 并且在使用apt-get安装时,会出现“这个软件依赖**并且它已安装”的错误信息
aptitude update 更新可用的包列表 aptitude upgrade 升级可用的包 aptitude dist-upgrade 将系统升级到新的发行版 aptitude install pkgname 安装包 aptitude remove pkgname 删除包 aptitude purge pkgname 删除包及其配置文件 aptitude search pkgname 搜索包 aptitude show pkgname 显示包的详细信息 aptitude clean 删除下载的包文件 aptitude autoclean 仅删除过期的包文件
文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux25305 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!