rpm命令

命名方式  name-VERSION-release.arch.rpm

常见的arch:

x86:   i386  i486    i586   i686

x86_64:   x64   x86_64   amd64

跟平台无关:   noarch

命令列表:

安装                                       rpm -ivh vsftpd-2.2.2-24.el7.x86_64.rpm
      卸载                                       rpm -e vsftpd(必须是准确的包名)
      查询                                       rpm -q vsftpd(必须是准确的包名)
      模糊查询                                rpm -qa | grep "vsft"
      查看安装包里包含的文件       rpm -ql   vsftpd
      查看文件来自哪个包              rpm -qf    /usr/bin/tree
      查看未安装包的文件列表       rpm -ql -p /root/vsftpd-2.2.2-24.el7.x86_64.rpm
      查看配置文件                         rpm  -qc   vsftpd
      查看包依赖的包                      rpm  -qR  vsftpd

数据库                                    /var/lib/rpm

查看rpm包内的详细信息

rpm2cpio    /misc/treex86-64.rpm  | cpio  -tv(预览详细信息)    或者 cpio -idv(解压rpm包到当前目录)  或者  cpio -idv  /usr/bin/tree(解压指定文件)

yum命令

解决rpm包安装依赖问题管理工具            最新的工具叫  dnf

基于c/s结构,分为服务端和客户端.  yum命令是对rpm命令的二次封装,yum的底层还是需要依赖于rpm命令的.两者不是替代和被替代的关系.

工作原理  客户端发请求后,服务端首先会到meta data中查找是否存在需要安装的rpm包和依赖包.客户端会缓存服务端的meta data

yum install 首先会下载对应包的元数据缓存到本地,然后再下载对应的rpm包,下载后的rpm包安装完成后默认会被删除.

yum默认会安装最新版本的软件包.

客户端只需要配置一个文件

repodata的父目录就是需要配置的仓库目录(baseurl)
        baseurl    可以同时指定多个路径
        baseurl=file:///mnt/cdrom      http://      https://        ftp://
        mirrorlist=file:///root/repolist

yum命令不允许在同一机器上同时并行运行多个yum的安装命令,只能串行运行.

yum list

带@符号的包表示已经被安装,@anaconda表示此包被安装操作系统的程序所安装

@base 表示已经通过yum命令从base仓库中下载安装          base 表示此rpm包存储在base仓库中,但是还没有被安装.

服务端

1.各种rpm包   2.rpm包的元数据

3.创建自己的yum源仓库
       createrepo /data           /data目录下存放自己的rpm包

4.搭建yum服务器

        1.安装httpd服务器 httpd根目录默认是/var/www/html
        2.cd /var/www/html && mkdir centos/7/os/x86_64
       3.把光盘中的内容拷贝到仓库目录
          mount /dev/sr0 centos/7/os/x86_64

yum repolist
  yum list *ftp*
  yum install httpd 或者 yum install /mnt/cdrom/httpd.rpm

yum history  |        yum history list 12   |     yum   history info 12

yum history undo 12   |    yum history redo  12

yum包组功能

yum   grouplinstall      group1

yum   grouplist            group1

yum   groupremove    group1

源码编译

rpm 和 yum 包的安装路径在打包之前就已经固定好了,无法改变.

1.软件安装路径

2.启用哪些功能

开发工具
   1.  autoconf:生成configure脚本
   2.  automake:生成Makefile.in

3. ./configure --prefix=PREFIX  指定安装软件的总文件夹,方便软件的卸载         卸载的时候直接删除此总文件夹即可.  生成Makefile文件.

4.make                 根据Makefile文件来构建二进制程序

5.make install       拷贝相关文件到安装目录

6.  ./configure --prefix=/app  --sysconfdir=/etc/app   --disable-env  --enable-charset-lite

rescue救援模式

进入救援模式会加载一个小的Linux操作系统,和硬盘的故障没有关系.系统启动后会把原来硬盘上的系统挂载到/mnt/sysimage目录上

[root@centos7 ~]# ldd /bin/ls                                   查看命令需要调用(依赖)的库
   linux-vdso.so.1 => (0x00007ffdb09f7000)
   libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f0f1807e000)
   libcap.so.2 => /lib64/libcap.so.2 (0x00007f0f17e79000)
   libacl.so.1 => /lib64/libacl.so.1 (0x00007f0f17c6f000)
   libc.so.6 => /lib64/libc.so.6 (0x00007f0f178ac000)
   libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f0f1764a000)
   libdl.so.2 => /lib64/libdl.so.2 (0x00007f0f17445000)
   lib64/ld-linux-x86-64.so.2 (0x0000555b426e9000)
   libattr.so.1 => /lib64/libattr.so.1 (0x00007f0f17240000)
   libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0f17024000)

创建软链接需要注意点:

libc.so.6   -> libc-2.17.so

在救援模式下不能使用绝对路径的方式  ln -s /mnt/sysimage/libc-2.17.so    /mnt/sysimage/libc.so.6  这样系统重启后无法找到/mnt/sysimage目录而失败

必须使用相对路径 cd /mnt/sysimage/      ln -s libc-2.17.so    libc.so.6

2.ldconfig -p

