Linux入门系列——软件包管理

Linux入门系列——软件包管理,第1张

RedHat 系统中使用的是: rpm (redhat package manager) 现在称:RPM is Package Manager

Debian : dpt

Ubuntu : apt

在安装软件的时候,有可能出现软件包的相互依赖关系;所以红帽公司推出了:yum(Yellowdog update modifier)

包的组成部分:

主包:

bind-9.7.1-1..e15.i586.rpm

子包:

bind-libs-9.7.1-1..e15.i586.rpm

bind-utils-9.7.1-1..e15.i586.rpm

包名:

PackageName-Version-Release.Arch.rpm

bind-major-minor-releases-release.arch.rpm

包名-主版本号-次版本号-发行号-rpm包的制作者的发行号.硬件平台.rpm

主版本号:重大改进;

次版本号:某个子功能发生重大变化;

发行号:修改BUG,调整了一点功能;

bind-9.7.1-1.noarch.rpm 这里的noarch表示不区分硬件平台,32和64都可以使用;如果是ppc则是在PowerPc上使用的包;

# rpm -ivh /path/to/Package_Name

-i,--install 表示安装

-v 表示显示安装过程的信息

-h 表示以#显示安装的进程,总数为50个;

-vv 显示更详细的过程;

--nodeps 安装的时候忽略依赖关系

--force 无论之前是否安装过,都强制安装,可以实现重装、降级;

--replacepkgs 重新安装,替换原有的安装;

--oldpackage 对软件包进行降级;

--test Do not install the package, simply check for and report potential conflicts. 不进行安装,只测试看在安装的时候有没有依赖包要装;

rpm -q soft_name

# rpm -q httpd

rpm -qa 查询当前系统中已经安装的rpm软件包;

# rpm -qa |grep ‘ssh*’

rpm -qi soft_name 查询软件包的安装信息:

[root@ns2 rpm]# rpm -qi zlib-devel

Name : zlib-devel Relocations: /usr

Version : 1.2.3 Vendor: CentOS

Release : 4.el5 Build Date: 2011年05月11日 星期三 18时57分15秒

Install Date: 2013年07月21日 星期日 17时02分41秒 Build Host: builder10.centos.org

Group : Development/Libraries Source RPM: zlib-1.2.3-4.el5.src.rpm

Size : 269981 License: BSD

Signature : DSA/SHA1, 2011年09月04日 星期日 03时24分25秒, Key ID a8a447dce8562897

URL : http://www.gzip.org/zlib/

Summary : Zlib 开发的头文件和库。

Description :

zlib-devel 软件包包括开发使用 zlib 压缩和解缩库的程序

所需的头文件和库。

[root@ns2 rpm]#

rpm -ql soft_name 查看该软件包在系统中存放了哪些文件;

rpm -qf /path/to/file_name 查看该文件是由哪个rpm包生成的。

rpm -qc soft_name 查看指定rpm包安装的配置文件的位置;

rpm -qd soft_name 查看指定rpm包安装的帮助文件的位置;

rpm -q --scripts soft_name 查看指定rpm包在安装、卸载、更新的前后,所要执行的shell脚本;

rpm -qp[i|l|d|c|] 即要加上一个“p”选项;

rpm -Uvh /path/to/package_name

如果安装的指定的软件包已经安装过,则进行升级 *** 作,如果没有安装过,则就使用指定的这个软件包进行安装;

rpm -Fvh /path/to/package_name

如果安装过,则升级,否则不进行任何 *** 作;

rpm -Fvh --oldpackage package_name 通常用这个来降级一个rpm包;

rpm -e package_name

--nodeps 强制卸载

rpm -V package_name 也可以使用--verify

通常用来检查安装后的文件是不是被修改过;

加密算法:

对称加密: 加密和解密使用同一个key

非对称加密:有一对密钥(公钥和私钥),公钥大家都可以知道,私钥只有持有人知道;公钥加密私钥解,私钥加密公钥也可以解。不能由公钥摧出私钥,也不能由私钥摧出公钥;私钥还用来做签名,因为只有私钥持有人自己才有;

单向加密:使用这种加密算法加密后,是不可以再还原的。通常用它来做数据完整性的验证,也就是验证数据在传输的过程中有没有被别人修改过。

在红帽的系统中,/etc/pki/rpm-gpg/目录下面存放了红帽公司的gpg-key(相当于公钥),所以只需要把这个gpgkey导入到系统中就可以验证了。导入方法如下:

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

接下来就可以对将要安装的rpm包进行验证了:

# rpm -K /path/to/package_file

dsa,gpg验证来源的合法性,也就是验证签名。但是可以使用--nosignature 来跳过签名验证;

sha1,md5验证软件包的完整性,可以使用--nodigest 来跳过完整性验证;

rpm --rebuilddb 重建数据库

--initdb 初始化数据库

yum install -y pack1 pack2 安装指定的软件包

yum remove pack1 pack2 -y 删除指定的软件包

yum update pack1 pack2 更新指定的软件包

yum list installed 列出所有已经安装的软件包

yum update 更新源

yum search string 搜索包含string的软件包

yum install package_name 获取软件包信息

# tar zxf nginx-1.4.7.tar.gz -C /usr/src

# configure --prefix=/usr/local/nginx --conf-path=/etc

# make

# make install

由于使用的是源码包安装在非正常路径下。所以还要做以下的调整:

修改/etc/profile文件。或是在/etc/profile.d/下创建一个以.sh结尾的文件;再把二进制程序的路径export出来就行了;

在/etc/ld.so.conf.d/中创建一个以.conf文件结尾的文件,而后把要增添的路径直接写入此文件中就行了;

这样系统就会在下次启动的时候,自动加载这些新增加的库;如果想让系统马上可以找到这些新增加的库,就必须执行下面的命令:

