广告
返回顶部
首页 > 资讯 > 数据库 >rpm程序包管理器详解
  • 347
分享到

rpm程序包管理器详解

2024-04-02 19:04:59 347人浏览 安东尼
摘要

1. 程序包管理器的功能    我们知道,由程序员编写并提供的程序源代码要转换成目标二进制格式才能在计算机上运行起来,但用户要在平台上使用时需要手动编译安装后才能使用

1. 程序包管理器的功能


    我们知道,由程序员编写并提供的程序源代码要转换成目标二进制格式才能在计算机上运行起来,但用户要在平台上使用时需要手动编译安装后才能使用,对于普通用户来说有一定难度。因此为了降低普通用户对应用程序的使用难度,程序员可在提供源代码的同时提供已在特定环境下编译好的程序文件,只要用户的平台环境和程序员的平台环境相同,就可以通过解压程序员提供的二进制格式文件即可使用,而无需自己手动编译安装。


    一个已编译好的程序由二进制程序、库文件、配置文件和帮助手册等组成,程序包管理器的功能就是将编译好的应用程序的各组成文件(二进制程序、库文件、配置文件、帮助文件等)打包成一个或几个程序包文件,从而更方便地实现程序包的安装、升级、卸载和查询等管理操作。


2. 源码到程序包的转换过程

rpm程序包管理器详解rpm程序包管理器详解

3. rpm包管理器概述


    rpm是Redhat公司针对自己的操作系统RHEL提出的一种管理软件包的方法,rpm原来全称为RedHat Package Manager,后来由于rpm包管理器的使用方便以及Redhat公司采取各种商业策略,使得rpm成为了工业标准,其他系统可借鉴使用rpm,因此rpm全称后来改为:RPM Package Manager。在系统上只要安装了rpm包管理器,那么只要符合rpm标准的程序包文件都可以实现更为方便地安装、升级、卸载和查询等管理操作。



4. 为什么要使用rpm?


    Linux的哲学思想之一是“一个程序只做一件事,并且做好”。因此linux经常通过使用众多功能单一的程序来完成复杂任务,最常见的例子是管道命令的使用。而各个程序功能的单一,带来的问题是各个程序文件之间的产生了极大的依赖性,这是一个需要解决的问题。此外,要安装各种功能的程序,而各程序在安装时的路径、生成的文件各不相同,这给卸载某程序将带来极×××烦,极不方便管理,以及对程序的版本的管理等。在Linux上只要安装rpm包管理器即可解决以上问题,rpm包管理器可将编译好的各个应用程序组成文件打包成一个或有限个rpm程序包,每个包中会记录当前包的依赖性。一旦程序包安装了之后,rpm会追踪其各个文件的安装路径(包括程序运行时产生的临时文件)。rpm包管理器就是通过这种方式来实现对rpm程序包的管理的,而对程序包的管理无外乎是安装、升级、卸载、查询等操作。



5. 程序包管理器的组成部分


程序包管理器由程序包组成清单数据库两部分组成:

(1)程序包的组成清单(每个程序都单独实现):

    ①文件清单

    ②安装或卸载时运行的脚本

(2)数据库(为所有rpm程序包所共用):

    ①程序包的名称和版本

    ②依赖关系

    ③功能说明

    ④安装生成的各个文件的文件路径及校验码信息



6. rpm包命名格式


    rpm包有主包支包(主包的子包)之分,支包作为主包的功能性补充。其中rpm主包的命名格式为:name-VERSION-release.arch.rpm。各个部分解释如下:

name:程序名

VERSION:版本

    VERSioN由三部分组成:

    ①major:程序的主版本号

    ②minor:程序的次版本号

    ③release:程序的修订号

release[.os].arch:代表rpm包的发行号

    ①release[.os]:rpm版本+操作系统

    ②arch:archetecture,支持的硬件架构。常见的硬件架构有i386, x64(amd64), ppc, noarch(支持任何架构)等


各组成部分示意图如下:

rpm程序包管理器详解

举个例子,zsh-5.0.2-25.el7.x86_64.rpm代表:该zsh程序包的主版本号为5,次版本号为0,修订号为2;rpm的版本号为25,支持的操作系统是RHEL 7(Centos 7),支持的硬件架构是x86_64。


