Linux 소프트웨어 관리 도구 rpm, yum

11492 단어 yumrpmLinux 기반
      RedHat Liux 에서 패 키 지 를 설치 하 는 방법 은 보통 다음 과 같은 세 가지 가 있다.
      rpm 방식 으로 설치 하고 rpm 는 빨 간 모자 회사 가 개발 한 패키지 관리 방식 으로 rpm 를 사용 하면 우 리 는 소프트웨어 의 검사, 설치, 조회, 마 운 트 해제, 업그레이드 등 작업 을 편리 하 게 할 수 있 습 니 다.그러나 rpm 패키지 간 의 의존성 문 제 는 매우 번 거 로 울 수 있다. 특히 소프트웨어 가 여러 rpm 패키지 로 구 성 될 때.
      yum 설치, Yum (모두 YellowdogUpdater, Modified 라 고 함) 은 Fedora 와 RedHat, SUSE 에 있 는 Shell 전단 패키지 관리자 입 니 다.RPM 패키지 관 리 를 바탕 으로 지 정 된 서버 에서 RPM 패 키 지 를 자동 으로 다운로드 하고 설치 할 수 있 으 며, 의존성 관 계 를 자동 으로 처리 할 수 있 으 며, 모든 의존 하 는 패 키 지 를 한 번 에 설치 할 수 있어 번 거 롭 게 한 번 에 다운로드, 설치 할 필요 가 없다.
     컴 파일 설치, 컴 파일 설치 소스 패 키 지 는 특정한 상황 에서 필수 적 이다. 예 를 들 어 맞 춤 형 설치 패키지 의 각종 속성, 최적화 소프트웨어 등 이다.
의 운영 환경, 추가 기능 모듈 추가 등 도 비교적 자주 사용 하 는 설치 형식 이다.컴 파일 링 설 치 는 해당 하 는 컴 파일 환경 이 필요 합 니 다.gcc, g++ 와 같은 Linux 컴 파일 러
       rpm 패 키 지 는 원본 rpm 과 바 이 너 리 rpm 패키지 로 나 뉘 며, 바 이 너 리 rpm 패 키 지 는 직접 설치 할 수 있 으 며, 원본 rpm 은 컴 파일 을 거 쳐 rpm 패 키 지 를 생 성 해 야 합 니 다.rpm 소스 는 시스템 에 CD 를 설치 하고 각 지역 사회 에서 발행 하 는 사이트 가 있 는데 자주 사용 하 는 것 은 다음 과 같다.
       http://mirrors.sohu.com
       http://rpmfind.net
       http://rpm.pbone.net/
rpm 패 키 지 는 보통 Program - version - relase. arch 로 나타난다. [src]. rpm
   프로그램 패키지 이름
   version 패키지 버 전 번호
   releaserpm 의 수정 번 호 는 지원 하 는 OS, el5: rhel 5 를 포함 하기 도 합 니 다.
   arch 시스템 플랫폼 유형, getconf LONGBIT 는 시스템 플랫폼 의 자릿수 를 가 져 올 수 있 습 니 다.
   src 는 이 rpm 패 키 지 를 다시 컴 파일 하여 설치 해 야 한 다 는 것 을 나타 낸다.
zsh - 4.2.6 - 3. el5. i386. rpm
rpm 명령 상용 옵션:
rpm
설치:
   -i--install       패키지
   -v\-vv\-vvv    자세 한 정보 보기
   -h                  진 도 를\# 로 표시 합 니 다.
[root@localhost ~]# rpm -ivh jzlib-1.0.7-4jpp.1.i386.rpm
Preparing...                ########################################### [100%]
   1:jzlib                  ########################################### [100%]
                                                                                                                                                                                                                                                                                                    
    --nodeps        忽略依赖关系(不推荐,安装后可能不正常工作)
[root@localhost Server]# rpm -ivh anthy-devel-7900-4.el5.i386.rpm
error: Failed dependencies:
    anthy = 7900-4.el5 is needed by anthy-devel-7900-4.el5.i386
    libanthy.so.0 is needed by anthy-devel-7900-4.el5.i386
    libanthydic.so.0 is needed by anthy-devel-7900-4.el5.i386
    libanthyinput.so.0 is needed by anthy-devel-7900-4.el5.i386
