yum管理及源码安装

一、配置YUM库及更新操作

yum概述

    基于RPM包构建的软件更新机制,自动解决软件依赖关系

YUM仓库格式

本地:file://
网络:ftp://或http://

yum源里面包含的内容

1、rpm包
2、元数据文件mount /dev/cdrom /mediacd /media/Serverls re*在每个yum仓库中,都有repodata目录(存放的是仓库数据)#baseurl代表yum在互联网上所查找的链接地址。这里需要解释一下#$basearch代表了系统的构架格式如i386和repodata存放repomd.xml文件的文件夹位置。

Linux yum配置文件详解

yum的配置一般有两种方式:   一种是直接配置/etc目录下的yum.conf文件, 另外一种是在/etc/yum.repos.d目录下增加.repo文件。

yum的配置文件yum.conf详解

$ cat /etc/yum.conf
[main]

cachedir=/var/cache/yum         #yum下载的RPM包的缓存目录
keepcache=0                        #缓存是否保存,1保存,0不保存。
debuglevel=2                       #调试级别(0-10),默认为2(具体调试级别的应用,我也不了解)。
logfile=/var/log/yum.log         #yum的日志文件所在的位置
exactarch=1             #在更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。
obsoletes=1             #这是一个update的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。
gpgcheck=1             #是否检查GPG(GNU Private Guard),一种密钥方式签名。
plugins=1             #是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。
installonly_limit=3         #允许保留多少个内核包。
exclude=selinux*         #屏蔽不想更新的RPM包,可用通配符,多个RPM包之间使用空格分离。

配置YUM客户端

1、yum的配置文件

