详解Linux软件安装中RPM与YUM 区别和联系

详解Linux软件安装中RPM与YUM 区别和联系,第1张

一般Linux软件安装有这么几种方式:

那么其中rpm与yum有什么区别呢?

RPM管理支持事务机制。增强了程序安装卸载的管理。

RPM的功能:打包、安装、查询、升级、卸载、校验、数据库管理。

1、RPM的缺点

由于Linux中的程序大多是小程序。程序与程序之间存在非常复杂的依赖关系。RPM无法解决软件包的依赖关系。

2、RPM包

用RPM工具可以将二进制程序进行打包,包被称为RPM包。RPM包并不是跨平台的。RedHat的RPM包与SUSE的RPM包不能混用。实际上RedHat的安装,初始软件也都是使用RPM包进行安装的。

源程序的命名规范 : name-version.tar.{gz|bz2|xz}

版本号:major.minor.release

例:bash-4.3.1.tar.xz

RPM包的命名规范 : name-version-release.os.arch.rpm

name:程序名称。

version:程序版本号。

release(发行号):用于标识RPM包本身的发行号,与源程序的release号无关。

os:即说明RPM包支持的 *** 作系统版本。如el6(即rhel6)、centos6、el5、suse11。

arch:主机平台。如i686、x86_64、amd64、ppc(power-pc)、noarch(即不依赖平台)

例:bash-4.3.2-5.el6.x86_64.rpm

3、安装RPM包

命令格式: rpm -i /PATH/TO/RPM_FILE

一般组合起来使用:-ivh

命令格式: rpm -ivh PATH/TO/RPM_FILE

4、卸载RPM包

命令格式: rpm -e 包名

查询RPM相关信息

命令格式: rpm -q 包名

查询所有已经安装包: rpm -qa

5、RPM的数据库

数据库文件位于: /var/lib/rpm

若库损坏,很多RPM的查询将无法使用。

YUM客户端基于RPM包进行管理,可以通过HTTP服务器下载、FTP服务器下载、本地软件池的等方式获得软件包,可以从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系。

YUM在安装RPM时,会从服务器下载相应包,且缓存在本地。

使用YUM进行RPM包的管理,非常简单方便。

1、YUM客户端的使用

YUM客户端的配置

YUM的配置方式是基于分段配置的。

主配置文件: /etc/yum.conf

