linux 软件安装介绍
刚刚从windows转到linux环境的朋友最头痛的问题莫过于linux 的软件安装。五花八门的安装方式与软件包格式让人实在有点抓狂,笔者曾经也是一样^_^。因此,笔者总结了一下windows与linux软件安装的优缺点以及linux下软件安装的基本方法,供各位参考。
一、传统的window软件一般都打包成一个可执行的安装文件,其中包括各种配置文件、dll动态链接库和主、副程序。这个方式的缺点比较明显:
- 没有统一的安装程序API接口,安装程序各式各样。这样也就无法查看到一个文件的来源,这就是为什么windows越用越慢的原因,大量垃圾文件堆积的结果
- 安装程序的尺寸往往比较庞大。因为要包括许多dll库文件,同时安装文件本身也是个体积较大的程序^_^(有点绕口)
- 程序员门开发各类安装程序也要费不少脑筋(笔者一直不太会制作安装程序,只有制作绿色版了事=_=!)
正是由于存在以上的诸多缺陷,微软开发了MSI格式安装包。和linux下的软件包的工作原理类似。但仍然存在上面的第二点提到的缺点,就是无法处理库文件。
二、windows程序还存在一个问题就是安装程序往往会把可执行程序、库文件、以及配置文件、数据等等一股脑装到一个文件夹里。造成文件夹里内容混乱不堪,想找个东西困难的要死^_^。
说了window程序一大堆缺点,该主角linux登场了。其实从笔者自己的经历来看,各位对linux软件安装心存畏惧最大的原因可能是linux会把程序安装到多个文件夹,刚刚接触linux的朋友可能有些手足无措,不知道从那里找到刚刚安装的linux程序。不用担心这个,只要记住一下几个文件夹以及它们的功用,你就不会再手足无措了^_^。
linux软件在安装的时候通常会向这几个文件夹拷贝文件 /usr/bin 中拷贝可执行文件、/usr/lib中存放库文件、/usr/share/doc/$package/ 中存放帮助文件。这个时候,就会有人要问了。如果文件放在不同的地方,卸载的时候岂不是很麻烦?!这点不用担心,安装程序管理系统会跟踪这些文件的位置、以及它们之间的依赖性。当你不再需要这个程序时,调用卸载命令即可。
三、在linux中有两种主流的安装包格式,分别使用在类red hat和类debain系统上。
1、下面时两种安装包常用命令的对照表
Debian | Red Hat | 介绍 |
dpkg -Gi package(s).deb | rpm -Uvh packages(s).rpm | 安装、升级程序 |
dpkg -r package | rpm -e package | 卸载程序 |
dpkg -l ‘*spell*’ | rpm -qa ‘*spell*’ | 检查语法 |
dpkg -l package | rpm -q package | 显示程序版本 |
dpkg -s package | rpm -q -i package | 显示所有安装包的元数据 |
dpkg -I package.deb | rpm -q -i -p package.rpm | 显示安装包内文件的元数据 |
dpkg -S /path/file | rpm -q -f /path/file | 查看文件属于哪个安装包 |
dpkg -L package | rpm -q -l package | 查看程序安装的位置 |
dpkg -c package.deb | rpm -q -l -p package.rpm | 查看程序将要安装到的位置 |
dpkg -x package.deb | rpm2cpio package.rpm | cpio -id | 将程序解压到当前目录 |
dpkg -s package | grep ^Depends: | rpm -q –requires package | 查看安装程序的依赖文件 |
dpkg –purge –dry-run package | rpm -q –whatrequires package | 查看安装程序的依赖程序 |
2、当然我们常用的安装方式不只上面两种,一般linux系统都会有一个系统维护的程序库,可以使用apt-get或yum来进行下载、安装
Debian | Red Hat | 介绍 |
apt-get dist-upgrade | yum update [package list] | 升级指定程序(指定多个) |
apt-get install <package list> | yum install <package list> | 安装最新版本程序(指定多个) |
apt-get remove <package list> | yum remove <package list> | 卸载程序(指定多个) |
apt-cache list [package list] | yum list [package list] | 查看源上可供安装的程序 |
看来还真是复杂啊,难怪那么多人不懂~
^_^,其实不是很复杂,估计大多数人和我一样都是从用了多年的window转过来的,不习惯而已。