linux系统安装包管理工具中文使用指南
xjzyy 代码搬运工

介绍常见 Linux 操作系统的安装包管理工具,主要介绍其使用命令!

包管理系统除了安装软件外,它还提供了工具来更新已经安装的包。包存储库有助于确保你的系统中使用的代码是经过审查的,并且软件的安装版本已经得到了开发人员和包维护人员的认可。

apk

Alpine Linux

==Alpine Linux== 是基于 musl libc 和 busybox 的面向安全的轻量级 Linux 发行版。Alpine 的体积非常小,Alpine 的 Docker 镜像大小仅 5 MB 左右。Alpine 功能比 buysbox 完善,还提供了软件包管理工具 ==apk== (Alpine Package Keeper)。

  • 使用示例
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    # 查看系统信息
    # cat /etc/*-release
    3.11.6
    NAME="Alpine Linux"
    ID=alpine
    VERSION_ID=3.11.6
    PRETTY_NAME="Alpine Linux v3.11"
    HOME_URL="https://alpinelinux.org/"
    BUG_REPORT_URL="https://bugs.alpinelinux.org/"

    # 更换阿里云的源
    cd /etc/apk/
    /etc/apk # cat repositories
    http://dl-cdn.alpinelinux.org/alpine/v3.11/main
    http://dl-cdn.alpinelinux.org/alpine/v3.11/community


    vi repositories
    https://mirrors.aliyun.com/alpine/v3.11/main/
    https://mirrors.aliyun.com/alpine/v3.11/community/
    #http://dl-cdn.alpinelinux.org/alpine/v3.11/main
    #http://dl-cdn.alpinelinux.org/alpine/v3.11/community

    # 安装vim命令
    /etc/apk # apk add vim
    fetch https://mirrors.aliyun.com/alpine/v3.11/main/x86_64/APKINDEX.tar.gz
    fetch https://mirrors.aliyun.com/alpine/v3.11/community/x86_64/APKINDEX.tar.gz
    (1/5) Installing xxd (8.2.3437-r0)
    (2/5) Installing lua5.3-libs (5.3.5-r2)
    (3/5) Installing ncurses-terminfo-base (6.1_p20200118-r4)
    (4/5) Installing ncurses-libs (6.1_p20200118-r4)
    (5/5) Installing vim (8.2.3437-r0)
    Executing busybox-1.31.1-r9.trigger
    OK: 38 MiB in 21 packages

    # 安装zip命令
    /etc/apk # apk add zip
    (1/2) Installing unzip (6.0-r7)
    (2/2) Installing zip (3.0-r7)
    Executing busybox-1.31.1-r9.trigger
    OK: 39 MiB in 23 packages

    apk install xxx
    apk search xxx # 支持正则
    apk info xxx # 查看包的详细信息
    apk show # list local package
    # 卸载并删除 包
    apk del openssh openntp vim
  • 升级

    upgrade命令升级系统已安装的所以软件包(一般包括内核),当然也可指定仅升级部分软件包(通过-u或–upgrade选择指定)。

    1
    2
    3
    apk update # 更新最新本地镜像源
    apk upgrade # 升级软件
    apk add --upgrade busybox # 指定升级部分软件包
  • 搜索
    1
    2
    3
    4
    apk search # 查找所以可用软件包
    apk search -v # 查找所以可用软件包及其描述内容
    apk search -v 'acf*' # 通过软件包名称查找软件包
    apk search -v -d 'docker' # 通过描述文件查找特定的软件包
  • 查看包信息
    1
    2
    3
    4
    # info命令用于显示软件包的信息。
    apk info # 列出所有已安装的软件包
    apk info -a zlib # 显示完整的软件包信息
    apk info --who-owns /sbin/lbu # 显示指定文件属于的包
  • 笔记
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    apk add iproute2 # ss vs netstat
    ss -ptl
    apk add drill # drill vs nslookup&dig

    crond # 开启 cron 服务
    crontab -l -e

    apk add xxx
    apk search -v xxx
    apk info -a xxx
    apk info
    echo -e "http://mirrors.aliyun.com/alpine/v3.6/main\nhttp://mirrors.aliyun.com/alpine/v3.6/community" > /etc/apk/repositories
    apk update

    # storage
    ibu # alpine local backup

    # network
    echo "shortname" > /etc/hostname
    hostname -F /etc/hostname
    /etc/hosts
    /etc/resolv.conf # conig DNS
    modprobe ipv6 # enable ipv6
    echo "ipv6" >> /etc/modules
    iface # config interface
    apk add iptables ip6tables iptables-doc
    /etc/init.d/networking restart # activate change
    apke add iputils # IPv6 traceroute
    traceroute6 ipv6.google.com
    awall # alpine wall
    # setup a openvpn server

    # post-install
    /etc/apk/repositories
    apk add cherokee --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/ --allow-untrusted
    apk search -v --description 'NTP' # show description and search from description
    apk info -a zlib
    apk info -vv|sort
    apk info -r -R # require / depency
    apk version -v -l '<' # show available updates
    apk upgrade -U -a
    apk add -u xxx # update xxx

    /etc/runlevels # runlevel
    apk add openrc # use openrc for init system
    rc-update add xxx # set to start on
    rc-service xxx start # equal -> /etc/init.d/xxx start
    rc-status

    adduser xxx
    passwd xxx

    apk add ansible # server
    ssh-keygen
    /etc/ansible/hosts
    apk add python # node
    ssh-copy-id

    apk add man man-pages mdocml-apropos less less-doc
    export PAGER=less
    /etc/rc.conf # /etc/rc.conf -> funny character
    apk add bash bash-doc bash-completion # bash
    apk add util-linux pciutils usbutils coreutils binutils findutils grep # grep / awk
    apk add build-base gcc abuild binutils binutils-doc gcc-doc # compile
    apk add cmake cmake-doc extra-cmake-modules extra-cmake-modules-doc
    apk add ccache ccache-doc

    apk add docker # docker
    rc-update add docker boot
    rc-service docker start
    apk add py-pip
    pip install docker-compose
    ln -s /usr/bin/docker-compose /usr/bin/doc

    # application
    apk add openssh # ssh
    rc-update add sshd
    /etc/init.d/sshd start
    /etc/sshd_config
    apk add dropbear # another openssh implementation