[root@localhost Server]# rpm -ivh anthy-devel-7900-4.el5.i386.rpm --nodeps
Preparing...                ########################################### [100%]
   1:anthy-devel            ########################################### [100%]
   --replacepkgs    重新安装
                                                                                                                                                                                                                                                                            
[root@localhost Server]# rpm -ivh zsh-4.2.6-3.el5.i386.rpm
Preparing...                ########################################### [100%]
    package zsh-4.2.6-3.el5.i386 is already installed
[root@localhost Server]# rpm --replacepkgs zsh-4.2.6-3.el5.i386.rpm
rpm: only installation, upgrading, rmsource and rmspec may be forced
[root@localhost Server]# rpm -ivh --replacepkgs zsh-4.2.6-3.el5.i386.rpm
Preparing...                ########################################### [100%]
   1:zsh                    ########################################### [100%]
    --test          测试安装,不会安装到系统中
[root@localhost Server]# rpm -ivh anthy-devel-7900-4.el5.i386.rpm --test
error: Failed dependencies:
    anthy = 7900-4.el5 is needed by anthy-devel-7900-4.el5.i386
    libanthy.so.0 is needed by anthy-devel-7900-4.el5.i386
    libanthydic.so.0 is needed by anthy-devel-7900-4.el5.i386
    libanthyinput.so.0 is needed by anthy-devel-7900-4.el5.i386

마 운 트 해제:
   -e. 프로그램 이름 (이하 동일, 비 완전 패키지 이름) 과 마 운 트 해제
조회:
   -q. 프로그램 이름과 함께 이 소프트웨어 가 설치 되 어 있 는 지 확인 합 니 다.
   -qa 모든 설 치 된 패 키 지 를 조회 하고 파 이 프 를 통 해 grep 에 보 내 는 모호 한 조회 와 결합 합 니 다.
   -ql 프로그램 이름과 이 패키지 가 생 성 된 파일 목록 을 조회 합 니 다.
   -qf 와 파일 이름, 이 파일 이 어떤 패키지 로 생 성 되 었 는 지 알 아 보기
   -qc 와 프로그램 이름, 이 소프트웨어 에서 생 성 된 프로필
   -q -- scripts 와 프로그램 이름, 이 패키지 설치 시 실 행 된 스 크 립 트 조회
   -qd 와 프로그램 이름, 이 소프트웨어 의 도움말 문 서 를 조회 합 니 다.
   -qi 프로그램 이름과 이 소프트웨어 의 간단 한 정 보 를 조회 합 니 다.
레벨 업:
   -U 와 전체 패키지 이름, 이 소프트웨어 없 이 바로 설치, 있 으 면 업그레이드
   -F 와 전체 패키지 이름, 레벨 업 만 가능
검사:
   -V 와 프로그램 이름, 프로그램 이 생 성 한 파일 의 속성 이 변경 되 었 는 지 확인 합 니 다.
   -K 와 전체 설치 패키지 이름 은 소프트웨어 의 출처 의 합 법성 과 소프트웨어 의 완전 성 을 검증 하려 면 사전에
