C/C++教程

软件包与systemctl命令

本文主要是介绍软件包与systemctl命令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
liunx软件包的分类
  • 源码包
  • 二进制包(rpm包)
源码包特点
  • 源码包缺点:安装过程麻烦,需要用户手动编译,需要手动解决软件包的一栏关系
  • 源码包的优点:软件源代码开放,允许用户二次开发,安装灵活,可以自定义安装路径与安装功能,卸载方便
rpm特点
  • rpm缺点:所有功能用户无法自定义,安装没有源码包灵活,不可以看到软件源代码
  • rpm优点:由于已经提前编译过,所以安装简单,使用方便
  • rpm包命名规则:libSM-1.2.2-2.el7.x86_64
    • libSM #包名
    • 1.2.2 #软件包版本,主版本,次版本,修改版本
    • 2 #补丁次数
    • el7 #适合的系统
    • x86_64 #适合的cpu架构
rpm管理软件包
  • rpm命令管理软件包需要手动解决包之间的依赖关系

    • 树形依赖:a-->b-->c-->d
    • 环形依赖:a-->b-->c---a
    • 模块依赖:需要模块文件支持,模块查询地址:www.rpmfind.net
  • 命令格式:rpm 选项... 软件包全名

  • 常用选项:

    • -q #仅查询软件是否安装
    • -qa #列出所有已经安装在系统中的所有团建,可配个grep过滤指定软件包
    • -qi #列出软件包详细信息,包括版本与官网的地址
    • -qf #后边接文件名,查询配置文件由那个软件包产生
    • -ql #列出与该软件包相关的所有文件与目录存放位置
    • -ivm #i安装,v显示详细信息,h显示安装进度
    • -Uvh #升级安装软件包
    • -e #卸载软件包
    • --import #导入红帽签名
    #挂载镜像文件
    [root@localhost /]# mount /dev/cdrom /centos/
    mount: /dev/sr0 写保护,将以只读方式挂载
    #安装vsftpd服务(此服务无依赖)
    [root@localhost ~]# rpm -q vsftpd
    未安装软件包 vsftpd 
    [root@localhost ~]# rpm -ivh /centos/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm 
    警告:/centos/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
    准备中...                          ################################# [100%]
    正在升级/安装...
       1:vsftpd-3.0.2-22.el7              ################################# [100%]
    [root@localhost ~]# 
    [root@localhost ~]# rpm -q vsftpd 
    vsftpd-3.0.2-22.el7.x86_64
    [root@localhost ~]# 
    [root@localhost ~]# rpm -qa |grep vsftpd
    vsftpd-3.0.2-22.el7.x86_64
    [root@localhost ~]# 
    
    #查询vsftpd的安装位置
    [root@localhost ~]# rpm -ql vsftpd 
    /etc/logrotate.d/vsftpd
    /etc/pam.d/vsftpd
    /etc/vsftpd
    /etc/vsftpd/ftpusers
    /etc/vsftpd/user_list
    /etc/vsftpd/vsftpd.conf
    /etc/vsftpd/vsftpd_conf_migrate.sh
    /usr/lib/systemd/system-generators/vsftpd-generator
    /usr/lib/systemd/system/vsftpd.service
    /usr/lib/systemd/system/vsftpd.target
    /usr/lib/systemd/system/vsftpd@.service
    /usr/sbin/vsftpd
    /usr/share/doc/vsftpd-3.0.2
    /usr/share/doc/vsftpd-3.0.2/AUDIT
    /usr/share/doc/vsftpd-3.0.2/BENCHMARKS
    /usr/share/doc/vsftpd-3.0.2/BUGS
    /usr/share/doc/vsftpd-3.0.2/COPYING
    /usr/share/doc/vsftpd-3.0.2/Changelog
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README.configuration
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.conf
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.xinetd
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/README
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/README.configuration
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/README
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/README.configuration
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/hosts.allow
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/README
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_HOSTS
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_HOSTS/README
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/README
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/README.configuration
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/logins.txt
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS_2
    /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS_2/README
    /usr/share/doc/vsftpd-3.0.2/FAQ
    /usr/share/doc/vsftpd-3.0.2/INSTALL
    /usr/share/doc/vsftpd-3.0.2/LICENSE
    /usr/share/doc/vsftpd-3.0.2/README
    /usr/share/doc/vsftpd-3.0.2/README.security
    /usr/share/doc/vsftpd-3.0.2/REWARD
    /usr/share/doc/vsftpd-3.0.2/SECURITY
    /usr/share/doc/vsftpd-3.0.2/SECURITY/DESIGN
    /usr/share/doc/vsftpd-3.0.2/SECURITY/IMPLEMENTATION
    /usr/share/doc/vsftpd-3.0.2/SECURITY/OVERVIEW
    /usr/share/doc/vsftpd-3.0.2/SECURITY/TRUST
    /usr/share/doc/vsftpd-3.0.2/SIZE
    /usr/share/doc/vsftpd-3.0.2/SPEED
    /usr/share/doc/vsftpd-3.0.2/TODO
    /usr/share/doc/vsftpd-3.0.2/TUNING
    /usr/share/doc/vsftpd-3.0.2/vsftpd.xinetd
    /usr/share/man/man5/vsftpd.conf.5.gz
    /usr/share/man/man8/vsftpd.8.gz
    /var/ftp
    /var/ftp/pub
    
    #查询vsftpd的详细信息
    [root@localhost ~]# rpm -qi vsftpd 
    Name        : vsftpd
    Version     : 3.0.2
    Release     : 22.el7
    Architecture: x86_64
    Install Date: 2022年08月20日 星期六 00时26分42秒
    Group       : System Environment/Daemons
    Size        : 356236
    License     : GPLv2 with exceptions
    Signature   : RSA/SHA256, 2017年08月11日 星期五 04时17分26秒, Key ID 24c6a8a7f4a80eb5
    Source RPM  : vsftpd-3.0.2-22.el7.src.rpm
    Build Date  : 2017年08月03日 星期四 14时10分20秒
    Build Host  : c1bm.rdu2.centos.org
    Relocations : (not relocatable)
    Packager    : CentOS BuildSystem <http://bugs.centos.org>
    Vendor      : CentOS
    URL         : https://security.appspot.com/vsftpd.html
    Summary     : Very Secure Ftp Daemon
    Description :
    vsftpd is a Very Secure FTP daemon. It was written completely from
    scratch.
    [root@localhost ~]# 
    
    #查看ls文件由那个软件包产生
    [root@localhost ~]# rpm -qf /usr/bin/ls
    coreutils-8.22-21.el7.x86_64
    [root@localhost ~]# 
    
