- 我们的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、最好是完全相同的一个系统
- 软件的安装环境必须和当初编译该软件的机器的环境是一样的或者时候相当的
- 需要满足依赖关系
- 卸载的时候特别是不能先删除最底层的软件,否则可能造成系统出问题
- apt-get:
 jack@jackvirtual:~$sudo apt-get install packagename #这里是安装packagename这个软件,当使用这个命令的时候系统会去“下载源”文件中获取下载源地址然后去指定的地方下载软件
- 几个命令:
 -dbkg: 这里详细的介绍了dbkg的15个用法- 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 -f -y install,之后再运行dpkg -i *.deb进行安装
        - 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软件原文链接    龙腾一族至尊龙骑
    
    
    