# ldconfig 通知系统重新搜索库文件,还可以加上-v选项,表示显示过程;

默认的头文件搜索路径是:/usr/include/

要添加新的头文件搜索路径,可以使用链接的方式:

ln -s /usr/local/nginx/include/* /usr/include/

ln -s /usr/local/nginx/include /usr/include/nginx

这时可以修改/etc/man.conf文件,在里面添加以下内容:

MANPATH /usr/local/nginx/man

还有一种方式就是临时使用:

# man -M /usr/local/nginx/man nginx 这样就可以查看nginx的man手册了;

我最常用的 Linux 发行版为 CentOS。为了拥有一个“干净”的系统,尽量减少不必要的软件安装,我一般都会采用 minimal 版本安装。但安装完成后并不能满足我的基本需求;对我来说,还需要安装一些常用的(对我来说)软件包。而我需要有很多软件,在CentOS 自带的yum 源中并没有。所以就促使我去寻找其他的可用 yum 软件源。

企业级 Linux 扩展软件包(Extra Packages for Enterprise Linux 即:EPEL)是一个Fedora特殊兴趣小组为企业级 Linux创建、维护和管理的高质量的附加软件包,企业级Linux 包括但不限于 Red Hat Enterprise Linux(RHEL),CentOS,Scientific Linux(SL)和 Oracle Linux(OL)。

我一般是在 fedora 官网获取 epel-release 软件: http://fedoraproject.org/wiki/EPEL 。

我在 CentOS 6 系统下会使用如下指令安装 epel-release

Remi repository 是包含最新版本 PHP 和 MySQL 包的 Linux 源,由 Remi 提供维护。有个这个源之后,使用 YUM 安装或更新 PHP、MySQL、phpMyAdmin 等服务器相关程序的时候就非常方便了。

它依赖 EPEL 软件包。

我一般是在其官网获取 remi-release 软件: Remi's RPM repository

我在 CentOS 6 系统下会使用如下指令安装 remi-relsase:

RepoForge 的前身是 RPMForge 。

RepoForge项目维护Red Hat Enterprise Linux(RHEL),CentOS和Scientific Linux的RPM软件包。它提供了一组与各种RHEL派生版本兼容的存储库。

我一般是在其官网获取 RepoForge (rpmforge-release)软件: RepoForge

我在 CentOS 6 (x86)系统下会使用如下指令安装 rpmforge-release:

以上三个 Linux 软件源已经够我当前使用了,如果以后在Linux使用过程中有用到其他的软件源,我会在此文件下做补充。

很多时候在CentOS系统下默认的Postgresql版本并不能满足需求。如我安装GitLab时就要求Postgresql在9.1以上,但CentOS 系统 6.9 版本仅提供了Postgresql 的 8.4.20 版本,而CentOS 7 默认也无法安装Postgresql 9 及以上版本。

当然你可以使用源码安装,但对于大多数人来说应该会选择一个更简单的方法。那就去给你的系统安装一个postgresql的yum源吧。

网址: https://yum.postgresql.org/

进到首页你应该可以看到以下内容:

选一个Postgresql的发行版本点进去,会看到如下内容:

对应于不同的发行版本,针对不同的 *** 作系统有着不同的yum源。你可以根据你的 *** 作系统进行选择。

比如我选择了 Postgresql 9.6 版本,而我的 *** 作系统是 CentOS 6.9 ,x86 架构。我只需要执行以下命令:

然后在 /etc/yum.repos.d 目录下会多出一个 文件 pgdg-96-centos.repo 。

至此,你就可以使用命令 yum install postgresql96 来安装postgresql 9.6 版本最新的发行版了软件了。

在CentOS6系统中,默认能安装的MySQL最高版本为5.5.x;而到CentOS7中由于Oracle收购MySQL,因担心版权问题,CentOS7放弃了MySQL而采用了Mariadb,最高支持版本为5.5.x。对于用习惯了MySQL的,并且想使用高版本MySQL的我来说,系统默认支持已经满足不了需求。

可以从 这里 选择一个你所需要的yum源进行安装。

然后:

然后你就可以执行以下命令安装 MySQL 5.7了

在MongoDB的官网上可以找到MongoDB的yum安装源配置方式。

MongoDB 官网YUM源配置方式

然后在打开的页面中会有如下信息:

你需要根据自己的需求调整版本号,然后创建一个/etc/yum.repos.d/mongodb-org-y.x.repo文件,把上面的配置写进去。

完成以上步骤后,就可以使用以下命令安装MongoDB了。

因为linux安装软件的方式比较多,所以没有一个通用的办法能查到某些软件是否安装了。总结起来就是这样几类:1、rpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa | grep “软件或者包的名字”。[root@linuxprobe.com ~] rpm -qa | grep ruby2、以deb包安装的,可以用dpkg -l能看到。如果是查找指定软件包,用dpkg -l | grep “软件或者包的名字”;[root@linuxprobe.com~]dpkg-l|grepruby3、yum方法安装的,可以用yum list installed查找,如果是查找指定包,命令后加 | grep “软件名或者包名”;[root@linuxprobe.com ~] yum list installed | grep ruby4、如果是以源码包自己编译安装的,例如.tar.gz或者tar.bz2形式的,这个只能看可执行文件是否存在了,上面两种方法都看不到这种源码形式安装的包。如果是以root用户安装的,可执行程序通常都在/sbin:/usr/bin目录下。《Linux就该这么学》说明:其中rpm yum 是Redhat系linux的软件包管理命令,dpkg是debian系列的软件包管理命令


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

原文地址: http://outofmemory.cn/tougao/6051822.html

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

发表评论

登录后才能评论

评论列表(0条)

保存