美文网首页
tar, sudo, 虚拟机管理, rpm, yum, 升级内核

tar, sudo, 虚拟机管理, rpm, yum, 升级内核

作者: epiiplus1equal0 | 来源:发表于2019-03-07 23:32 被阅读0次

1. tar

tar -cvf etc.tar /etc # 打包, 不会删除原文件
gzip etc.tar # 压缩, 会删除原文件, 生成etc.tar.gz文件
tar -zcvf etc.tar.gz /etc # 使用gz压缩格式归档
    -jcvf etc.tar.bz2     # 使用bzip2格式压缩归档   
    -Jcvf etc.tar.xz      # 使用xz格式压缩归档
    # 可用于备份, 对root默认压缩归档时保留权限
tar -zxvf etc.tar.gz -C /data # 将etc.tat.gz开包并解压到/data目录下

2. sudo

# 只有root有权使用visudo命令编辑/etc/sudoer文件, 语法如下:
user machine=(run as) commands
     local=(ALL) 只允许本机用户使用所有用户身份
     run as: 以谁的身份来运行
Host_Alias 别名 = 主机名1, 主机名2
User_Alias 别名 = user1, user2
Cmnd_Alias 别名 = cmnd1, cmnd2
%wheel     ALL = (ALL) ALL # 给组whell赋权
user2      ALL = (user1) /usr/bin/touch 
# 给所有来源以user2身份登录的主机user1的权限执行touch命令, 
# 特别注意用/usr/bin/touch生成的文件所有人为user1, 以及此时sudo该如何使用:
sudo -u user1 touch test_file # 默认以root身份, 要以其他人身份执行时必须使用-u指定用户
# 可以不需要密码使用sudo:
user2 ALL = ALL NOPASSWD: /usr/bin/touch, /usr/bin/mkdir

3. 虚拟机管理

  • 需要先设置CPU, 使CPU支持虚拟化

下面有两套管理命令:

virt-manager                # 以图形界面的方式列出虚拟机
virsh list --all            # 列出所有虚拟机
virsh shutdown vm1          # 关闭虚拟机vm1
      destory               # 强制关闭vm1
      reboot                # 重启
      suspend|resume        # 暂停|继续
      save vm1 /tmp/vm1.bak # 将vm1备份到宿主机的/tmp/下并命名为vm1.bak
      restore /tmp/vm1.bak  # 还原
      autostart             # 自动开启
      console               # 使用console口连接连接虚拟机, 关机时仍会有内容显示
        ctrl ]              # 此时需要用ctrl加]才能退出
rht-vmctl reset vm1          # 重置虚拟机vm1
          full reset         # 强制重新安装虚拟机
          start|stop|powoff|status
          save|restore       # 用法同上
          get                # 查看虚拟机的信息

4. yum

现在yum多用于安装软件包, 因为其可以非常方便的帮助用户解决依赖性关系, 省去了用户自己去寻找并安装所依赖的软件包花费的功夫, rpm命令多用于查询某些软件包或配置文件等操作

安装包:

  1. 源码包: 未经编译
  2. 二进制包: 经过编译

rpmfile:

  • (package)包名-主版本号-次版本号.CPU架构_操作系统位数.扩展名
  • noarch: 不依赖架构

rpm: redhat package manager

# 配置文件: /etc/yum.conf
yum install package | @packagegroup | rpmfile
# d: 将安装包下载到本地缓存/var/cache/yum/目录下, 不安装!
yum list [all | updates]
# @anaconda: 表示安装包已随系统安装时一同安装
# @dvd: 表示已从dvd出安装
yum list installed # 列出已安装
         available # 列可安装
         updates   # 列可更新
yum grouplist
    groupinstall   # 安装包组
yum groupinstall "X window system" gnome # 安装图形化界面所需工具包
                 "virtualization*" # 安装虚拟化所需包组, 支持通配符
    langavailable  # 列可用语言
    langinstall zh # 安装中文包
    info vsftpd    # 查看安装包信息, 类似于rpm -qi
    groupinfo KDE  # 列包组信息
    search
    provides "*/tree" # 查找符合"*/tree"模式的文件来自于哪个包, 类似于rpm -qf file
    localinstall   # 安装第三方包时先尝试在本地库中解决依赖关系
    remove         # 卸载, 若配置文件被修改, 删包时会保留被修改过的配置文件
    update package | rpmfile | @grouprpm
    reinstall      # 强制重新安装, 类似rpm --force或rpm --replacepkgs, 
                      # 在配置文件丢失时可用