yum软件包仓库
  • yum软件仓库:提供众多软件包的仓库,自动解决软件包之间复杂的依赖关系

  • yum常用命令

    • yum repolist #列出仓库可用软件包
    • yum list 软件包名 #查看系统中提供的软件包
    • yum list updates #查看系统中可供本机升级的软件包
    • yum install 软件包名 #安装软件包
    • yum update 软件包名 #升级软件包名
    • yum remove 软件包名 #卸载软件包
    • yum clean all #清除仓库缓存
    • yum provides 文件名 #查看文件由那个软件包产生
  • 本地yum源配置

    [root@localhost ~]# cat /etc/yum.repos.d/local.repo
    [local]  #仓库名称,名称自定义,但具有唯一性
    name=local  #仓库描述
    baseurl=file:///centos   #指定软件仓库地址,file://用于指定本地软件包存放位置
    enabled=1  #软件仓库是否启动,1启动,0不启动
    gpgcheck=0  #是否检测软件包签名,0不检测,1检测
    [root@localhost ~]# 
    
    #检测仓库可用性
    [root@localhost ~]# yum repolist 
    已加载插件:fastestmirror, langpacks
    Determining fastest mirrors
    local                                                                            | 3.6 kB  00:00:00     
    (1/2): local/group_gz                                                            | 166 kB  00:00:00     
    (2/2): local/primary_db                                                          | 3.1 MB  00:00:00     
    源标识                                            源名称                                           状态
    local                                             local                                            3,971
    repolist: 3,971
    [root@localhost ~]# 
    
    
  • 网络yum源配置

    #阿里源配置
    [root@localhost yum.repos.d]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100   664  100   664    0     0    992      0 --:--:-- --:--:-- --:--:--   992
    [root@localhost yum.repos.d]# cat epel.repo 
    [epel]
    name=Extra Packages for Enterprise Linux 7 - $basearch
    baseurl=http://mirrors.aliyun.com/epel/7/$basearch
    failovermethod=priority
    enabled=1
    gpgcheck=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
     
    [epel-debuginfo]
    name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
    baseurl=http://mirrors.aliyun.com/epel/7/$basearch/debug
    failovermethod=priority
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    gpgcheck=0
     
    [epel-source]
    name=Extra Packages for Enterprise Linux 7 - $basearch - Source
    baseurl=http://mirrors.aliyun.com/epel/7/SRPMS
    failovermethod=priority
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    gpgcheck=0
    [root@localhost yum.repos.d]# curl -o /etc/yum.repos.d/Centos-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100  2523  100  2523    0     0   7901      0 --:--:-- --:--:-- --:--:--  7884
    [root@localhost yum.repos.d]# yum clean 
    已加载插件:fastestmirror, langpacks
    错误:清理命令需要参数:headers, packages, metadata, dbcache, plugins, expire-cache, rpmdb, all
    [root@localhost yum.repos.d]# yum clean all 
    已加载插件:fastestmirror, langpacks
    正在清理软件源: base epel extras local updates
    Cleaning up everything
    Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
    Cleaning up list of fastest mirrors
    #生成缓存
    [root@localhost yum.repos.d]# yum makecache 
    已加载插件:fastestmirror, langpacks
    Determining fastest mirrors
     * base: mirrors.aliyun.com
     * extras: mirrors.aliyun.com
     * updates: mirrors.aliyun.com
    base                                                                             | 3.6 kB  00:00:00     
    epel                                                                             | 4.7 kB  00:00:00     
    extras                                                                           | 2.9 kB  00:00:00     
    local                                                                            | 3.6 kB  00:00:00     
    updates                                                                          | 2.9 kB  00:00:00     
    base/7/x86_64/primary_db       FAILED                                          
    http://mirrors.cloud.aliyuncs.com/centos/7/os/x86_64/repodata/6d0c3a488c282fe537794b5946b01e28c7f44db79097bb06826e1c0c88bad5ef-primary.sqlite.bz2: [Errno 14] curl#6 - "Could not resolve host: mirrors.cloud.aliyuncs.com; Unknown error"
    正在尝试其它镜像。
    (1/20): epel/x86_64/group_gz                                                     |  97 kB  00:00:00     
    (2/20): base/7/x86_64/group_gz                                                   | 153 kB  00:00:00     
    (3/20): epel/x86_64/updateinfo                                                   | 1.0 MB  00:00:01     
    (4/20): epel/x86_64/prestodelta                                                  |  332 B  00:00:00     
    (5/20): base/7/x86_64/other_db                                                   | 2.6 MB  00:00:04     
    (6/20): epel/x86_64/primary_db                                                   | 7.0 MB  00:00:12     
    (7/20): extras/7/x86_64/primary_db                                               | 247 kB  00:00:00     
    (8/20): extras/7/x86_64/other_db                                                 | 148 kB  00:00:00     
    (9/20): local/group_gz                                                           | 166 kB  00:00:00     
    (10/20): local/filelists_db                                                      | 3.1 MB  00:00:00     
    (11/20): local/primary_db                                                        | 3.1 MB  00:00:00     
    (12/20): local/other_db                                                          | 1.3 MB  00:00:00     
    base/7/x86_64/filelists_db     FAILED                                          s |  33 MB  00:00:24 ETA 
    http://mirrors.aliyuncs.com/centos/7/os/x86_64/repodata/d6d94c7d406fe7ad4902a97104b39a0d8299451832a97f31d71653ba982c955b-filelists.sqlite.bz2: [Errno 14] curl#7 - "Failed connect to mirrors.aliyuncs.com:80; Connection refused"
    正在尝试其它镜像。
    (13/20): epel/x86_64/other_db                                                    | 3.4 MB  00:00:06     
    (14/20): epel/x86_64/filelists_db                                                |  12 MB  00:00:22     
    (15/20): updates/7/x86_64/other_db                                               | 1.1 MB  00:00:02     
    (16/20): base/7/x86_64/primary_db                                                | 6.1 MB  00:00:10     
    (17/20): base/7/x86_64/filelists_db                                              | 7.2 MB  00:00:12     
    extras/7/x86_64/filelists_db   FAILED                                          s |  57 MB  00:00:13 ETA 
    http://mirrors.aliyuncs.com/centos/7/extras/x86_64/repodata/ceff3d07ce71906c0f0372ad5b4e82ba2220030949b032d7e63b7afd39d6258e-filelists.sqlite.bz2: [Errno 14] curl#7 - "Failed connect to mirrors.aliyuncs.com:80; Connection refused"
    正在尝试其它镜像。
    (18/20): extras/7/x86_64/filelists_db                                            | 277 kB  00:00:00     
    updates/7/x86_64/filelists_db  FAILED                                          s |  58 MB  00:00:13 ETA 
    http://mirrors.aliyuncs.com/centos/7/updates/x86_64/repodata/d821157a06efe1d225c819283a0cd00d4fdeabb5bba66b537cf0428940c0f771-filelists.sqlite.bz2: [Errno 14] curl#7 - "Failed connect to mirrors.aliyuncs.com:80; Connection refused"
    正在尝试其它镜像。
    (19/20): updates/7/x86_64/primary_db                                             |  17 MB  00:00:31     
    (20/20): updates/7/x86_64/filelists_db                                           | 9.4 MB  00:00:17     
    元数据缓存已建立
    [root@localhost yum.repos.d]# 
    
    