dpkg

Ubuntu、Debian

==dpkg== 命令是 ==Debian Linux== 系统用来安装、创建和管理软件包的实用工具。

  • 命令行使用
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # dpkg(选项)(参数)
    $ dpkg --help
    Usage: dpkg [<option> ...] <command>

    # 选项
    -i:安装软件包
    -r:删除软件包
    -P:删除软件包的同时删除其配置文件
    -L:显示于软件包关联的文件
    -l:显示已安装软件包列表
    --unpack:解开软件包
    -c:显示软件包内文件列表
    --confiugre:配置软件包

    # 参数
    Deb软件包:指定要操作的.deb软件包
  • 示例演示说明
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    # 安装包
    $ dpkg -i package.deb

    # 删除包
    $ dpkg -r package

    # 删除包(包括配置文件)
    $ dpkg -P package

    # 列出与该包关联的文件
    $ dpkg -L package

    # 显示该包的版本
    $ dpkg -l package

    # 解开deb包的内容
    $ dpkg --unpack package.deb

    # 搜索所属的包内容
    $ dpkg -S keyword

    # 列出当前已安装的包
    $ dpkg -l

    # 列出deb包的内容
    $ dpkg -c package.deb

    # 配置包
    $ dpkg --configure package

    # 列出已安装软件包
    $ sudo dpkg-query -l
    $ sudo dpkg-query -l | less
    $ sudo dpkg-query -l | grep tmux

apt

Ubuntu、Debian

