标签:第一个字符 omd dev 系统管 eve yum仓库 sage 交互 记录
基于RPM包构建的软件更新机制,自动解决软件依赖关系
本地:file:// 网络:ftp://或http://
1、rpm包 2、元数据文件
mount /dev/cdrom /media
cd /media/Server
ls re*
在每个yum仓库中,都有repodata目录(存放的是仓库数据)
#baseurl代表yum在互联网上所查找的链接地址。这里需要解释一下
#$basearch代表了系统的构架格式如i386和repodata存放repomd.xml文件的文件夹位置。
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包之间使用空格分离。
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/os
http://ftp.chg.ru/pub/<a href="http://www.it165.net/os/oslin/" target="_blank" class="keylink">Linux</a>/fedora/linux/releases/10/Everything/i386/os
http://ftp.yz.yamagata-u.ac.jp/pub/linux/fedora/linux/releases/10/Everything/i386/os
http://mirror.nus.edu.sg/fedora/releases/10/Everything/i386/os
http://mirror.yandex.ru/fedora/linux/releases/10/Everything/i386/os
http://ftp.twaren.net/Linux/Fedora/linux/releases/10/Everything/i386/os
http://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代替
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 [-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 卸载软件组
1、适用于yum缓存存在错误时
-再次查询或更新时,会自动重建缓存 yum clean all //清空所有缓存 yum list //再次查询时更新
clean: 清理缓存
[ packages | headers | metadata | dbcache | all ]
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客户端配置文件 [root@localhost ~]# 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
Linux 发行版比较多,同时还有很多个人或组织维护了某些特定用途的安装/升级源。Yum Priorities 插件可以用来强制保护源。它通过给各个源设定不同的优先级,使得系统管理员可以将某些源(比如 Linux 发行版的官方源)设定为最高优先级,从而保证系统的稳定性(同时也可能无法更新到其它源上提供的软件最新版本)。
yum install 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”作为库的文件名
特点:
体积较小
内存空间少
无法独立使用
[root@noc 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:静态链接
[root@noc 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
标签:第一个字符 omd dev 系统管 eve yum仓库 sage 交互 记录
原文地址:https://www.cnblogs.com/zhongguiyao/p/9029922.html