YUM的片段配置: /etc/yum.repos.d/*.repo

主配置文件配置了一个特殊的仓库,名称为main。main是为其他仓库提供默认的全局配置的。

配置文件的说明:

查看CentOS-Base.repo配置文件:

对配置文件中的一些配置项作说明:

2、yum命令的使用

yum的命令形式一般是如下: yum [options] [subcommand] [package ...]

yum list相关命令

获取yum仓库中所有的包信息。

命令: yum list all

结果说明:

查看yum仓库中指定包名的软件包,可以使用通配符。

命令: yum list all mysql*

查看仓库

查看当前能够使用的yum仓库

命令: yun repo list

显示所有仓库

命令: yum repo list all

清空本地yum的缓存

yum仓库若更新,则本地缓存就没有意义了。所以本地缓存需要清空。

命令格式: yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

手动在本地建立缓存

yum客户端会下载远程yum的文件。在本地生成缓存。

命令: yum makecache

安装应用程序

基本格式: yum [-y] install 包1 包2 ... 包n

说明:

若安装多个包,则使用包名之间使用空格隔开。

安装过程中,yum会询问用户是否安装,使用yum -y 选项,表示自动回答为yes。

卸载软件包

命令格式: yum remove 包1 包2 ... 包n

注意:若该包被依赖,则该卸载可能会导致一些问题。如A依赖B,若卸载B,则A也会被卸载。

上面都是比较常用的命令,如果基本上用过的话那么在这一块的内容也就基本达标了。

后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

但RPM要更进一步、更聪明一些就需要多做些工作了。 聪明的安装 从一般意义上说,软件包的安装其实是文件的拷贝,即把软件所用的各个文件拷贝到特定目录。RPM安装软件包,无外乎此。但RPM要更进一步,更聪明一些。在安装前,它通常要执行以下 *** 作: RPM格式的软件包中可包含有依赖关系的描述,如软件执行时需要什么动态链接库,需要什么程序存在及版本号要求等。当RPM检查时发现所依赖的链接库或程序等不存在或不符合要求时,默认的做法是中止软件包安装。 有的软件与某些软件不能共存,软件包制作者会将这种冲突记录到RPM软件包中。安装时,若RPM发现有冲突存在,将会中止安装。 此类程序由软件包制作者设定,需要在安装前执行。通常是检测 *** 作环境,建立有关目录,清理多余文件等等,为顺利安装作准备。 RPM对配置文件(Configfiles)有着特别的处理。因为用户常常需要根据实际情况,对软件的配置文件做相应的修改。如果安装时简单地覆盖了此类 文件,则用户又得重新手工设置,很麻烦。这种情况下,RPM做得比较明智:它将原配置文件换个名字保存了起来(原文件名后缀加上.rpmorig),用户 可根据需要再恢复,避免重新设置的尴尬。 这是最重要的部分,也是软件包安装的关键所在。在这一步,RPM将软件包解压缩,将其中的文件一个个存放到正确的位置,同时,文件的 *** 作权限等属性相应设置正确。 7.更新RPM数据库 8.执行安装时触发脚本程序(Triggerin) rpm -i [安装选项1 安装选项2.] 包裹文件1 包裹文件2. 1.典型的命名样式(常用): 注:体系号指的是执行程序适用的处理器体系,如i386体系,sparc体系等。体系号为src时表明为源代码包,否则为执行程序包。 如abc-3.2-1.i386.rpm为执行程序包,软件名为abc,版本号为3.2,释出号为1,适用体系为i386,而abc-3.2-1.src.rpm则为源代码包。 * FTP方式的命名格式:ftp://[用户名[:密码]@]主机[:端口]/包裹文件 如ftp://ftp.xxx.com/yyy.rpm(使用匿名传输,主机ftp.xxx.com,包裹文件yyy.rpm)如ftp://24.109.164.55:1024/pub/yyy.rpm(匿名FTP传输,主机IP:24.109.164.55,使用1024端口,包裹文件在/pub目录下)如ftp://zhsoft@ftp.xxx.com/yyy.rpm(主机ftp.xxx.com,FTP用户名zhsoft,如有密码,RPM将会自动提示输入)如ftp://zhsoft:password@ftp.xxx.com/yyy.rpm(主机ftp.xxx.com,FTP用户名zhsoft,密码password)。 注:括住的内容可选。主机可以是主机名,也可是IP地址。包裹文件可含目录信息。如未指定端口,则RPM默认使用80端口。

1、安装cmake

tar zxf cmake-2.8.7.tar.gz

pushd cmake-2.8.7

./bootstrap &&gmake &&gmake install

popd

2、创建所需user及group及dir

groupadd mysql

useradd -g mysql mysql

mkdir -p /usr/local/mysql

mkdir -p /var/lib/mysql

chown -R mysql.mysql /usr/local/mysql /var/lib/mysql

3、安装mysql

tar zxf mysql-5.5.20.tar.gz

pushd mysql-5.5.20

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS:STRING=all \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DMYSQL_DATADIR=/var/lib/mysql \

-DMYSQL_USER=mysql

makemake install

popd

4、制作配置文件

cat >my.cnf <<EOF

[mysqld]

datadir=/var/lib/mysql

user=mysql

socket=/var/lib/mysql/mysql.sock

#Disablingsymbolic-links is recommended to prevent assorted security risks

symbolic-links=0

#skip-networking

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

EOF

5、初始化数据库

cd /usr/local/mysql

./scripts/mysql_install_db --datadir=/var/lib/mysql --user=mysql

6、定制启动脚本

cp mysql-5.5.20/support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

chkconfig mysqld on

/etc/init.d/mysqld start

7、修改管理员密码

./bin/mysqladmin -u root password 'password1'

8、rpm安装后更改mysql数据存放位置

vi /usr/local/mysql/my.cnf

修改

datadir=/var/lib/mysql


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6422641.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-21
下一篇 2023-03-21

发表评论

登录后才能评论

评论列表(0条)

保存