-基本配置:/etc/yum.conf
-仓库配置:/etc/yum.repos.d/*.repo
-日志文件:/var/log/yum.log

2、yum缓存目录
-

存放下载软件包、仓库记录等数据
-/var/cache/yum/$basearch/$releasever

yum缓存:

/var/cache/yum:存放服务器的软件信息

当执行yum install 软件包 时,首先查看/var/lib/rpm数据库下有没有下载的软件包,如果没有则从/etc/yum.repos.d/下的.repo配置文件把软件信息下载到本地,并缓存在/var/cache/yum,然后在/var/cache/yum里面找到某一软件的下载地址,然后把软件安装上。

1.先备份
2.wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
3.yum makecache #生成缓存
4.yum install 软件包  -y 

cat /etc/yum.conf 

复制代码
[main]
cachedir=/var/cache/yum          #yum下载的RPM包的缓存目录
keepcache=0                  #缓存是否保存,1保存,0不保存。
debuglevel=2                 #调试级别(0-10),默认为2(具体调试级别的应用,我也不了解)。
logfile=/var/log/yum.log       #yum的日志文件所在的位置
exactarch=1                 #在更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。
obsoletes=1                 #这是一个update的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。
gpgcheck=1                 #是否检查GPG(GNU Private Guard),一种密钥方式签名。
plugins=1                 #是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。
installonly_limit=3          #允许保留多少个内核包。
exclude=selinux*           #屏蔽不想更新的RPM包,可用通配符,多个RPM包之间使用空格分离。
#       This is the default, if you make this bigger yum won‘t see if the metadata
# is newer on the remote and so you‘ll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
# It is esp. important, to have correct metadata, for distributions like
# Fedora which don‘t keep old packages around. If you don‘t like this checking
# interupting your command line usage, it‘s much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
metadata_expire=90m      #设定保存时长
# PUT YOUR REPOS HERE or IN separate files named file.repo
# in /etc/yum.repos.d

keepcache=0修改成keepcacche=1
保存,退出。
以后安装、更新的包,都会保存在/var/cache/yum/DT60SP3_Repository/packages目录下面

3、.repo基本配置项

[源名称]:自定义名称,具有惟一性
name:本软件源的描述字串
baseurl:指定YUM服务端的URL地址
enabled:是否启用此频道
gpgcheck:是否验证待安装的RPM包
gpgkey:用于RPM验证的密钥文件

[fedora]       #方括号里面的是软件源的名称,将被yum取得并识别

name=Fedora $releasever - $basearch   #这里也定义了软件 仓库的名称,通常是为了方便阅读配置文件,一般没什么作用,$releasever变量定义了发行版本,

通常是8,9,10等数字,$basearch变 量定义了系统的架构,可以是i386、x86_64、ppc等值,这两个变量根据当前系统的版本架构不同而有不同的取值,这可以方便yum升级的时候选择 适合当前系统的软件包,以下同……

failovermethod=priority   #failovermethod 有两个值可以选择,priority是默认值,表示从列出的baseurl中顺序选择镜像服务器地址,roundrobin表示在列出的服务器中随机选择

exclude=compiz* *compiz* fusion-icon* #exclude这个选项是后来我自己加上去的,用来禁止这个软件仓库中的某些软件包的安装和更新,可以使用通配符,并以空格分隔,可以视情况需要自行添加

#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/#上面的一行baseurl第一个字符是‘#‘表示该行已经被注释,将不会被读取,这一行的意思是指定一个baseurl(源的镜像服务器地址)

#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch#上面的这一行是指定一个镜像服务器的地址列表,通常是开启的,本例中加了注释符号禁用了,我们可以试试,将$releasever和$basearch替换成自己对应的版本和架构,例如10和i386,在<a href="http://www.it165.net/edu/ewl/" target="_blank" class="keylink">浏览器</a>中打开,我们就能看到一长串镜可用的镜像服务器地址列表。

选择自己访问速度较快的镜像服务器地址复制并粘贴到repo文件中,我们就能获得较快的更新速度了,格式如下baseurl所示:baseurl=ftp://ftp.sfc.wide.ad.jp/pub/<a href="http://www.it165.net/os/oslin/" target="_blank" class="keylink">Linux</a>/Fedora/releases/10/Everything/i386/oshttp://ftp.chg.ru/pub/<a href="http://www.it165.net/os/oslin/" target="_blank" class="keylink">Linux</a>/fedora/linux/releases/10/Everything/i386/oshttp://ftp.yz.yamagata-u.ac.jp/pub/linux/fedora/linux/releases/10/Everything/i386/oshttp://mirror.nus.edu.sg/fedora/releases/10/Everything/i386/oshttp://mirror.yandex.ru/fedora/linux/releases/10/Everything/i386/oshttp://ftp.twaren.net/Linux/Fedora/linux/releases/10/Everything/i386/oshttp://ftp.itu.edu.tr/Mirror/Fedora/linux/releases/10/Everything/i386/os 

enabled=1 #这个选项表示这个repo中定义的源是启用的,0为禁用21.gpgcheck=1 #这个选项表示这个repo中下载的rpm将进行gpg的校验,已确定rpm包的来源是有效和安全的gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch #定义用于校验的gpg密钥,就是数位签章的公钥档所在位置!23. 

4、创建server.repo配置,添加本地仓库

vim /etc/yum.repos.d/server.repo
baseurl=file:///media/RHEL_5.9%20x86_64%20DVD/Server    //空格用%20代替

yum仓库中的元数据文件:

1、primary.xml.gz
a、所有RPM包的列表;
b、依赖关系;
c、每个RPM安装生成的文件列表;

2、filelists.xml.gz
a、当前仓库中所有RPM包的所有文件列表;
3、other.xml.gz
a、额外信息,RPM包的修改日志;

4、repomd.xml
a、记录的是上面三个文件的时间戳和校验和;

5、comps*.xml: RPM包分组信息

注意:

1、红帽6把yum仓库的所有rpm放到一个目录下,但是把repodata放到另外一个目录下,所以repodata并不在挂载的目录下;
2、使用yum仓库时,一定要指向repodata所在的目录
3、红帽5的rpm包和repodata都放到同一个目录;而红帽6的rpm包和repodata不在同一个目录下

yum客户端操作

格式:yum [-y] 指令 [软件名]
       list    查看软件包列表及安装状态
       search    查看软件包名称或者描述重要关键字
       info    查看软件包的说明信息,类似于rpm -qi
       install    安装指定软件包,类似于rpm -i
       update    升级指定软件包,类似于rpm -F
       remove    卸载指定软件包,类似于rpm -e
       provides    查看文件由那个包产生,类似于rpm -qf
       --nogpgcheck    不验证gpg签名    yum clean all    yum -y localinstall    本地安装              [-y=yes]

本地无gpg公钥签名的安装 yum -y localinstall  [安装包]  --nogpgcheck  

list: 列表     支持glob    all    available:可用的,仓库中有但尚未安装的    installed: 已经安装的    updates: 可用的升级

repolist: 显示repo列表及其简要信息    all    enabled: 默认    disabled

软件组基本操作

yum
      grouplist        查看软件组列表
      groupinfo        查看软件组说明信息
      groupinstall    安装指定软件组
      groupupdate    升级软件组
      groupremove    卸载软件组

清空本地yum缓存

1、适用于yum缓存存在错误时

-再次查询或更新时,会自动重建缓存
yum clean all   //清空所有缓存
yum list          //再次查询时更新clean: 清理缓存[ packages | headers | metadata | dbcache | all ]    

搭建自定义yum源

1.先安装createrepo软件包
yum -y install createrepo
2.将搜集的*.rpm包文件集中到自定义的文件夹,例如:
mkdir /mydata
cp *.rpm /mydata
3.使用createrepo生成仓库定义数据
createrepo /mydata
4.配置/etc/yum.repos.d目录下的repo文件,注意把gpgcheck改为0,因为不是红帽认证的。

例子:

YUM高级配置
1. 将rhel6.5 iso里面的软件全部拷贝到/data/rhel6
2. mkdir /data/rhel6/nsd1409,把相应的rpm包拷贝进去
3. 安装createrepo软件包
4. createrepo /data/rhel6/nsd1409
5. 修改yum客户端配置文件
[[email protected] ~]# cat /etc/yum.repos.d/rhel6.5.repo
[rhel-6.5]
name=Red Hat Enterprise Linux Server
baseurl=file:///data/rhel6/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[rhel-nsd1409]
name=Red Hat Enterprise Linux Nsd1409
baseurl=file:///data/rhel6/nsd1409
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
6. yum clean all
7. yum list linuxqq

YUM 源优先级插件

Linux 发行版比较多,同时还有很多个人或组织维护了某些特定用途的安装/升级源。Yum Priorities 插件可以用来强制保护源。它通过给各个源设定不同的优先级,使得系统管理员可以将某些源(比如 Linux 发行版的官方源)设定为最高优先级,从而保证系统的稳定性(同时也可能无法更新到其它源上提供的软件最新版本)。

在控制台运行 Yum Priorities 安装指令

 yum install yum-priorities

配置使用 Yum Priorities

1.使用熟悉的文本编辑器(如 vim)打开 Yum Priorities 配置文件 /etc/yum/pluginconf.d/priorities.conf

vim /etc/yum/pluginconf.d/priorities.conf

2.确保配置文件中包含下面的行

[main]
enabled=1

保存并关闭该文件

3.打开 CentOS base 源配置文件 /etc/yum.repos.d/CentOS-Base.repo
将下面的文本分别添加到 Base, Updates, Addons, 和 Extras 这几个源记录的后面*

priority=1

将下面的文本添加到 CentOSPlus 源记录的后面*

priority=2

注意:

* 源记录(repository entry)是由 [ 和 ] 括起来的源名称。例如,Base 源记录就标记为 [base] 。
** 优先级由 1 ~ 99 的 99 个数表示,1 的优先级最高。优先级小的源即使有某软件的较新版本,如果优先级高的源中没有,在启用该插件的情况下,系统也无法安装/升级到该较新版本。图形界面的 YUM 工具一般默认就已经包含了优先级插件。
*** 要禁用 YUM 优先级功能,只需要在(1.A.) /etc/yum/pluginconf.d/priorities.conf 中将 enable=1 改为 enable=0 即可。不建议!

本地yum源优先级比官网base源高,因此在yum安装包时,首先会在本地查找,没有找到才会去官网查找

备注:
1、要使priority参数有效,必须安装yum-plugin-priorities插件
2、N为整型数.默认优先级为99.数值越小优先级越高;

二、源码包的编译安装

1. 准备开发环境gcc、g++、make
2. 源码安装基本过程

tar         一般解包到/usr/src
./configure    配置,使用--prefix=/usr/local/软件名  指定安装位置
make        编译
make install    安装

三 源码包编译安装

深入研究编译

语言进行编译,一般进行如下步骤:

1) 先检查程序代码中的语法是否正确

2) 将程序代码转换为机器码

3) 程序代码中如果使用其它的链接库的机器码,则链接之

4) 产生操作系统相关信息

5) 存储为可执行文件

链接

是把存储在链接库中的机器码存储到程序中,这样开发人员就不需要重复编写相同的程序代码,加快程序的开发速度。

链接分为:静态链接和动态链接

静态链接:

静态链接是包含给用户调用函数的集合,通常这些函数被其它程序调用的方法是,在程序编译时,把函数的执行代码写入到应用程序中。

使用ar工具生成,一般以.a作为库的文件名。

特点:

l

产生执行文件的体积较大

执行时需要较多内存空间

可独立使用

动态链接

编译程序时不会把链接库的机器码复制到程序中,而是存储执行文件执行时需要的哪个链接库、链接库版本等信息;当程序执行时,可根据文件中记载链接库信息,加载所需的链接库的机器码。

以“.so”作为库的文件名

特点:

体积较小

内存空间少

无法独立使用

查询执行文件的链接方法

[[email protected] hello]# file /bin/ls

/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped

看到:

dynamically linked:动态链接

static linked:静态链接

查询连接到的链接库

[[email protected] hello]# ldd /usr/sbin/setup

        linux-gate.so.1 =>  (0x00323000)

        libnewt.so.0.52 => /usr/lib/libnewt.so.0.52 (0x001a4000)

        libc.so.6 => /lib/libc.so.6 (0x00686000)

        libslang.so.2 => /usr/lib/libslang.so.2 (0x001bf000)

        libm.so.6 => /lib/libm.so.6 (0x003a8000)

        /lib/ld-linux.so.2 (0x00178000)

        libdl.so.2 => /lib/libdl.so.2 (0x00d37000)

准备源代码编译环境

1、开源软件多使用C/C++语言开发

需要gcc、make等编译工具
#gcc --version
#g++ --version
#make --version
通过yum安装“开发工具”、“开发库”包组,可解决编译环境

前提:准备开发环境(编译环境)

编译安装的三步骤:
前提:准备开发环境(编译环境)
安装"Development Tools"和"Development Libraries"
RHEL5:"Development Tools"和"Development Libraries"
RHEL6::"Development Tools"和"Compatibility Libraries "
# tar
# cd
# ./configure
    --help :获取脚本的使用格式
    --prefix=/path/to/somewhere
    --sysconfdir=/PATH/TO/CONFFILE_PATH
    configure的功能:1、让用户选定编译特性;2、检查编译环境;
# make
# make install

# tar xf tengine-1.4.2.tar.gz
# cd tegnine-1.4.2
./configure -- help | less
# ./configure --prefix=/usr/local/tengine --conf-path=/etc/tengine/tengine.conf
# make
# make install
# /usr/local/tengine/sbin/nginx
加入出现要依赖PCRE库的解决方法:
a、在configure的过程中加上--without-http-rewrite_module
b、yum install pcre-devel

安装软件包的时候,如果把它安装在非默认路径,要注意:
1、修改PATH环境变量,以能够识别此程序的二进制文件路径;
    修改/etc/profile文件
    在/etc/profile.d/目录建立一个以.sh为名称后缀的文件,在里面定义export PATH=$PATH:/path/to/somewhere
2、默认情况下,系统搜索库文件的路径/lib, /usr/lib; 要增添额外搜寻路径:
    在/etc/ld.so.conf.d/中创建以.conf为后缀名的文件,而后把要增添的路径直接写至此文件中;
    # ldconfig 通知系统重新搜寻库文件
        -v: 显示重新搜寻库的过程

要使用一个程序调用其它库时,都要使用include来包含这些

3、头文件:输出给系统
    默认:/usr/include
    增添头文件搜寻路径,使用链接进行:
        /usr/local/tengine/include/   /usr/include/
        两种方式:
        ln -s /usr/local/tengine/include/* /usr/include/ 或
        ln -s /usr/local/tengine/include  /usr/include/tengine
4、man文件路径:安装在--prefix指定的目录下的man目录;/usr/share/man
        1、man -M /PATH/TO/MAN_DIR COMMAND
        2、在/etc/man.config中添加一条MANPATH
    

编译安装的基本过程

make: 项目管理工具,能够把C程序的多个不同文件做成一个项目,并且把这个项目的编译过程通过一个配置文件来启动,这个配置文件叫makefile;
    makefile: 定义了make(gcc,g++)按何种次序去编译这些源程序文件中的源程序

automake, --> makefile.in(半成品) --> makefile
autoconf, --> configure

makefile的生成
automake:让程序的作者对自己的源程序做一个简单的定义,然后生成一个makefile的半成品(makefile.in),makefile无法跟用户交互;此时makefile.in还可以接受另外一个工具所生产的脚本(autoconf)做配置

autoconf:给项目生成一个脚本(configure)
configure:配置脚本如何定义

编译安装的基本过程

下载源码包后的安装步骤:
1、tar解包,释放源代码至指定目录
2、./configure配置,指定安装目录/功能模块等选项
3、make编译,生成可执行的二进制程序文件
4、make install安装,将编译好的文件复制到安装目录

解包

-使用tar解包,建议释放到/usr/src目录
-解包后位置:/usr/src软件名-版本号/

配置

-

使用源码目录下的configure脚本
执行“./configure --help”可以查看帮助 ./configure --prefix=/usr/local/apache2【 --prefix安装指定路径命令】    【查看软件包里多一个Makefile文件就说明执行成功】

编译

执行make命令,如果编译出错,需要执行make clean再执行make

安装

执行 make install命令

参考:http://cnzhx.net/blog/yum-priorities/

http://www.it165.net/os/html/201409/9273.html

原文地址:https://www.cnblogs.com/zhongguiyao/p/9029922.html

时间: 2024-08-14 18:21:17

yum管理及源码安装的相关文章

rpm、yum管理及源码安装程序包

linux程序包管理: 为了更好的实现程序的安装.升级.卸载.查询.校验以及数据库的维护,所以把将编译好的程序的各个组成文件打包成一个或者多个程序包文件. 软件包的获取途径: 1.到各个镜像网站获取: 比如:mirrors.aliyun.com   mirrors.163.com   mirrors.souhu.com 2.到各个程序官网获取 比如:apache.org  nginx.org 3.通过第三方组织 比如:epel.搜索引擎 1.rpm包管理  :  不能处理依赖关系 RPM 是以一

Python学习第六天----Linux内存管理、进程管理、RPM包安装管理及源码安装软件

Linux内存管理.进程管理.RPM包安装管理及源码安装软件 一.交换分区     交换分区其实就相当于Windows系统下的虚拟内存的概念,当物理内存不够用的时候,由操作系统将硬盘的一块区域划分出来作为内存使用.具体使用方法如下:      [[email protected] ~]# fdisk -l 磁盘 /dev/sdb:16.1 GB, 16106127360 字节,31457280 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):5

Linux软件包管理之源码安装

Linux软件包管理之源码安装 源码包的编译用到了linux系统里的编译器,常见的源码包一般都是用C语言开发的,这也是因为C语言为linux上最标准的程序语言.Linux上的C语言编译器叫做gcc,利用它就可以把C语言变成可执行的二进制文件.所以如果你的机器上没有安装gcc就没有办法去编译源码.你可以使用 yum install -y gcc 来完成安装. 3.1 源码包安装的步骤 1.拿到源代码,并解压 #tar xf package-version.tar.{gz|bz2|xz} 注意:展开

Day6.swap命令,进程管理,rmp软件包与yum软件包管理,源码安装

1) 开启Linux系统前添加一块大小为15G的SCSI硬盘 2) 开启系统,右击桌面,打开终端 3) 为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区,在扩展分区上划分1个逻辑分区,大小为5G 4) 格式化主分区为ext3系统 5) 将逻辑分区设置为交换分区 6) 启用上一步的交换分区 7) 查看交换分区的状态 作业二:free命令查看内存 整理buffer与cache的作用:两者是用来解决硬盘和内存速度差的问题,实质上是内存上的空间,buffer是还没有写到硬盘里的数据,就是内存数

linux下yum程序包管理及源码安装

1.yum仓库中的repodata目录中元数据文件: primary.xml.gz:代表所有RPM包的列表和依赖关系以及每个RPM安装生成的文件列表: filelists.xml.gz:代表当前仓库中所有RPM包的所有文件列表: other.xml.gz:代表额外信息,RPM包的修改日志: repomd.xml记录的是上面三个文件的时间戳和校验和: comps*.xml: RPM包分组信息 2.yum定义repo文件 [Repo_ID] name=Description baseurl= ftp

linux程序包管理与源码安装

一.RPM包简介: linux之所以那么强大,除了linux强大的内核,还有很大一部分取决于linux的软件包,假想没有软件包,就一个内核在运行,人类需要和内核打交道是多么痛苦,但是聪明的人类发明了bash,通过bash,人就可以使用高级语言,和机器沟通,这其中的bash起始也是一个软件包,当然linux除了bash还有各式各样的包,帮助我们完成各种任务,这其中便涉及到程序的包管理. rpm包管理器(原名redhat package manager,后成为行业标准,命名为rpm package

rpm命令,yum命令,源码安装python

一.rpm命令 挂载光盘文件到/media目录 进去/media目录下的Packages目录 查看系统已安装的所有rpm包 查看系统是否安装dhcp软件包 安装dhcp软件包 查看dhcp软件包的信息 查看dhcp软件包中所包含的所有文件 查看/bin/ls文件是由哪个软件包产生 卸载dhcp软件包   二.yum命令 自定义yum仓库:createrepo 自定义repo文件 使用yum命令安装httpd软件包   卸载httpd软件包:yum –y remove 软件名   使用yum安装组

Linux基础--------监控系统、进程管理、软件包管理-------free、dd、kill、 rpm、yum、源码安装python

作业一:1) 开启Linux系统前添加一块大小为15G的SCSI硬盘 2) 开启系统,右击桌面,打开终端 3) 为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区,在扩展分区上划分1个逻辑分区,大小为5G fdisk -l /dev/sdb       查看新增加硬盘sdb的详细信息     第一个硬盘叫sda,新建的第二个就叫sdb,再增加一个就叫sdc,依此类推 fdisk /dev/sdb      给/dev目录下的sdb硬盘座磁盘分区      m  查看帮助 n  添加一个新

用户、组管理,源码包安装

先讲解后试验,最后有截图文件 一.用户账户管理 1. 用户账户: 超级用户root(0) 程序用户(1~499) 普通用户(500~60000) 组账户: 基本组(私有组) 附加组(公共组) 2. /etc/passwd 保存用户账户的基本信息 # grep ^root /etc/passwd root:x:0:0:root:/root:/bin/bash 字段1:帐号名root 字段2:密码占位符x 字段3:UID 字段4:GID 字段5:用户全名 字段6:宿主目录 字段7:登录Shell