==apt-get== 命令是 ==Debian Linux== 发行版中的 APT 软件包管理工具。所有基于 ==Debian== 的发行都使用这个包管理系统。deb 包可以把一个应用的文件包在一起,大体就如同 Windows 上的安装文件。

  • 命令行使用

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # apt-get(选项)(参数)
    $ apt --help
    Usage: apt [options] command

    # 选项
    -c:指定配置文件

    # 参数
    管理指令:对APT软件包的管理操作
    软件包:指定要操纵的软件包
  • 示例演示说明

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    # 更新所有已安装的软件包
    $ apt-get upgrade

    # 将系统升级到新版本
    $ apt-get dist-upgrade

    # 更新
    $ apt-get update

    # 安装一个新软件包
    $ apt-get install packagename

    # 卸载一个已安装的软件包(保留配置文件)
    $ apt-get remove packagename

    # 卸载一个已安装的软件包(删除配置文件)
    $ apt-get –purge remove packagename

    # 来删除你已经删掉的软件
    $ apt-get autoclean apt

    # 会把安装的软件的备份也删除
    $ apt-get clean

    # 列出已安装软件包
    $ sudo apt list --installed
    $ sudo apt list --installed | less
    $ sudo apt list --installed | grep tmux
  • 使用示例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    cd /etc/apt

    # 更新
    apt-get update
    apt-get upgrade

    # 安装vim
    apt-get install vim

    # 安装命令补全
    apt-get install bash-completion

    # 配置环境变量
    vim ~/.bashrc

    if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
    fi

    if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
    fi

    # 激活环境
    source ~/.bashrc

    # Ubuntu20无法使用source命令的解决(source: not found)source: not found
    方法:
    命令行执行:dpkg-reconfigure dash
    在跳出的界面选NO

    原因:
    Ubuntu是用dash来进行解析的,运行 ls -s /bin/sh 后显示 /bin/sh -> dash 可以验证
    修改之后,再运行 ls -s /bin/sh 后显示 /bin/sh -> bash ,或者运行 ls -l 'which sh' ,看到变化,就说明修改成功了。

    重新进容器:
    # 变成sh-5.0#

    # 安装lrzsz
    apt-get install lrzsz
    apt-get install net-tools

    # PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
    # NAME="Debian GNU/Linux"
    # 解决:http://t.zoukankan.com/goloving-p-15150122.html
    # 使用 root 用户进去
    docker exec -u 0 -it sonarqube /bin/bash
    apt-get update
    apt-get install vim
  • 更换阿里云的源

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    # 先安装lrzsz
    apt-get install lrzsz
    mv sources.list sources.list-1

    # 上传sources.list
    deb http://mirrors.aliyun.com/debian stretch main contrib non-free
    deb-src http://mirrors.aliyun.com/debian stretch main contrib non-free
    deb http://mirrors.aliyun.com/debian stretch-updates main contrib non-free
    deb-src http://mirrors.aliyun.com/debian stretch-updates main contrib non-free
    deb http://mirrors.aliyun.com/debian-security stretch/updates main contrib non-free
    deb-src http://mirrors.aliyun.com/debian-security stretch/updates main contrib non-free

    # 你也可以把"Stretch"换成"jessie","wheezy"。分别对应Debian9,Debian8,Debian7版本。
    # 如何查询自己的Linux版本参考如下:
    cat /etc/issue

    # 更新源
    apt-get update
    # 安装软件速度很快
    apt-get install net-tools
    apt-get install unzip
    apt-get install zip

rpm

RHEL、CentOS

==rpm== 命令是 RPM 软件包的管理工具。==rpm== 原本是 ==Red Hat Linux== 发行版专门用来管理 ==Linux== 各项套件的程序,由于它遵循 ==GPL== 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。==RPM== 套件管理方式的出现,让 ==Linux== 易于安装,升级,间接提升了 ==Linux== 的适用度。

  • 命令行使用

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    # rpm(选项)(参数)
    $ rpm --help
    Usage: rpm [OPTION...]

    # 选项
    -a:查询所有套件
    -c:只列出组态配置文件,本参数需配合"-l"参数使用
    -d:只列出文本文件,本参数需配合"-l"参数使用
    -e<套件档>或--erase<套件档>:删除指定的套件
    -f<文件>+:查询拥有指定文件的套件
    -h或--hash:套件安装时列出标记
    -i:显示套件的相关信息
    -i<套件档>或--install<套件档>:安装指定的套件档
    -l:显示套件的文件列表
    -p<套件档>+:查询指定的RPM套件档
    -q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户
    -R:显示套件的关联性信息
    -s:显示文件状态,本参数需配合"-l"参数使用
    -U<套件档>或--upgrade<套件档>:升级指定的套件档
    -v:显示指令执行过程
    -vv:详细显示指令执行过程,便于排错

    # 参数
    软件包:指定要操纵的rpm软件包
  • 示例演示说明

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    # 安装
    $ rpm -ivh your-package.rpm

    # 强制安装
    $ rpm --force -ivh your-package.rpm

    # 卸载
    $ rpm -e proftpd-1.2.8

    # 列出所有安装过的包
    $ rpm -qa
    $ rpm -qa | grep sql

    # rpm包中的文件安装到那里
    $ rpm -ql ***.rpm
    # 一个没有安装过的软件包
    $ rpm -qlp ***.rpm
    # 一个已经安装过的软件包
    $ rpm -ql ***.rpm

    # 某个程序是哪个软件包安装
    $ rpm -qf `which 程序名` # 返回软件包的全名
    $ rpm -qif `which 程序名` # 返回软件包的有关信息
    $ rpm -qlf `which 程序名` # 返回软件包的文件列表
  • 本文标题:linux系统安装包管理工具中文使用指南
  • 本文作者:xjzyy
  • 创建时间:2022-08-12 09:11:37
  • 本文链接:https://xjzyy.xyz/2022/08/12/linux系统安装包管理工具中文使用指南/
  • 版权声明:本博客所有文章均采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。转载请注明出处!