Linux下二进制包、源代码包、rpm包

主要提供三种格式的mysql包:rpm格式、二进制格式、源码格式:(tar打包,gz压缩)php

rpm格式: libjpeg-devel-6b-33.x86_64.rpm       #rpm格式很好区分,mysql

二进制包: mysql-3.23.58-pc-linux-i686.tar.gz   #二进制格式的包名字很长,有版本号、适应平台、适应的硬件类型等,格式:mysql-<版本>-<OS>-tar.gzlinux

源码包:    php-5.2.14.tar.gz                            #而源码格式仅仅就是一个版本号的tar包。#cj 安装区别:解压、./config、make、make install程序员

 

source code 是程序员写的码, 
binary code 是机器跑的码。 
source code 得通过 compile 才能成为 binary code 。 sql

RPM 有分兩種:binary rpm 跟 source rpm 。 
前者是編好的 binary ,安裝就可用。 
後者是還沒編好的 source ,需 rebuild 之後才能安裝
ui

 

源代码方式和二进制包是软件包的两种形式。二进制包里面包括了已经通过编译,能够立刻运行的程序。你只须要下载和解包(安装)它们之后,就立刻可使用。源代码包里面包括了程序原始的程序代码,须要在你的计算机上进行编译之后才能够产生能够运行程序,因此从源代码安装的时间会比较长。spa

 

Linux下有个命令叫file,由于Linux并非按照后缀名来判断文件类型的。因此通常在不清楚文件究竟是什么类型的时候,就用file这个命令去判断。
file php-5.2.14.tar.gz 
php-5.2.14.tar.gz: gzip compressed data, was "php-5.2.14.tar", from Unix, last modified: Wed Jul 21 22:32:34 2010, max compression
这个php-5.2.14.tar.gz 明显是个gzip的压缩包,这样的文件通常都是用tar zxvf 命令去解包而后去配置编译安装的,一般状况把这种安装方法叫作源码编译安装。

file libjpeg-devel-6b-33.x86_64.rpm 
libjpeg-devel-6b-33.x86_64.rpm: RPM v3 bin i386 libjpeg-devel-6b-33
这个libjpeg-devel-6b-33.x86_64.rpm 文件,就是个标准的redhat系列发行版本所用的RPM格式软件包。通常在RHEL、CentOS、SUSE、OracleLinux下均可以安装相似的RPM包。标准的安装方法是rpm -ivh。

基本上红帽系列Linux发行版本安装软件就这两种方法了。还有常常被提起的yum,其实就是由yum自动判断rpm包的依赖,而后一次性把全部须要安装的N个rpm统一下载安装,其实原理和一个个的安装rpm没有什么本质区别。
操作系统

 

 通常在官网上下载的源码包都是以:tar.gz tar.bz2结尾的,通过编译的通常是以.rpm来结尾的,linux下的文件扩展名没有实际的意义,这样作只是为了方便你去查看是什么类型的包而后采起什么样的方式去安装和配置,固然有时候并不能从文件的扩展名去查看什么类型的包,由于文件名能够随意的去修改可使用file这个命令去查看文件包的类型.code

 

源码的安装通常由3个步骤组成:配置(configure)、编译(make)、安装(make install)ip

Configure是一个可执行脚本,它有不少选项,在待安装的源码路径下使用命令./configure –help输出详细的选项列表。

其中--prefix选项是配置安装的路径,若是不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。

若是配置--prefix,如:

  1. ./configure --prefix=/usr/local/test

能够把全部资源文件放在/usr/local/test的路径中,不会杂乱。

用了—prefix选项的另外一个好处是卸载软件或移植软件。当某个安装的软件再也不须要时,只须简单的删除该安装目录,就能够把软件卸载得干干净净;移植软件只需拷贝整个目录到另一个机器便可(相同的操做系统)。

固然要卸载程序,也能够在原来的make目录下用一次make uninstall,但前提是make文件指定过uninstall。

相关文章
相关标签/搜索