3.mount   /dev/sr0     /mnt/cdrom
    安装rpm包指定以什么目录为根
        rpm -ivh /mnt/packages/rpm_4.8.rpm      --root=/mnt/sysimage/
    切换根目录
       chroot /mnt/sysimage/

Linux软件包安装的更多相关文章

  1. Linux 软件包安装管理

    转自:http://www.cnblogs.com/Quains/archive/2012/01/03/2311049.html 本文主要是记录下RedHat系列的软件包管理. 内容分为以下三个部分: ...

  2. Linux软件包安装(rpm、yum、apt-get)

    转载自:https://blog.csdn.net/wzq__janeGreen_/article/details/81774924 rpm/yum适用于Redhat.CentOS.Suse等平台: ...

  3. Linux软件包安装和卸载

    安装软件包的三种方法 1.rpm.yum.源码包 2.yum会把依赖的包都安装上 rpm包介绍 3.rmp报名组成结构:yum-3.4.3-132.el7.centos.0.1.noarch.rpm ...

  4. linux 软件包安装方式选择、安装位置、源码包安装

    对外提供服务,比如apache,应使用源码包安装对内提供服务,比如gcc,只是我自己使用,使用rpm包安装 rpm包不需要指定安装位置,源码包的安装需要手动指定安装位置 rpm包默认安装位置/etc/ ...

  5. Linux学习笔记之linux软件包安装以及源的替换

    先是软件源的替换,在刚安装的Ubuntu中会配有原先的软件源,所以如果要替换时,可在网上找与自己ubuntu相对应的软件源,比如我的ubuntu版本为12.04,所以我得找到相对应能够适用Ubuntu ...

  6. 〖Linux〗关于Linux软件包安装位置、版本查询

    1. 查询版本 aptitude show [软件] 2. 查询路径 dpkg -L [软件] whereis [软件] which [软件]

  7. linux软件包的安装和卸载

    这里分两种情况讨论:二进制包和源代码包. 一.linux二进制分发软件包的安装和卸载 Linux软件的二进制分发是指事先已编译好二进制形式的软件包的发布形式,其长处是安装使用容易,缺点则是缺乏灵活性, ...

  8. linux笔记:linux软件包管理,软件安装位置

    linux软件包简介 软件包分类:1.源码包(用C语言等编写的源代码,没有进行编译):脚本安装包(对源码包进行了安装优化的源码包)优点:开源,可修改可以自由选择所需的功能编译安装,更适合自己的系统,稳 ...

  9. Linux 下安装python软件包(pip、nose、virtualenv、distribute )

    新手刚开始学习Python,目前学习<笨方法学python>ing- 在学习习题46时需要安装几个软件包:pip.nose.virtualenv.distribute !在此记录Linux ...

随机推荐

  1. [Unity3D] 04 - Event Manager

    message消息管理 脚本与GameObject的关系 被显式添加到 Hierarchy 中的 GameObject 会被最先实例化,GameObject 被实例化的顺序是从下往上. GameObj ...

  2. Puppet软件资源管理

    1.实现的功能:     管理那些软件包被安装,那些软件包被卸载     管理软件包是否更新     要求系统配置yum源(RedHat系统).zypper源(Suse系统)等等 2.可用参数: en ...

  3. HandlerSocket介绍

    HandlerSocket的原理 HandlerSocket的应用场景: MySQL自身的局限性,很多站点都采用了MySQL+Memcached的经典架构,甚至一些网站放弃MySQL而采用NoSQL产 ...

  4. Spring学习笔记--Spring简介

    1.spring:给软件行业带来了春天; 2.spring的理念:spring框架的初衷是使的现有的更加实用,spring不是创造轮子(技术或框架),而是使现有的轮子更好的运转;spring本身是一个 ...

  5. springCloud学习之服务注册和发现

    leader让完一个简单的springcloud的demo,自己之前听说过springcloud微服务,但是没有重视.现在网上查各种资料,但是感觉不怎么样啊,还是不会,明天晚上把代码给他看,天啦,这个 ...

  6. Jenkins Docker安装及Docker build step插件部署配置

    生产部署环境:A:192.168.1.2 B:192.168.1.3  两台服务器系统均是Centos 7.3 , Docker版本都1.12.6 Jenkins安装操作步骤: 1.在A服务器上使用命 ...

  7. [Android实例] Android Studio插件-自动根据布局生成Activity等代码1.4 (开源)(申明:来源于网络)

    [Android实例] Android Studio插件-自动根据布局生成Activity等代码1.4 (开源)(申明:来源于网络) 地址:http://www.eoeandroid.com/thre ...

  8. [No0000F2]ip安全监视器

    IPSec快速式策略 @echo off :again set num= set fastpolicyname= set issoft= set livetime= set fps= setlocal ...

  9. shell脚本的基本结构以及如何执行

    1.shell脚本通常以.sh为后缀,不是说不带这个.sh脚本就不会执行,而是大家一种通用的命名规范而已 2.shell脚本中的第一行一定是:#! /bin/bash.该命令说明,该文件使用的是bas ...

  10. Java进阶面试题大集合-offer不再是问题

    Java基础 1.List 和 Set 的区别 2.HashSet 是如何保证不重复的 3.HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)? 4.HashMap ...