GPG - KEY 가 져 오기
导入系统安装光盘上的GPG-KEY:
[root@localhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
导入其他软件源的GPG-KEY:
[root@localhost ~]# rpm --import http://mirror.sohu.com/fedora-epel/RPM-GPG-KEY-EPEL-5
[root@localhost Server]# rpm -K zsh-4.2.6-3.el5.i386.rpm
zsh-4.2.6-3.el5.i386.rpm: (sha1) dsa sha1 md5 gpg OK
[root@localhost Server]# rpm -K --nodigest zsh-4.2.6-3.el5.i386.rpm
zsh-4.2.6-3.el5.i386.rpm: (sha1) dsa gpg OK
[root@localhost Server]# rpm -K --nosignature zsh-4.2.6-3.el5.i386.rpm
zsh-4.2.6-3.el5.i386.rpm: sha1 md5 OK

데이터베이스 생 성, 재 구축:
   --initdb 새 rpm 데이터 베 이 스 는/var/lib/rpm 에 위치 하고 패키지 의 속성 과 의존 관계 등 내용 을 저장 합 니 다.
   --rebuilddb rpm 데이터베이스 재 구축 (데이터베이스 가 손상 되 었 을 때 재 구축)
원본 형식의 rpm:
     src 형식 rpm 은 rpmbuild 를 사용 하여 spec 파일 에 따라 패 킷 을 컴 파일 하여 바 이 너 리 형식의 rpm 패 키 지 를 생 성 합 니 다.
구체 적 인 절차: (시스템 플랫폼: RHEL 6 x86 64)
[root@station117 ~]# rpm -ivh nginx-1.0.15-5.el6.src.rpm
[root@station117 ~]# cd rpmbuild/
[root@station117 rpmbuild]# rpmbuild -ba SPECS/nginx.spec
[root@station117 rpmbuild]# rpm -ivh /RPMS/x86_64/nginx-1.0.15-5.el6.x86_64.rpm
[root@station117 rpmbuild]# service nginx start
[root@station117 rpmbuild]# netstat -tnl | grep 80
tcp     0        0   0.0.0.0:80            0.0.0.0:*            LISTEN  
在安装过程中会遇到软件依赖的问题,用yum来解决比较方便,yum在后面有介绍:
部分安装包的下载路径:
http://125.39.91.76:1234/sources/GeoIP-1.4.8-1.el6.x86_64.rpm
http://125.39.91.76:1234/sources/GeoIP-devel-1.4.8-1.el6.x86_64.rpm
http://125.39.91.76:1234/sources/httpd-2.2.25.tar.bz2
http://125.39.91.76:1234/sources/nginx-1.0.15-5.el6.src.rpm

yum:
yum 을 사용 하기 전에 yum 창 고 를 설치 해 야 합 니 다. yum 창 고 는 로 컬 폴 더 일 수도 있 고 다른 파일 서버 일 수도 있 습 니 다.
yum 창 고 를 설정 하 는 프로필 은/etc/yum. repos. d/아래 에 repo 를 접미사 로 하 는 파일 입 니 다.
[mycd]                   ----------> 仓库id
name=My CD               ------------> 仓库名称
baseurl=file:///media/cdrom/Server     ----------> 仓库位置
enabled=1                -------------> 启用此仓库
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release  ----> 验证软件包来源合法性以及包的完整性。
[Mirror.sohu]
name=Mirror.sohu.com
baseurl=http://mirror.sohu.com/centos/5/os/$basearch/ 
由于rhel5和centos5兼容,所以rhel5也可以用centos5的yum源,sohu上是5而不是5Server,所以只能写5了。如果是其他版本就直接写数字。
enabled=1
gpecheck=0
gpgkey=http://mirror.sohu.com/centos/5/os/$basearch/RPM-GPG-KEY-CentOS-5
[fedora-epel]
name=fedora-epel
baseurl=http://mirror.sohu.com/fedora-epel/5/$basearch/
enabled=1
gpgcheck=0
gpgkey=http://mirror.sohu.com/fedora-epel/RPM-GPG-KEY-EPEL-5
yum.conf中的变量:
$releasever:代表发行版本的版本号。如果系统是fedora core 6的话,则返回6,rhel
$basearch:显示基本架构类型。如果系统为i386或i686等,则均返回i386
[root@localhost work]# yum list all
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
http://mirror.sohu.com/centos/5Server/os/i386/repodata/repomd.xml: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
出错的原因是yum变量$releasever在替换时成了5Server,而mirror.sohu.com上的目录为5.改成5之后,更新成功。
/etc/yum.conf文件详解
[main]
cachedir=/var/cache/yum ----> yum更新软件时的缓存目录
keepcache=0  ----> 是否保存曾经安装过的包的源程序,0表示不保存。
debuglevel=2  -------> debug信息输出等级,范围为0-10,缺省为2
logfile=/var/log/yum.log  ---> 存放系统更新软件的日志
pkgpolicy=newest   -----> 包的策略。有两个选项,newest和last,如果设置了多个repository,而同一软件在不同的repository中同时存在,如果是newest,则yum会安装最新的那个版本。如果是last,则yum会将仓库id以字母表排序,并选择最后的那个 仓库的软件安装。默认选newest。
distroverpkg=redhat-release   --->  yum会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包。
tolerant=1
#如果值为1,则yum会忽略任何的有关包的错误。举例来说,当执行yum来安装baz时,如果baz包已经安装在系统中了,则yum会继续重复安装baz,而不会报错。默认值为1。
exactarch=1  ------> 设置为1,则yum只会安装和系统架构匹配的软件包,如,yum不会将i686的软件包安装在适合i386的系统中。默认为1
retries=20  ------->  网络连接发生错误后的重试次数,如果设为0,则会无限重试。默认值为6
obsoletes=1  -------> 此选项在进行发行版跨版本升级的时候会用到。
gpgcheck=1  -----------> gpg校验。这个选项如果设置在[main]部分,则对每个repository都有效。默认值为0.

원본 만 들 기:
     rpm 패 키 지 를 한 디 렉 터 리 에 두 고 createrepo 명령 으로 repodata 를 생 성 합 니 다. repodata 에는 소프트웨어 의 속성 정보 와 의존성 등 정보 가 포함 되 어 있 습 니 다. 시스템 CD 에 있 는 패 키 지 를 복사 하여 원본 으로 만 들 면 - g 옵션 을 사용 하여 패 키 지 를 만 드 는 것 을 권장 합 니 다. yum group install '그룹 이름' 을 사용 하여 설치 하 는 것 이 좋 습 니 다.
1、首先安装createrepo软件
[root@localhost work]# yum install createrepo
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
mycd                                                                                               | 1.3 kB     00:00    
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package createrepo.noarch 0:0.4.11-3.el5 set to be updated
2、创建repodata信息:
[root@localhost ~]# createrepo xen-4.1
28/28 - xen-debuginfo-4.1.2-13.el6.x86_64.rpm                                  
Saving Primary metadata
Saving file lists metadata
Saving other metadata
3、在/etc/yum.repos.d/下新建一个文件xen.repo,添加如下内容:
[Xen]
name=localhost xen
baseurl=file:///root/xen-4.1/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release (系统安装盘上的GPG-KEY)
4、以后就可以用yum install xen来安装了。

yum 상용 옵션:
yum
설치:
   설치 프로그램 이름, 모호 일치, 소프트웨어 설치
   localstall 과 전체 패키지 이름, 이 컴퓨터 디 렉 터 리 에서 패 키 지 를 설치 합 니 다.
   groupintall 에 어떤 구성 요소 의 모든 패 키 지 를 설치 합 니 다. yum grouplist 로 사용 가능 한 패 키 지 를 미리 볼 수 있 습 니 다.
업데이트:
   update 와 프로그램 이름, 선택 한 소프트웨어 업데이트
   check - update 는 업데이트 가능 한 모든 패 키 지 를 보 여 줍 니 다.
   list updates 사용 가능 한 업데이트 찾기
   update 업데이트 가능 한 모든 패키지 업데이트 (신중)
   그룹 업데이트 와 그룹 이름, 구성 요소 의 모든 패 키 지 를 업데이트 합 니 다.
조회:
   list all 설치 되 어 있 고 창고 에 사용 가능 한 모든 패 키 지 를 보 여 줍 니 다.
   list available 는 창고 에 사용 가능 한 모든 패 키 지 를 보 여 줍 니 다.
   list updates 는 현재 시스템 보다 업 데 이 트 된 패 키 지 를 보 여 줍 니 다.
   list installed 설 치 된 패 키 지 를 보 여 줍 니 다.
   list recent 창고 에 새로 가입 한 패 키 지 를 보 여 줍 니 다.
   info 프로그램 이름과 패키지 정보 조회
   whatprovides 와 파일 이름, 이 파일 을 조회 할 때 어떤 소프트웨어 가 생 성 되 었 는 지
마 운 트 해제:
   remove 와 프로그램 이름, 패키지 마 운 트 해제
   groupreove 와 그룹 이름, 구성 요소 의 모든 패 키 지 를 삭제 합 니 다.
정보 지우 기:
   clean packages 캐 시 에 남 겨 진 가방 파일 지우 기
   clean metadata 캐 시 에 남 겨 진 메타 데 이 터 를 삭제 합 니 다.
   clean headers 캐 시 에 남 겨 진 헤더 파일 삭제
   clean all 패키지 파일, 메타 데이터, 헤더 파일 삭제

좋은 웹페이지 즐겨찾기