netstat |ss命令用于查看系统中启动的端口信息
  • -a 显示所有端口信息

  • -n 以数字格式显示端口号

  • -t 显示TCP连接的端口

  • -u 显示UDP连接的端口

  • -l 显示服务正在监听的端口信息

  • -p 显示监听端口的服务名称

    #查看ssh服务端口信息
    [root@localhost yum.repos.d]# ss -anptul |grep ssh
    tcp    LISTEN     0      128    127.0.0.1:6012                  *:*                   users:(("sshd",pid=14968,fd=9))
    tcp    LISTEN     0      128       *:22                    *:*                   users:(("sshd",pid=1308,fd=3))
    tcp    LISTEN     0      128    127.0.0.1:6010                  *:*                   users:(("sshd",pid=13813,fd=9))
    tcp    LISTEN     0      128    127.0.0.1:6011                  *:*                   users:(("sshd",pid=14804,fd=9))
    tcp    LISTEN     0      128     ::1:6012                 :::*                   users:(("sshd",pid=14968,fd=8))
    tcp    LISTEN     0      128      :::22                   :::*                   users:(("sshd",pid=1308,fd=4))
    tcp    LISTEN     0      128     ::1:6010                 :::*                   users:(("sshd",pid=13813,fd=8))
    tcp    LISTEN     0      128     ::1:6011                 :::*                   users:(("sshd",pid=14804,fd=8))
    [root@localhost yum.repos.d]# 
    
    