对于支包来说,其命名格式为:

name-function-VERSION-release.arch.rpm

常见的function有:devel, utils(工具程序), libs, ...



7. 获取程序包的途径


如何获取rpm包呢?

(1)系统发行版的光盘或官方的文件服务器(或镜像站点)

    常见的镜像网站如:

    http://mirrors.aliyun.com

    http://mirrors.sohu.com

    http://mirrors.163.com

(2)项目的官方站点

(3)第三方组织

    (a)EPEL

    (b)搜索引擎

        http://pkgs.org

        http://rpmfind.net

        http://rpm.pbone.net

        ...

(4)自己制作rpm包

建议:检查其合法性(来源合法性、程序包的完整性)



8. CentOS系统上rpm命令管理程序包


8.1. 安装

语法格式:

    rpm {-i|--install} [install-options] PACKAGE_FILE ...


常用命令选项:

    -v:verbose,输出详细的过程信息;

    -vv:very verbose,输出更为详细的过程信息;


安装选项(install-options):

    -h:hash marks输出进度条;hash标记符为#,每个#表示2%的进度;

    --test:测试安装,检查并报告依赖关系及冲突信息等;相当于dry run;

    --nodeps:忽略依赖关系,不建议使用;

    --replacepkgs:重新安装;

    --noscripts:指定不运行脚本;

    --nosignature:不检查包签名信息,即不检查程序包的来源合法性;

    --nodigest:不检查包完整性信息;


用法:

    rpm -ivh PACKAGE_FILE ...


注意:rpm可以自带脚本

最多有四类脚本:(--noscripts可指定不运行这四类脚本)

preinstall:安装过程开始之前运行的脚本,%pre;--nopre可指定不运行;

postinstall:安装过程完成之后运行的脚本,%post;--nopost可指定不运行;

preuninstall:卸载过程真正开始执行之前运行的脚本,%preun;--nopreun可指定不运行;

postuninstall:卸载过程完成之后运行的脚本,%postun;--nopostun可指定不运行;


命令演示:


安装zsh,首先挂载光盘:

[root@osyunwei ~]# mkdir /media/cdrom
[root@osyunwei ~]# mount /dev/sr0 /media/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only


用rpm下载zsh:

[root@osyunwei ~]# cd /media/cdrom/Packages/
[root@osyunwei Packages]# rpm -ivh zsh-4.3.11-4.el6.centos.2.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:zsh                    ########################################### [100%]


8.2. 升级

语法格式:

    rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

    rpm {-F|--freshen} [install-options] PACKAGE_FILE ...


常用选项:

    -U:升级或安装;

    -F:升级;

    -v:同“安装”;

    -vv:同“安装”.


安装选项(install-options):

    --oldpackage:降级 --> 某些程序升级后遇到不兼容的情况,此时需要降级;

    --force:强制升级 --> 某些程序升级后会引起依赖性问题,此时可能会用到此选项;

    

    其他安装选项同“安装”。


用法:

    rpm -Uvh PACKAGE_FILE ...

    rpm -Fvh PACKAGE_FILE ...


注意:

(1)Linux支持多内核版本并存,所以不要对内核做升级操作,因为这样有可能会导致无法“回滚”,建议直接安装新版本内核即可。

(2)如果某原程序包的配置文件安装后曾被修改过,则在升级时,新版本的程序提供的同一个配置文件不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew)后提供;


命令演示:


查看当前已安装的zsh的版本:

[root@osyunwei ~]# rpm -q zsh
zsh-4.3.11-4.el6.centos.2.x86_64


从网易镜像站点下载zsh-5.0.2-25.el7_3.1.x86_64.rpm程序包:

[root@osyunwei ~]# wget Http://mirrors.163.com/centos/7/updates/x86_64/Packages/zsh-5.0.2
25.el7_3.1.x86_64.rpm


用rpm升级zsh:

[root@osyunwei ~]# rpm -Uvh zsh-5.0.2-25.el7_3.1.x86_64.rpm 
warning: zsh-5.0.2-25.el7_3.1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5
: NOKEY
error: Failed dependencies:
libc.so.6(GLIBC_2.14)(64bit) is needed by zsh-5.0.2-25.el7_3.1.x86_64
libc.so.6(GLIBC_2.15)(64bit) is needed by zsh-5.0.2-25.el7_3.1.x86_64

发现有依赖关系导致无法升级。


此时若要强行升级可使用--nodeps选项:

[root@osyunwei ~]# rpm -Uvh --nodeps zsh-5.0.2-25.el7_3.1.x86_64.rpm
warning: zsh-5.0.2-25.el7_3.1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5
: NOKEY
Preparing...                ########################################### [100%]
   1:zsh                    ########################################### [100%]

注意:忽略依赖性升级后程序不一定能正常运行!


再将zsh降级:

[root@osyunwei ~]# cd /media/cdrom/Packages/
[root@osyunwei Packages]# rpm -Uvh --oldpackage zsh-4.3.11-4.el6.centos.2.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:zsh                    ########################################### [100%]



8.3. 卸载

语法格式:

    rpm {-e|--erase} [--allmatches] [--nodeps] [--test] PACKAGE_NAME ...


卸载选项(erase options):

    --allmatches:卸载所有匹配指定名称的程序包的各版本;

    --nodeps:忽略依赖关系;

    --test:测试卸载,dry run模式。


用法:

    rpm -e PACKAGE_NAME


命令演示:


卸载已安装的zsh程序包:

[root@osyunwei ~]# rpm -e zsh

如果没有任何显示就说明卸载成功了!



8.4. 查询

语法格式:

    rpm {-q|--query} [select-options] [query-options]


[select-options]:

    PACKAGE_NAME:查询指定的程序包是否安装,及其版本;

    -a, --all:查询所有已经安装过的包;

    -f, --file FILE:查询指定的文件由哪个程序包安装生成;

    -p, --package PACKAGE_FILE:用于实现对未安装的程序包执行查询操作;

    --whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供;

    --whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖。


[query-options]:

    --changelog:查询rpm包的changelog;

    -i, --info:程序包相关的信息,版本号、大小、所属的包组等

    -l, --list:程序包安装生成的所有文件列表;

    -c, --configfiles:查询指定的程序包提供的配置文件;

    -d, --docfiles:查询指定的程序包提供的文档;

    --provides:列出指定的程序包提供的所有的CAPABILITY;

    -R, --requires:查询指定的程序包的依赖关系;

    --scripts:查看程序包自带的脚本片段。


用法:

    rpm -qi PACKAGE

    rpm -qf FILE

    rpm -qc PACKAGE

    rpm -qd PACKAGE

    rpm -qpi PACKAGE_FILE

    rpm -apl PACKAGE_FILE

    rpm -qpc PACKAGE_FILE


列了这么多个选项,不如来个实例吧!


(1)查看zsh是否已经安装:

[root@osyunwei ~]# rpm -qa | grep '^zsh'
zsh-4.3.11-4.el6.centos.2.x86_64    //显示已安装zsh;
或:
[root@osyunwei ~]# rpm -q zsh
zsh-4.3.11-4.el6.centos.2.x86_64    //显示已安装zsh;


(2)查询/etc/fstab由哪个程序包安装生成:

[root@osyunwei ~]# rpm -qf /etc/fstab 
setup-2.8.14-20.el6_4.1.noarch


(3)列出安装httpd生成的所有文件列表:

[root@osyunwei ~]# rpm -ql httpd


(4)列出httpd程序包的依赖关系:

[root@osyunwei ~]# rpm -qR httpd
/bin/bash  
/bin/sh  
.....(省略).....
libz.so.1()(64bit)  
rpmlib(CompressedFileNames) <= 3.0.4-1
.....(省略).....
rpmlib(VersionedDependencies) <= 3.0.3-1
rtld(GNU_HASH)  
system-loGos >= 7.92.1-1
rpmlib(PayloadIsXz) <= 5.2-1


(5)查看httpd程序包提供的文档:

