设为首页 收藏本站
查看: 550|回复: 0

[经验分享] CentOS中的大黄狗!Yum(Yellowdog Updater Modified)软件管理

[复制链接]

尚未签到

发表于 2018-4-20 11:31:11 | 显示全部楼层 |阅读模式
  基于RPM包构建的软件更新机制。
  自动解决软件包安装依赖关系
  所有软件包由集中的Yum软件提供
  
  软件仓库提供的方式:
  本地:file://
  FTPHTTPftp://http://
  
  Yum配置文件解析:
  基本设置:/etc/yum.conf
  仓库设置:/etc/yum.repos.d/*.repo
  日志文件:/var/log/yum.log
  
  Yum缓存目录:
  存放下载的软件包,仓库记录等文件
  /var/cache/yum/$baserach/$releaserver
  
  Yum*.repo文件解析:
  [base]  # 定义名称,具有唯一性。
  name=CentOS-$releasever - Base  # 软件源描述字符串
  mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra   # Yum源地址
  #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
  enabled   # 是否使用该频道
  gpgcheck=1 # 是否验证待安装的RPM包文件
  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 # 用于RPM软件包检验的密钥
  
  检查*.repo文件:
  [root@node0 ~]# yum repolist
  Loaded plugins: fastestmirror, security
  Loading mirror speeds from cached hostfile
  repo id              repo name                           status                                                     
  dvd_                 added from: file:///dvd/          6,575
  repolist: 6,575
  
  查看软件信息:
  yum list 软件名称
  [root@node0 ~]# yum list lrzsz
  Loaded plugins: fastestmirror, security
  Loading mirror speeds from cached hostfile
  dvd_                                                                                                 | 4.0 kB     00:00 ...
  Installed Packages
  lrzsz.x86_64                                  0.12.20-27.1.el6                 @dvd_                           
  检索软件信息:
  yum search 软件名称
  [root@node0 ~]# yum search lynx
  Loaded plugins: fastestmirror, security
  Loading mirror speeds from cached hostfile
  ============================== N/S Matched: lynx ============================
  lynx.x86_64 : A text-based Web browser
  Name and summary matches only, use "search all" for everything.
  yum info 软件名称
  [root@node0 ~]# yum info lynx
  Loaded plugins: fastestmirror, security
  Loading mirror speeds from cached hostfile
  Available Packages
  Name        : lynx
  Arch        : x86_64
  Version     : 2.8.6
  Release     : 27.el6
  Size        : 1.3 M
  Repo        : dvd_
  Summary     : A text-based Web browser
  URL         : http://lynx.isc.org/
  License     : GPLv2
  Description : Lynx is a text-based Web browser. Lynx does not display any images,
              : but it does support frames, tables, and most other HTML tags. One
              : advantage Lynx has over graphical browsers is speed; Lynx starts and
              : exits quickly and swiftly displays web pages.
  yum provides 命令绝对路径
  [root@node0 ~]# yum provides /bin/ls
  Loaded plugins: fastestmirror, security
  Loading mirror speeds from cached hostfile
  coreutils-8.4-37.el6.x86_64 : A set of basic GNU tools commonly used in shell scripts
  Repo        : dvd_
  Matched from:
  Filename    : /bin/ls
  coreutils-8.4-37.el6.x86_64 : A set of basic GNU tools commonly used in shell scripts
  Repo        : installed
  Matched from:
  Other       : Provides-match: /bin/ls
  
  安装卸载软件:
  
  yum 选项 软件名称
install:安装
update:升级指定软件
remove:卸载指定软件
  
  清空Yum缓存:一般用于Yum是否有效
  [root@node0 ~]# yum clean all
  Loaded plugins: fastestmirror, security
  Cleaning repos: dvd_
  Cleaning up Everything
  Cleaning up list of fastest mirrors
  ************************************************************************************************
  安装软件的时候使用yum进行安装,卸载软件的时候使用rpm命令进行卸载,因为使用yum卸载有可能会卸载其他软件导致系统运行不稳定。
  ************************************************************************************************
  查询安装卸载软件包组:
  yum 选项 软件包组名
grouplist:查看软件组列表
groupinfo:查看软件组的说明信息
groupinstall:安装指定软件组
groupupdate:升级指定软件组
groupremove:卸载指定软件组
  
  源码编译安装:
  源码释放到/src目录,安装到/app目录。
  检查gccmake是否安装:
  [root@node0 lnmp_soft]# rpm -qa make gcc
  make-3.81-20.el6.x86_64
  gcc-4.4.7-16.el6.x86_64
  创建源码和安装目录:
  [root@node0 lnmp_soft]# mkdir /src /app
  [root@node0 lnmp_soft]# ll /src /app/
  /app/:
  total 0
  
  /src:
  total 0
  解压文件:
  [root@node0 lnmp_soft]# tar -zxvf ./nginx-1.8.0.tar.gz -C /src
  nginx-1.8.0/
  nginx-1.8.0/auto/
  nginx-1.8.0/conf/
  nginx-1.8.0/contrib/
  nginx-1.8.0/src/
  nginx-1.8.0/configure
  nginx-1.8.0/LICENSE
  nginx-1.8.0/README
  nginx-1.8.0/html/
  nginx-1.8.0/man/
  nginx-1.8.0/CHANGES.ru
  nginx-1.8.0/CHANGES
  nginx-1.8.0/man/nginx.8
  nginx-1.8.0/html/50x.html
  nginx-1.8.0/html/index.html
  nginx-1.8.0/src/core/
  nginx-1.8.0/src/event/
  nginx-1.8.0/src/http/
  nginx-1.8.0/src/mail/
  nginx-1.8.0/src/misc/
  nginx-1.8.0/src/os/
  nginx-1.8.0/src/os/unix/
  nginx-1.8.0/src/os/unix/ngx_aio_read_chain.c
  nginx-1.8.0/src/os/unix/ngx_aio_read.c
  ......
  进入源码目录:
  [root@node0 lnmp_soft]# cd /src/nginx-1.8.0/
  [root@node0 nginx-1.8.0]# ll
  total 652K
  drwxr-xr-x. 6 1001 1001 4.0K Nov 19 17:43 auto
  -rw-r--r--. 1 1001 1001 244K Apr 21  2015 CHANGES
  -rw-r--r--. 1 1001 1001 371K Apr 21  2015 CHANGES.ru
  drwxr-xr-x. 2 1001 1001 4.0K Nov 19 17:43 conf
  -rwxr-xr-x. 1 1001 1001 2.5K Apr 21  2015 configure
  drwxr-xr-x. 4 1001 1001 4.0K Nov 19 17:43 contrib
  drwxr-xr-x. 2 1001 1001 4.0K Nov 19 17:43 html
  -rw-r--r--. 1 1001 1001 1.4K Apr 21  2015 LICENSE
  drwxr-xr-x. 2 1001 1001 4.0K Nov 19 17:43 man
  -rw-r--r--. 1 1001 1001   49 Apr 21  2015 README
  drwxr-xr-x. 8 1001 1001 4.0K Nov 19 17:43 src
  使用./configure --help获取编译参数帮助:
  [root@node0 nginx-1.8.0]# ./configure --help
  
    --help                             print this message
  
    --prefix=PATH                      set installation prefix
    --sbin-path=PATH                   set nginx binary pathname
    --conf-path=PATH                   set nginx.conf pathname
    --error-log-path=PATH              set error log pathname
    --pid-path=PATH                    set nginx.pid pathname
    --lock-path=PATH                   set nginx.lock pathname
  
    --user=USER                        set non-privileged user for
                                       worker processes
    --group=GROUP                      set non-privileged group for
                                       worker processes
  
    --build=NAME                       set build name
    --builddir=DIR                     set build directory
  
    --with-rtsig_module                enable rtsig module
    --with-select_module               enable select module
    --without-select_module            disable select module
    --with-poll_module                 enable poll module
    --without-poll_module              disable poll module
  
    --with-threads                     enable thread pool support
  
    --with-file-aio                    enable file AIO support
    --with-ipv6                        enable IPv6 support
  
    --with-http_ssl_module             enable ngx_http_ssl_module
    --with-http_spdy_module            enable ngx_http_spdy_module
    --with-http_realip_module          enable ngx_http_realip_module
    --with-http_addition_module        enable ngx_http_addition_module
    --with-http_xslt_module            enable ngx_http_xslt_module
    --with-http_image_filter_module    enable ngx_http_image_filter_module
    --with-http_geoip_module           enable ngx_http_geoip_module
    --with-http_sub_module             enable ngx_http_sub_module
    --with-http_dav_module             enable ngx_http_dav_module
    --with-http_flv_module             enable ngx_http_flv_module
    --with-http_mp4_module             enable ngx_http_mp4_module
    --with-http_gunzip_module          enable ngx_http_gunzip_module
    --with-http_gzip_static_module     enable ngx_http_gzip_static_module
    --with-http_auth_request_module    enable ngx_http_auth_request_module
    --with-http_random_index_module    enable ngx_http_random_index_module
    --with-http_secure_link_module     enable ngx_http_secure_link_module
    --with-http_degradation_module     enable ngx_http_degradation_module
    --with-http_stub_status_module     enable ngx_http_stub_status_module
  
    --without-http_charset_module      disable ngx_http_charset_module
    --without-http_gzip_module         disable ngx_http_gzip_module
    --without-http_ssi_module          disable ngx_http_ssi_module
    --without-http_userid_module       disable ngx_http_userid_module
    --without-http_access_module       disable ngx_http_access_module
    --without-http_auth_basic_module   disable ngx_http_auth_basic_module
    --without-http_autoindex_module    disable ngx_http_autoindex_module
    --without-http_geo_module          disable ngx_http_geo_module
    --without-http_map_module          disable ngx_http_map_module
    --without-http_split_clients_module disable ngx_http_split_clients_module
    --without-http_referer_module      disable ngx_http_referer_module
    --without-http_rewrite_module      disable ngx_http_rewrite_module
    --without-http_proxy_module        disable ngx_http_proxy_module
    --without-http_fastcgi_module      disable ngx_http_fastcgi_module
    --without-http_uwsgi_module        disable ngx_http_uwsgi_module
    --without-http_scgi_module         disable ngx_http_scgi_module
    --without-http_memcached_module    disable ngx_http_memcached_module
    --without-http_limit_conn_module   disable ngx_http_limit_conn_module
    --without-http_limit_req_module    disable ngx_http_limit_req_module
    --without-http_empty_gif_module    disable ngx_http_empty_gif_module
    --without-http_browser_module      disable ngx_http_browser_module
    --without-http_upstream_hash_module
                                       disable ngx_http_upstream_hash_module
    --without-http_upstream_ip_hash_module
                                       disable ngx_http_upstream_ip_hash_module
    --without-http_upstream_least_conn_module
                                       disable ngx_http_upstream_least_conn_module
    --without-http_upstream_keepalive_module
                                       disable ngx_http_upstream_keepalive_module
  
    --with-http_perl_module            enable ngx_http_perl_module
    --with-perl_modules_path=PATH      set Perl modules path
    --with-perl=PATH                   set perl binary pathname
  
    --http-log-path=PATH               set http access log pathname
    --http-client-body-temp-path=PATH  set path to store
                                       http client request body temporary files
    --http-proxy-temp-path=PATH        set path to store
                                       http proxy temporary files
    --http-fastcgi-temp-path=PATH      set path to store
                                       http fastcgi temporary files
    --http-uwsgi-temp-path=PATH        set path to store
                                       http uwsgi temporary files
    --http-scgi-temp-path=PATH         set path to store
                                       http scgi temporary files
  
    --without-http                     disable HTTP server
    --without-http-cache               disable HTTP cache
  
    --with-mail                        enable POP3/IMAP4/SMTP proxy module
    --with-mail_ssl_module             enable ngx_mail_ssl_module
    --without-mail_pop3_module         disable ngx_mail_pop3_module
    --without-mail_imap_module         disable ngx_mail_imap_module
    --without-mail_smtp_module         disable ngx_mail_smtp_module
  
    --with-google_perftools_module     enable ngx_google_perftools_module
    --with-cpp_test_module             enable ngx_cpp_test_module
  
    --add-module=PATH                  enable an external module
  
    --with-cc=PATH                     set C compiler pathname
    --with-cpp=PATH                    set C preprocessor pathname
    --with-cc-opt=OPTIONS              set additional C compiler options
    --with-ld-opt=OPTIONS              set additional linker options
    --with-cpu-opt=CPU                 build for the specified CPU, valid values:
                                       pentium, pentiumpro, pentium3, pentium4,
                                       athlon, opteron, sparc32, sparc64, ppc64
  
    --without-pcre                     disable PCRE library usage
    --with-pcre                        force PCRE library usage
    --with-pcre=DIR                    set path to PCRE library sources
    --with-pcre-opt=OPTIONS            set additional build options for PCRE
    --with-pcre-jit                    build PCRE with JIT compilation support
  
    --with-md5=DIR                     set path to md5 library sources
    --with-md5-opt=OPTIONS             set additional build options for md5
    --with-md5-asm                     use md5 assembler sources
  
    --with-sha1=DIR                    set path to sha1 library sources
    --with-sha1-opt=OPTIONS            set additional build options for sha1
    --with-sha1-asm                    use sha1 assembler sources
  
    --with-zlib=DIR                    set path to zlib library sources
    --with-zlib-opt=OPTIONS            set additional build options for zlib
    --with-zlib-asm=CPU                use zlib assembler sources optimized
                                       for the specified CPU, valid values:
                                       pentium, pentiumpro
  
    --with-libatomic                   force libatomic_ops library usage
    --with-libatomic=DIR               set path to libatomic_ops library sources
  
    --with-openssl=DIR                 set path to OpenSSL library sources
    --with-openssl-opt=OPTIONS         set additional build options for OpenSSL
  
    --with-debug                       enable debug logging
  指定编译参数,进行安装:
  [root@node0 nginx-1.8.0]# ./configure --prefix=/app/nginx-1.8.0 --with-http_ssl_module
  ......
  checking for PCRE library in /usr/local/ ... not found
  checking for PCRE library in /usr/include/pcre/ ... not found
  checking for PCRE library in /usr/pkg/ ... not found
  checking for PCRE library in /opt/local/ ... not found
  # 导致编译检查不通过报错,由于缺少pcerpcre-devel导致
  ./configure: error: the HTTP rewrite module requires the PCRE library.
  You can either disable the module by using --without-http_rewrite_module
  option, or install the PCRE library into the system, or build the PCRE library
  statically from the source with nginx by using --with-pcre=<path> option.
  
  ......
  checking for zlib library ... found
  creating objs/Makefile  # 表示安装完成
  
  Configuration summary
    + using system PCRE library
    + using system OpenSSL library
    + md5: using OpenSSL library
    + sha1: using OpenSSL library
    + using system zlib library
  
    nginx path prefix: &quot;/app/nginx-1.8.0&quot;
    nginx binary file: &quot;/app/nginx-1.8.0/sbin/nginx&quot;
    nginx configuration prefix: &quot;/app/nginx-1.8.0/conf&quot;
    nginx configuration file: &quot;/app/nginx-1.8.0/conf/nginx.conf&quot;
    nginx pid file: &quot;/app/nginx-1.8.0/logs/nginx.pid&quot;
    nginx error log file: &quot;/app/nginx-1.8.0/logs/error.log&quot;
    nginx http access log file: &quot;/app/nginx-1.8.0/logs/access.log&quot;
    nginx http client request body temporary files: &quot;client_body_temp&quot;
    nginx http proxy temporary files: &quot;proxy_temp&quot;
    nginx http fastcgi temporary files: &quot;fastcgi_temp&quot;
    nginx http uwsgi temporary files: &quot;uwsgi_temp&quot;
    nginx http scgi temporary files: &quot;scgi_temp&quot;
  [root@node0 nginx-1.8.0]# make && make install # 编译安装开始
  ......
  cp conf/scgi_params             '/app/nginx-1.8.0/conf/scgi_params.default'
  test -f '/app/nginx-1.8.0/conf/nginx.conf'              || cp conf/nginx.conf '/app/nginx-1.8.0/conf/nginx.conf'
  cp conf/nginx.conf '/app/nginx-1.8.0/conf/nginx.conf.default'
  test -d '/app/nginx-1.8.0/logs'                 || mkdir -p '/app/nginx-1.8.0/logs'
  test -d '/app/nginx-1.8.0/logs' ||              mkdir -p '/app/nginx-1.8.0/logs'
  test -d '/app/nginx-1.8.0/html'                 || cp -R html '/app/nginx-1.8.0'
  test -d '/app/nginx-1.8.0/logs' ||              mkdir -p '/app/nginx-1.8.0/logs'
  make[1]: Leaving directory `/src/nginx-1.8.0'  # 安装完成
  [root@node0 nginx-1.8.0]# ll /app/nginx-1.8.0/
  total 16K
  drwxr-xr-x. 2 root root 4.0K Nov 19 17:50 conf
  drwxr-xr-x. 2 root root 4.0K Nov 19 17:50 html
  drwxr-xr-x. 2 root root 4.0K Nov 19 17:50 logs
  drwxr-xr-x. 2 root root 4.0K Nov 19 17:50 sbin
  自动配置yum源:
  使用yum-config-manager --add yum源地址
  yum仓库的定义:
  安装createrepo软件包
  将软件集中到某个目录,使用createrepo 文件路径 定义仓库数据
  [root@node0 test]# mkdir myrpm   # 上传文件
  [root@node0 test]# cd myrpm/ # 进入目录
  [root@node0 myrpm]# rz  # 上传RPM包文件
  rz waiting to receive.
  Starting zmodem transfer.  Press Ctrl+C to cancel.
  Transferring bash-completion-2.1-6.el7.noarch.rpm...
    100%      85 KB      85 KB/sec    00:00:01       0 Errors  
  Transferring cmatrix-1.2a-1.i386.rpm...
    100%      31 KB      31 KB/sec    00:00:01       0 Errors  
  Transferring convmv-1.15-2.el6.noarch.rpm...
    100%      30 KB      30 KB/sec    00:00:01       0 Errors  
  Transferring elasticsearch-2.3.4.rpm...
    100%   26794 KB    8931 KB/sec    00:00:03       0 Errors   
  Transferring ntfs-3g-2015.3.14-2.el6.x86_64.rpm...
    100%     262 KB     262 KB/sec    00:00:01       0 Errors  
  Transferring xsnow-1.42-10.i386.rpm...
    100%      32 KB      32 KB/sec    00:00:01       0 Errors  
  [root@node0 myrpm]# yum install createrepo -y   # 安装软件
  [root@node0 myrpm]# createrepo /test/myrpm/    # 生成仓库数据库文件
  Spawning worker 0 with 6 pkgs
  Workers Finished
  Gathering worker results
  Saving Primary metadata
  Saving file lists metadata
  Saving other metadata
  Generating sqlite DBs
  Sqlite DBs complete  
  [root@node0 test]# ll /test/myrpm/repodata/  # 查看数据文件
  total 36K
  -rw-r--r--. 1 root root 6.0K Nov 19 20:47 03a154d48fdf298f64be9dd325edd7fc1c9c5ca89b2a3f84cd75ef969ca0c3f6-primary.sqlite.bz2
  -rw-r--r--. 1 root root 2.2K Nov 19 20:47 14b81f2c0f3f34e2e795772ae781dbde2f99764ed240f0129cf23283b16ac713-filelists.xml.gz
  -rw-r--r--. 1 root root 2.3K Nov 19 20:47 88d559663d31ee880bcbb7125ba44570bedbdf1f616d106bdc1383c6eba69ced-other.xml.gz
  -rw-r--r--. 1 root root 3.6K Nov 19 20:47 a6089e2ae8fdd4e0b1a90cb17b32c2134b7390ebb494e9b2952e43fa4abe9470-other.sqlite.bz2
  -rw-r--r--. 1 root root 3.2K Nov 19 20:47 bf4ec4b1841845ba5946099ebc4ae322ff0c1b035d57d9ecab26a89d3bed29fe-primary.xml.gz
  -rw-r--r--. 1 root root 4.1K Nov 19 20:47 da67962a6c9f96f8dff0a4dcb1da49da6c8ea8334b295c7db845d0682dc04dc8-filelists.sqlite.bz2
  -rw-r--r--. 1 root root 3.0K Nov 19 20:47 repomd.xml
  [root@node0 test]# yum-config-manager --add file:///test/myrpm/   # 建立Yum
  Loaded plugins: fastestmirror
  adding repo from: file:///test/myrpm/
  
  [test_myrpm_]
  name=added from: file:///test/myrpm/
  baseurl=file:///test/myrpm/
  enabled=1
  repodata 目录:
  filelist.xml.gz 更新文件的集中列表
  other.xml.gz 其他更新包的列表
  primary.xml.gz 主要更新包的列表
  repomd.xml 提供.xml.gz 下载和校验信息
  ************************************************************************************************
  执行一个命令的时候没有找到可能的原因:
  [root@node0 test]# mycommand
  -bash: mycommand: command not found
  1.这个命令对应的软件包没有安装。
  2.这个软件对应的命令名称不同。
  3.这个命令的路径没有在环境变量中设置。
  4.这个命令所在的磁盘没有挂载或者是所在磁盘损坏。
  5.这个命令所在位置是LVM分区,启动时LVM失败或者是LVM损坏。
  ************************************************************************************************

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-449601-1-1.html 上篇帖子: Centos7.3部署MFS文件系统 下篇帖子: 装完Centos7提示Initial setup of CentOS Linux 7 (core)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表