Linux软件安装方式 - Tarball&RPM&YUM

软件安装简介概念详解# 概念详解- 开放源码: 程序码, 写给人类看的程序语言, 但机器并不认识, 所以无法执行;- 编译器: 将程序码转译成为机器看的懂得语言, 就类似翻译者的角色;- 可可执行文件: 经过编译器变成二进制程序后, 机器看的懂所以可以执行的文件;- make: 作用是开始进行源代码编译;- configure: 一般用来生成 Makefile, 为下一步的编译做准备;- Tarball软件: 所谓的 Tarball 文件, 其实就是将软件的所有源代码文件先以 tar 打包, 然后再以压缩技术来压缩, 通常最常见的就是以 gzip 来压缩;- Tarball: linux系统下最方便的打包工具, 以tar这个指令来打包与压缩的档案;- RPM: 全名是"RedHat Package Manager"简称则为 RPM; 通过预先编译并打包成为 RPM 文件格式后, 再安装软件的一种方式;- SRPM: SRPM 所提供的套件内容并没有经过编译, 提供的是原始码;其中SRPM中包含了所有 RPM 档案所提供的数据;- YUM: Yum是一个交互式的、基于RPM的包管理器; 它可以自动执行系统更新, 包括依赖关系基于"仓库"元数据的分析和废弃处理;# 常用相关命令- file: 用于识别文件的类型, 也可以用来辨别一些内容的编码格式, 通过分析文件头部信息中的标识来显示文件类;- type: 用来显示指定命令的类型, 判断给出的指令是内部指令还是外部指令;# 软件安装方式##Tarball方式- 取得原始文件: 将 tarball 文件在 /usr/local/src 目录下解压缩;- 取得步骤流程: 进入新创建的目录下面 , 去查阅 INSTALL 与 README 等相关文件内容(很重要的步骤) ;- 相依属性软件安装: 根据 INSTALL/README 的内容察看并安装好一些相依的软件(非必要) ;- 创建 makefile: 以自动侦测程序(configure 或 config)侦测作业环境 , 并创建 Makefile 这个文件;- 编译: 以 make 这个程序并使用该目录下的 Makefile 做为他的参数配置文件 , 来进行 make(编译或其他)的动作;- 安装: 以 make 这个程序 , 并以 Makefile 这个参数配置文件 , 依据 install 这个标的(target)的指定来安装到正确的路径;##RPM方式- 将 RPM 由厂商的网页下载下来;- 解决 RPM 包管理依赖;- 通过 RPM -ivh 安装软件;##YUM方式- 配置网络(网络可通);- 修改数据源;- 通过 yum install命令安装软件;目前在 Linux 界软件安装方式最常见的有两种 , 分别是:

  • dpkg:这个机制最早是由 Debian Linux 社群所开发出来的, 通过 dpkg 的机制,Debian 提供的软件就能够简单的安装起来, 同时还能提供安装后的软件信息, 实在非常不错;只要是衍生于 Debian 的其他 Linux distributions 大多使用 dpkg 这个机制来管理软件的,包括 B2D, Ubuntu 等等;
  • RPM:这个机制最早是由 Red Hat 这家公司开发出来的, 后来实在很好用, 因此很多 distributions 就使用这个机制来作为软件安装的管理方式; 包括 Fedora, CentOS, SuSE 等等知名的开发商都是用这咚咚;
istribution 代表软件管理机制使用指令线上升级机制(指令)Red Hat/FedoraRPMrpm, rpmbuildYUM (yum)Debian/UbuntuDPKGdpkgAPT (apt-get)RPM 与 SRPM区别:
文件格式文件名格式直接安装与否内含程序类型可否修改参数并编译RPMxxx.rpm可已编译不可SRPMxxx.src.rpm不可未编译之源代码可
file 命令使用
# 查看系统的文件$ file /bin/bash/bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=9223530b1aa05d3dbea7e72738b28b1e9d82fbad, stripped# 是 binary 且是可以执行的时候, 就会显示可执行文件类别 (ELF 64-bit LSB executable), 同时会说明是否使用动态函数库 (shared libs);# 查看系统提供的文件$ file /etc/init.d/network/etc/init.d/network: Bourne-Again shell script, ASCII text executable# 如果是一般的 script , 就会显示出 text executables 之类的字样;

经验总结扩展阅读