[root@osyunwei ~]# rpm -qd httpd
/usr/share/doc/httpd-2.2.15/ABOUT_APACHE
/usr/share/doc/httpd-2.2.15/CHANGES
/usr/share/doc/httpd-2.2.15/LICENSE
/usr/share/doc/httpd-2.2.15/NOTICE
/usr/share/doc/httpd-2.2.15/README
/usr/share/doc/httpd-2.2.15/VERSIONING
/usr/share/man/man8/apachectl.8.gz
/usr/share/man/man8/htcacheclean.8.gz
/usr/share/man/man8/httpd.8.gz
/usr/share/man/man8/rotatelogs.8.gz
/usr/share/man/man8/suexec.8.gz


(6)查询httpd程序包提供的配置文件:

[root@osyunwei ~]# rpm -qc httpd
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
/etc/logrotate.d/httpd
/etc/sysconfig/htcacheclean
/etc/sysconfig/httpd
/var/www/error/HTTP_BAD_GATEWAY.html.var
/var/www/error/HTTP_BAD_REQUEST.html.var
.....(以下省略).....


(7)查看httpd程序包自带的脚本片段:

[root@osyunwei ~]# rpm -q --scripts httpd


(8)列出bash程序包提供的所有的CAPABILITY:

[root@osyunwei ~]# rpm -q --provides bash
config(bash) = 4.1.2-40.el6
bash = 4.1.2-40.el6
bash(x86-64) = 4.1.2-40.el6


(9)查看httpd程序包提供的所有的CAPABILITY:

[root@osyunwei ~]# rpm -q --provides httpd
config(httpd) = 2.2.15-53.el6.centos
httpd-mmn = 20051115
httpd-suexec = 2.2.15-53.el6.centos
.....(中间省略).....
mod_vhost_alias.so()(64bit)  
WEBserver  
.....(以下省略).....


(10)查询指定的CAPABILITY (这里为webserver)由哪个程序包提供:

[root@osyunwei ~]# rpm -q --whatprovides webserver
httpd-2.2.15-53.el6.centos.x86_64


(11)查询指定的CAPABILITY (这里为bash)被哪个包所依赖:

[root@osyunwei ~]# rpm -q --whatrequires bash
jline-0.9.94-0.8.el6.noarch
initscripts-9.03.53-1.el6.centos.x86_64
dracut-004-409.el6.noarch
lvm2-2.02.143-7.el6.x86_64
rsyslog-5.8.10-10.el6_6.x86_64
cronie-1.4.4-15.el6_7.1.x86_64
autofs-5.0.5-122.el6.x86_64
eclipse-pde-3.6.1-6.13.el6.x86_64


(12)查看bash的更新日志(changelog):

[root@osyunwei ~]# rpm -q --changelog bash
...
* Fri Oct 17 1997 Donnie Barnes <djb@redhat.com>
- added BuildRoot
* Tue Jun 03 1997 Erik Troan <ewt@redhat.com>
- built against glibc


(13)查看程序包相关的信息,版本号、大小、所属的包组等:

[root@osyunwei ~]# rpm -qi zsh

rpm程序包管理器详解



8.5. 校验

用途:可检查程序包中的数据是否被修改过。


语法格式:

    rpm {-V|--verify} [select-options] [verify-options]


用法:

    rpm -V PACKAGE_NAME


校验属性:

S file Size differs
M Mode differs (includes permissions and file type)
5 digest (fORMerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P caPabilities differ


命令演示:


修改zsh程序包的配置文件,首先查看zsh程序包的配置文件有哪些:

[root@osyunwei ~]# rpm -qc zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv
/etc/zshrc


用vim修改/etc/zshrc文件,在首行添加一个'#'字符,然后再用-V选项检验:

[root@osyunwei ~]# vim /etc/zshrc
[root@osyunwei ~]# rpm -V zsh
S.5....T.  c /etc/zshrc

显然,文件/etc/zshrc的大小、md5值、时间戳(mtime)发生了变化。



8.6. 数据库重建


默认rpm管理器的数据库路径为/var/lib/rpm,刚才的查询操作正是通过此处的数据库进行。


获取帮助:

    CentOS 6:man rpm

    CentOS 7:man rpmdb


语法格式:

    rpm {--initdb|--rebuilddb} [-v] [--dbpath DIRECTORY] [--root DIRECTORY]

    

常用选项:

    --initdb:初始化数据库,当前无任何数据库可初试化创建一个新的数据库;当前有时不执行任何操作;

    --rebuilddb:重新构建,通过遍历读取当前系统上所有已经安装过的程序包进行重新创建;


命令演示:


在/tmp/mydb目录下创建初始化数据库:

[root@osyunwei ~]# rpm --initdb --dbpath /tmp/mydb
[root@osyunwei ~]# ls /tmp/mydb/
__db.001  __db.002  __db.003  __db.004  Packages


在/tmp/mydb目录下重新创建数据库:

[root@osyunwei ~]# rpm --rebuilddb --dbpath /tmp/mydb
[root@osyunwei ~]# ls /tmp/mydb/
Packages

注意:不一定能够重建完整的数据库,所以慎用该命令吧!



8.7. 包来源合法性验证和完整性验证



首先要了解一下什么是数字签名?

    数字签名就是用本地密钥去加密对应数据的特征码。

    程序包开发者将程序包制作好之后,采用单向加密算法对程序包进行计算,得到定长特征码,再用私钥对这段定长特征值进行加密,并将加密过的特征码附于程序包尾部,这就是数字签名。程序使用者先得到开发者的公钥,用于解密特征码,如果解密成功,说明来源合法;然后使用者在本地对该程序包用单向加密算法再次计算出定长特征码,如果使用者计算出的特征码和程序开发者提供的特征码相同,则说明程序数据完整。虽然用了两种加密算法,但却没有保密性的概念,而是作为验证。

    特征码有没有被篡改的可能性?假设中间人得到程序包的特征值后,想篡改特征码,但篡改后需要用本地私钥进行加密,因此来源就不合法了,更不用谈完整性了,所以特征码是无法修改的。

    但存在一个问题,就是使用者如何获得正确的公钥?这要求下载公钥的网站的正确性以及数据在网络传输过程中的安全性,涉及网络安全问题。


图解数字签名rpm程序包管理器详解

rpm程序包管理器详解

对于CentOS发行版来说,假设已获取正确的公钥,那么导入信任的包制作者的公钥(或签名密钥)操作如下:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7


两种验证方式:

(1)安装此组织签名的程序时,程序内部会自动执行验证。

(2)手动验证:rpm -K PACKAGE_FILE,同样由程序内部自行执行校验操作。



命令演示:


校验zsh程序包的来源合法性及数据完整性:

[root@osyunwei Packages]# rpm -K zsh-4.3.11-4.el6.centos.2.x86_64.rpm 
zsh-4.3.11-4.el6.centos.2.x86_64.rpm: rsa sha1 (md5) pgp md5 OK    //校验通过;





您可能感兴趣的文档:

--结束END--

本文标题: rpm程序包管理器详解

本文链接: https://www.lsjlt.com/news/38831.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • rpm程序包管理器详解
    1. 程序包管理器的功能    我们知道,由程序员编写并提供的程序源代码要转换成目标二进制格式才能在计算机上运行起来,但用户要在平台上使用时需要手动编译安装后才能使用...
    99+
    2022-10-18
  • linux的程序包管理-rpm
        我们知道,程序就是指令加上数据的集合或者称为算法加上数据结构的集合。应用程序以源代码和二进制的形式存在:源代码是包含了整个应用程序的编程语言的所有代码的文本文...
    99+
    2022-10-18
  • CentOS程序包管理器之rpm前端管理器
    CentOS的程序包管理器:首先,我们要来了解一下程序包(源代码包)的命名规则:software_name-VERSION.tar.gzVERSION:major.minor.releasemajor:主版...
    99+
    2022-10-18
  • linux程序包管理 rpm yum 编译
    rpm命令:rpm  [OPTIONS]  [PACKAGE_FILE] 安装:-i, --install 升级:-U, --update, -F, --freshen 卸载...
    99+
    2022-10-18
  • Linux系统程序包管理之rpm
    Linux系统程序包管理之rpm==============================================================================概述: ...
    99+
    2022-10-18
  • linux程序包管理--rpm命令管理方式
    1.概述API:Application Program Interface ABI:Application Binary Interface   ...
    99+
    2022-10-18
  • Linux学习笔记:rpm程序包管理
    以CentOS为例,rpm程序包管理器的相关内容如下:CentOS的程序包管理器:    程序包的命名规则:       &n...
    99+
    2022-10-18
  • Linux软件包管理器rpm与yum
    在我们的运维工作,总是避免不了安装某些软件,或者编译安装某些软件,我们知道操作系统当中的程序都是有程序员通过开发工具开发的来,程序员直接编写的纯文本的文档我们称之为源代码,但我们的计算机只能识别二进制程序,...
    99+
    2022-10-18
  • Linux中如何实现程序包管理与使用rpm命令
    这篇文章主要为大家展示了“Linux中如何实现程序包管理与使用rpm命令”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中如何实现程序包管理与使用rpm...
    99+
    2022-10-19
  • 怎么在CentOS中使用rpm包管理器
    怎么在CentOS中使用rpm包管理器?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。RPM包的命名例如,bash-4.3.2-1.centos6.x86_64.rpmrpm...
    99+
    2023-06-10
  • linux程序包管理rpm,yum和编译安装以及冒泡排序练习
    linux程序包管理:API:Application Programming InterfacePOSIX:Portable OS程序源代码--> 预处理--> 编译--> 汇编-->...
    99+
    2022-10-18
  • Linux程序包管理
    Linux程序包管理RPM包基础RPMYUM编译安装概述Linux上的程序包管理,是我们的必备技能,本文将从三个视角:rpm、yum、源码编译来浅析Linux的程序包管理。首先,我们来看下本文的主要内容:-...
    99+
    2022-10-18
  • Linux程序包管理(CentOS)
    二进制应用程序的组成部分:二进制文件、库文件、配置文件、帮助文件程序包管理器:debian:deb, dptredhat: rpm, rpmrpm: Redhat Package Manager(RPM i...
    99+
    2022-10-18
  • Go语言包和包管理详解
    目录1 包简介1.1 工作空间1.2 源文件1.3 包命名1.4 main 包2导包2.1 两种方式2.2 包的别名2.3 简洁模式2.4非导入模式(匿名导入)2.5 导包的路径2....
    99+
    2022-11-11
  • uniapp分包(小程序分包)处理图文详解
    目录一、为什么要分包二、主包和分包三、原始配置四、分包配置步骤总结一、为什么要分包 因小程序有体积和资源加载限制,优化小程序的下载和启动速度。 二、主包和分包 所谓的主包,即放置默认...
    99+
    2023-01-15
    uniapp分包实现 uniapp分包教程 uniapp小程序分包
  • 详解Node.js包的工程目录与NPM包管理器的使用
    工程目录 了解了以上知识后,现在我们可以来完整地规划一个工程目录了。以编写一个命令行程序为例,一般我们会同时提供命令行模式和 API 模式两种使用方式,并且我们会借助三方包来编写代码。除了代码外,一个完整的...
    99+
    2022-06-04
    管理器 详解 目录
  • Node.js安装教程和NPM包管理器使用详解
    2009年的JSCOnf大会上,一个叫Ryan Dahl的年轻程序员向人们展示了一个他正在做的项目,一个基于Google V8引擎的JavaScript运行平台,它提供了一套事件循环和低IO的应用程序编程接...
    99+
    2022-06-04
    管理器 详解 教程
  • linux程序包管理初步
    Linux程序包管理          我们linux操作系统从底层到高层的层次结构:最底层首先是硬件,计算机的计算...
    99+
    2022-10-18
  • Linux系统程序包管理
    Linux程序包管理 API:Application Program Interface ABI:Application Binary INnterface Unix-like,系统上的二级制格式的应用程...
    99+
    2022-10-18
  • 详解Python编程中包的概念与管理
    Python中的包 包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的Python的应用环境。 考虑一个在Phone目录下的pots.py文件。这个文件有如下源代码: #!...
    99+
    2022-06-04
    详解 概念 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作