# 手动配置yum源:
vi /etc/yum.repo.d/dvd.repo
[dvd]
name = 描述信息(必写)
enabled = 0 | 1 # 是否开启
baseurl = 软件包位置 # 支持http://和file://格式, 指向安装源(repodata所在目录)
gpgcheck = 0 | 1 # 是否检查包的完整性
gpgkey = file:///etc/pki/rpm-gpg/公钥 # 指定使用哪把公钥检查
# 配置完yum源后记得执行以下命令:
yum clean all # 清除yum缓存
yum list all # 重新生成缓存
# 生成缓存时url或list出错的可能原因:
# 1. 名称写错
# 2. DNS配错

# 如何制作私有yum仓库:
# 1. 安装createrepo
yum -y install createrepo
# 2. 生成repodata目录, 建立私有仓库
createrepo -v 软件包所在目录 # 查找该目录下所有软件包(包括子目录也会查找)

# yum是如何解决包之间的依赖性关系的?
#   repodata目录下有一个gz压缩格式的文件: *-filelist.xml.gz, 
#   将此文件解压后可看到其中内容与rpm -ql所列内容一致, 
#   yum通过这个文件里面的记录依次去解决需安装的包或文件

5. rpm

rpm -ivh rpmfile # 安装rpmfile,支持ftp://, http://等在线安装
    -e           # 卸载
    -U           # upgrade
    -F
    --oldpackage # 降级安装, 默认安装最新版本的包, 使用此命令可安装旧版本
    --replacefiles # 忽略冲突, 安装软件包时有些文件可能已在其他软件包被安装时
                         # 就一同被安装, 此选项会替换属于其他软件包的文件
    --nodeps       # 忽略包的依赖性关系
# rpm的数据库: /var/lib/rpm/
rpm -qa | grep package 用于查询某个软件包是否安装
rpm -qi package  # 查看package的详细信息
    -ql          # 查看软件包生成的所有文件
    -qc          #                配置文件
    -qf file     # 查询某个文件来自于哪个包, 已经安装过的包, 
                 # 在被删除后根据文件名依旧能查到, 因为此查询是基于rpm数据库的
rpm2cpio rpmfile | cpio -id # 将rpm包生成的内容抽取出来, 可以选取在其中有用的配置文件
rpm -q --changelog  # 查询已安装的包的安装记录
    -qp             #     未安装
    -q --scripts    # 查看安装软件包时执行的脚本(软件包已被安装)
    -qp --scripts   #                               未被安装
    # 软件包封装有脚本, 在安装时会被执行, 可能被人植入恶意代码, 因此需验证软件包是否安全
    -V              # (安装后)根据gpg公钥验证
    -V -p
    -V -a
    -K              # (安装前)根据gpg公钥验证
    -qa gpgpubkey   # 查看系统的gpg公钥
    --import RPM-GPG-KEY-redhate-release # 手动导入密钥至rpm数据库
    -e gpg-pubkey-2fa658e0-45700c69 # 手动卸载公钥

6. 升级内核

cat /etc/redhat-release # 查看系统版本(系统一般更新快)
uname -r                #     内核版本(更新慢)
www.kernel.org          # 此网站可查看所有内核版本
# 现代的操作系统 = kernel + GNU操作系统组件
yum update kernel # 升级内核, 平行安装, 不会删除旧内核, 
                               # 因为新旧内核的驱动不匹配会产生问题
# 更新内核时千万不可打断, 同样会出问题!!!
# 换一种方法升级内核更佳:
wget 内核包
rpm -ivh 内核包 # 先从网络yum源下载新的内核包至本地, 再安装, 
                          # 防止网络问题导致安装内核出错

7. 源码安装

# (1)
./configure 检测安装环境是否符合安装条件, 同时可自定义某些功能
            --help
            --prefix=PREFIX # 自定义软件包的安装目录, 默认是/usr/local/
# (2)
make         # 编译
# (3)
make install # 编译安装
     uninstall #   卸载

相关文章

网友评论

      本文标题:tar, sudo, 虚拟机管理, rpm, yum, 升级内核

      本文链接:https://www.haomeiwen.com/subject/jhgkpqtx.html