设置yum源的优先级
[root@localhost ~]# cat /etc/yum.repos.d/local.repo
[local]  
name=local  
baseurl=file:///centos   
enabled=1  
gpgcheck=0  
priority=1  #优先级为1-99之间,数字越小越优先
[root@localhost ~]# 
systemd管理服务
  • systemd是内核第一个加在的进程(pid=1),systemd负责整个liunx系统的运行与服务控制,systemd为用户提供了systemctl来管理rpm包安装的服务,如:启动,关闭,查看服务状态,服务随机自启

  • 服务的启动有两个阶段,一是系统开机是随着系统的启动而启动(随机自启),二是系统启动以后用户手动将服务启动

  • 常用命令:

    • systemctl star 程序名 #启动服务
    • systemctl restart 程序名 #重启服务
    • systemctl stop 程序名 #停止服务
    • systemctl enable 程序名 #设置服务随机自启
    • systemctl disable 程序名 #设置服务不随机自启
    • systemctl status 程序名 #查看服务状态
    • systemctl is-enable 程序名 #查看服务是否被设置随机自启
    #查看防火墙的服务状态
    [root@localhost yum.repos.d]# systemctl status firewalld
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
       Active: inactive (dead) since 三 2022-08-24 07:34:51 CST; 6h left
         Docs: man:firewalld(1)
      Process: 944 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
     Main PID: 944 (code=exited, status=0/SUCCESS)
    
    8月 24 07:22:40 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
    8月 24 07:22:41 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
    8月 24 07:34:50 localhost.localdomain systemd[1]: Stopping firewalld - dynamic firewall daemon...
    8月 24 07:34:51 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firewall daemon.
    [root@localhost yum.repos.d]# 
    
    #启动防火墙并重启防火墙
    [root@localhost yum.repos.d]# systemctl start firewalld.service 
    [root@localhost yum.repos.d]# systemctl restart firewalld.service 
    
    #停止防火墙
    [root@localhost yum.repos.d]# systemctl stop firewalld.service 
    #设置随机自启
    [root@localhost yum.repos.d]# systemctl enable firewalld.service 
    #设置不随机启动
    [root@localhost yum.repos.d]# systemctl disable firewalld.service 
    Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    #查看服务是否随机自启
    [root@localhost yum.repos.d]# systemctl is-enabled firewalld.service 
    disabled
    [root@localhost yum.repos.d]# 
    
    
这篇关于软件包与systemctl命令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!