Linux后缀为tar.gz的安装方法
现在tar.gz的东西不多了。
大多以tar.gz 和tar.bz2打包软件,大多是通过 ./configure ;make ;make install 来安装的;有的软件是直接make;make install ;
我们可以通过./configure --help 来查看配置软件的功能;大多软件是提供./configure 配置软件的功能的;少数的也没有,如果没有的就不用./configure ;直接make;make install 就行了;
./configure 比较重要的一个参数是 --prefix ,用--prefix 参数,我们可以指定软件安装目录;当我们不需要这个软件时,直接删除软件的目录就行了;
比如我们可以指定fcitx 安装到 /opt/fcitx 目录中;
[root@localhost fcitx]#./configure --prefix=/opt/fcitx
如果我们不需要fcitx 时,可以直接删除 /opt/fcitx 目录;
所以我们举这个例子中,fcitx如果定制安装到 /opt/fcitx目录中,完整的安装方法应该是:
[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost fcitx]# ./configure --prefix=/opt/fcitx
[root@localhost fcitx]# make
[root@localhost fcitx]# make install
注意:
*******************************
rpm是个功能十分强大的软件包管理系统,他使得linux下的安装,升级和删除软件包的工作非常简单易行,并且更有查询,验证软件包的功能。和图像化工具相比,使用命令的方式理灵活,更强大。
下面介绍的内容 都 以 example.1.2.3-1.i386 软件包为例来介绍安装,升级,更新用查询等操作和安装使用.
1:安装,升级和更新
rpm -i 安装一个新的软件包。
rpm -U 升级一个系统中已有的软件包,如果不存在就进行安装。
rpm -F 更新一个软件包,如果软件包不存在就不进行安装。
通常这几项还往往配合其他的一些参数使用,比如显示安装过程中的信息及显示安装进度等:
-v 选项表示安装时显示各种信息,如安装路径及安装了什么内容。
-h 选项将会在rpm安装时显示安装的进度条,这能监视系统安装进程。
因此,一般想要安装软件包,最常用的命令形式就是联合使用-Uvh三个参数,以前面介绍的安装软件包example为例,输入软件包安装命令:
[root@localhost root]# rpm -Uvh example-1.2.3-1.i386.rpm
其中 example-1.2.3-1.i386.rpm 是软件包的全名,用 1.2.3 -1表示软件包的版本,i386表示软件包适用于x86系统。
2:删除
删除一个软件包的命令是:
[
root@localhost root]# rpm -e example
需要注意,这里删除使用的是软件名而不是软件包的全名。
3:查询
不仅能查询系统中已安装的rpm软件包,还能查询某个rpm软件包安装 文 件中包含的文件清单。
1)列出用户已安装的rpm软件包
如果想查询在系统中安装的软件包信息,或是确定某个软件包是否安装,使用
rpm -qa(query all),即可查询已安装的软件包列表;
如果是查看某个已安装的软件包,如example的信息,则使用
rpm -q example.
2)查看一个rmp包中包括的文件
查看某个软件包中包含的文件清单,有两种情况:
如果是未安装的软件包example,则使用
[
root@localhost root]# rpm -qlp example-1.2.3-1.i386.rpm
如果是已安装的软件包,则使用
[root@localhost root]# rpm -pl example
3)确定某个文件属于哪个rpm包
如果遇见了不认识的文件,想要找出他属于那个软件包,则首先记录这个文件的完整路径,然后使用如下命令:
[root@localhost root]# rpm -qf filename
-qf 选项表示查询文件,filename需要完整的文件路径。
4)查询rpm包的用途
有的rpm包会利用附加信息来包含他的用途信息,这样用户能更方便 地在安装或使用时查询每个软件包的用途,版本等信息,命令如下:
[root@localhost root]# rpm -qip example-1.2.3-1.i386.rpm
4:验证
验证一个软件包,就是比较原始包和已安装包中文件的信息。具体来说,这些信息包括每个文件的大小,MD5校验和访问许可权,类型及所属的用户和组等。
使用命令选项-V能验证一个包,常用的情况有以下几种:
a:验 证包含某个特别文件的软件包,输入命令
[root@localhost root]# rpm -Vf example
b:验证所有已安装的软件包
[root@localhost root]# rpm -Va
在linux下更通用的一种软件安装方式是 *.tar.gz/*.bz2形式的二进制软件包。这类软件包是用tar工具打包,用gzip/bzip2压缩的,安装时要先解压缩,然后按如下的步骤进行安装.这类软件包为了能够在多种操作系统中使用,通常需要在安装时进行本地编译,然后产生可用的二进制文件。
1:获得软件
应用软件能从网上下载,购买光盘或是其他渠道获得,目前主要是从网上下载。
2:解压
一般的tar包,都会再做一次压缩,为的是更小更容易下载,常见的是用gzip压缩,用命令
tar -zxvf *.tar.gz ,就可完成解压或解包文件。
3:阅读附带的
install和r
eadme文件
通常tar包会包含名为install和readme的文件,提示用户安装及编译的过程。
4:执行
./configure 命令为编译做准备
这一步通常是用来设置编译器及确定其他相关的系统参数。
5:运行
make
经过 ./configure 后,将会产生用于编译用 的MakeFile,这时运行make命令,真正开始编译;
6:
make install
这一步会把编译产生的可执行文件复制到正确的位置。
7:清除临时文件
运行
make clean
安装的命令怎么执行,一般都会在install和readme文件中有说明,通常产生的可执行文件会被安装到/usr/local/bin目录下。
tar包的安装,用户能自己编译安装源程式,虽然设置灵活,不过会出现话多的问题,他适合linux有一定经验的用户,不推存初学者使用。。
rpm -ivh [install_options] package
--prefix ;
This sets the installation prefix to ; for
relocatable packages.
--relocate ;=;
For relocatable packages, translates the files that
would be put in ; to ;.
--badreloc
To be used in conjunction with --relocate, this
forces the relocation even if the package isn’t
relocatable.
--noorder
Don’t reorder the packages for an install. The list
of packages would normally be reordered to satisfy
dependancies.
有些软件包是以.src.rpm结尾的,这类软件包是包含了原始码的rpm包,在安装时
需要进行编译。这类软件包有两种安装方法,
方法一:
1.执行rpm -i your-package.src.rpm
2. cd /usr/src/redhat/SPECS
3. rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件
4. cd /usr/src/redhat/BUILD/your-package/ 一个和你的软件包同名的目录
5. ./configure 这一步和编译普通的源码软件相同,能加上参数
6. make
7. make install
方法二:
1.执行rpm -i you-package.src.rpm
2. cd /usr/src/redhat/SPECS
前两步和方法一相同
3. rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件
这时,在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等)
在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。
执行rpm -i new-package.rpm即可安装完成。
怎么不安装不过获取rpm包中的文件
使用工具rpm2cpio和cpio
rpm2cpio xxx.rpm | cpio -vi
rpm2cpio xxx.rpm | cpio -idmv
rpm2cpio xxx.rpm | cpio --extract --make-directories
参数i和extract相同,表示提取文件。v表示指示执行进程
d和make-directory相同,表示根据包中文件原来的路径建立目录
m表示保持文件的更新时间。
注意:
rpmdb: Lock table is out of available locker 错误
操作命令:
# rpm -qa
错误信息:
rpmdb: Lock table is out of available locker entries
rpmdb: Unknown locker ID: 1149
error: db4 error(22) from db->close: 无效的参数
error: cannot open Packages index using db3 - 无法分配内存 (12)
error: cannot open Packages database in /var/lib/rpm
错误原因:
使用rpm命令时,rpm先访问BDB数据库,设置一个临时锁。如果在它运行时意外中断,未释放这个临时锁,那么rpm就很可能会出错误。
解决办法:
# cd /var/lib/rpm
# rm -rf __db.00*
# rpm --rebuilddb