软件管理之rpm、yum使用 | 您所在的位置:网站首页 › debian清除缓存 › 软件管理之rpm、yum使用 |
静态和动态链接 链接主要作用是把各个模块之间相互引用的部分处理好,使得各个模块之间能够正确地衔接,分为静态链接和动态链接 静态链接 1、把程序对应的依赖库复制一份到包 2、libxxx.a 3、嵌入程序包 4、升级难,需重新编译 5、占用较多空间,迁移容易 动态链接 1、只把依赖加做一个动态链接 2、libxxx.so 3、连接指向 4、占用较少空间,升级方便 动态库和静态库的区别如下图; C程序静态链接 Java程序运行 java 字节码,号称一次编译,到处运行 编译好以后可以运行在不能的平台上,因为它内部有java虚拟机,分不同平台的虚拟机wins 虚拟机、linux虚拟机 内部是通过java编译器来操作 /lib64 共享库 Debian dpkg 1、dpkg 包管理器已经打包好,路径无需自己指定 2、.deb文件安装 dpkg -i .deb redhat rpm 1、rmp包管理器 2、rpm -ivh 包命名 源代码:name-VERSION.tar.gz|bz2|xz VERSION: major.minor.release rpm包命名方式: name-VERSION-release.arch.rpm 例:bash-4.2.46-19.el7.x86_64.rpm 1、bash-4.2.46 开源软件版本号 2、19.el7.x86_64 整体指的是发行版,19 指的是打包次数 el7 redhat企业版7 VERSION: major.minor.release release:release.OS 常见的arch: x86: i386, i486, i586, i686 x86_64: x64, x86_64, amd64 powerpc: ppc 跟平台无关:noarch 实现盘自动挂载方式: systemctl start autofs systemctl enable autofs 这个路径适用于centos6、centos7 cd /misc/cd/Packages 查看不同平台的rpm包 cd /misc/cd/Package [root@centos7 Packages]#ls *.rpm |rev|cut -d. -f2|rev|sort |uniq -c 1385 noarch 2636 x86_64 [root@centos7 Packages]#ls *.rpm|sed -r 's/.*\.(.*)\.rpm$/\1/'|sort|uniq -c 1385 noarch 2636 x86_64 centos7 以后不支持32位 /lib64 是共享库,很多程序都需要借助里面的库文件,如果移除危害很大,慎操作 库文件 查看二进制程序所依赖的库文件 ldd /PATH/TO/BINARY_FILE 管理及查看本机装载的库文件 ldconfig 加载配置文件中指定的库文件 /sbin/ldconfig –p 显示本机已经缓存的所有可用库文件名及文件路径映射关系 配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf 缓存文件:/etc/ld.so.cache 对于Vmware来说,选择光盘重置的办法; 1、选择 "重置",重置相当于物理关机,而非命令行关机 2、出现开机的进度条,立马敲"ESC",可以露出启动方式 3、选择"CD-RAM Drive" 4、选择:troube shutting 5、选择rescue ;救援模式,绕过硬盘故障 6、如果对于删除的文件,需要安装rpm -ivh /run/install/Package/*.rpm --root=/mnt/sysimage ,要装在/root下。而非安装在当前目录 ldconfig -p #查看硬盘中加载的共享库 包管理器 程序包管理器: 功能:将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而 方便快捷地实现程序包的安装、卸载、查询、升级和校验等管理操作 包文件组成 (每个包独有) RPM包内的文件 RPM的元数据,如名称,版本,依赖性,描述等 安装或卸载时运行的脚本 RPM包依赖于/var/lib/rpm数据库,里面记录了程序名称及版本;依赖关系、功能说明、安装后生成的各个文件路径和校验码 如果此数据库破坏,基本不能用。每次安装rpm包,都会从这个路径下检索,如果已经安装则不会再次安装 程序包的来源 管理程序包的方式: 使用包管理器:rpm 使用前端工具:yum, dnf 获取程序包的途径: (1)系统发版的光盘或者官方服务器 CentOS镜像: Download http://mirrors.aliyun.com http://mirrors.sohu.com http://mirrors.163.com (2)项目官方站点 (3) 第三方组织: Fedora-EPEL: Extra Packages for Enterprise Linux Rpmforge:RHEL推荐,包很全 搜索引擎: http://pkgs.org http://rpmfind.net http://rpm.pbone.net Compare, Download & Develop Open Source & Business Software - SourceForge (4) 自己制作 注意:第三方包建议要检查其合法性:来源合法性,程序包的完整性 rpm包管理 CentOS系统上使用rpm命令管理程序包: 安装、卸载、升级、查询、校验、数据库维护 安装: rpm {-i|--install} [install-options] PACKAGE_FILE … -v: verbose -vv: 更加详细的过程 -h: 以#显示程序包管理执行进度 之前一直执行这个命令,却不知道h的含义。。。。。 rpm 命令检查包的具体来源 上面所说的每安装rpm包,/var/lib/rpm,此时查看发现已经更新时间了 rpm包安装 [install-options] --test: 测试安装,但不真正执行安装,即dry run模式 --nodeps:忽略依赖关系 --replacepkgs | replacefiles --nosignature: 不检查来源合法性 --nodigest:不检查包完整性 --noscripts:不执行程序包脚本 %pre: 安装前脚本 --nopre %post: 安装后脚本 --nopost %preun: 卸载前脚本 --nopreun %postun: 卸载后脚本 --nopostun rpm安装时有时报错缺少依赖,可以加参数来忽略依赖,但安装的包依旧用不了 --nodeps:忽略依赖关系 rpm -q mariadb 查看是否安装 #q query 查询 mariadb 只需输入服务名称,不用加版本号 rpm -e mariadb 卸载 rpm -ql tree 查看包中包含哪些文件 [root@centos7 Packages]#rm -f /usr/bin/tree [root@centos7 Packages]#rpm -ivh /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm warning: /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY Preparing... ################################# [100%] package tree-1.6.0-10.el7.x86_64 is already installed 可以使用 --replacepkgs 全覆盖 [root@centos7 ~]#rpm -ivh /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm --replacekgs 只覆盖冲突的包 replacefiles rpm -qi Package #i 表示 information 查看程序包是否有脚本 [root@centos7 usr]#rpm -q --scripts tree 磁盘里面的包,安装脚本 [root@centos7 usr]#rpm -q --scripts /misc/cd/Package/...... rpm包升级 升级: rpm {-U|--upgrade} [install-options] PACKAGE_FILE... rpm {-F|--freshen} [install-options] PACKAGE_FILE... upgrade:安装有旧版程序包,则“升级” 如果不存在旧版程序包,则“安装” freshen:安装有旧版程序包,则“升级” 如果不存在旧版程序包,则不执行升级操作 rpm -Uvh PACKAGE_FILE ... rpm -Fvh PACKAGE_FILE ... --oldpackage:降级 --force: 强制安装 ******注意****** (1) 不要对内核做升级操作;Linux支持多内核版本并存,因此直接安装新版本内核 (2) 如果原程序包的配置文件安装后曾被修改,升级时,新版本提供的同一个配置文 件不会直接覆盖老版本的配置文件,而把新版本文件重命名(FILENAME.rpmnew)后 保留 (3) 升级会遇到很多不可预知的问题,建议有问题重装即可 包查询 rpm {-q|--query} [select-options] [query-options] [select-options] -a:所有包 -f:查看指定的文件由哪个程序包安装生成 --whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供 --whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖 rpm2cpio 包文件|cpio –itv 预览包内文件 rpm2cpio 包文件|cpio –id “*.conf” 释放包内文件 rpm -qa |grep Package 查看包是否已安装 rpm包格式的改成cpio格式的,然后预览: rpm2cpio /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm |cpio -tv 压缩成cpio格式的: rpm2cpio /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm |cpio -idv ./usr/bin/tree 这样的方法只是手工打包出来,文件属性不像rpm包打包的文件属性,使用时候小心谨慎 [query-options] --changelog:查询rpm包的changelog -c:查询程序的配置文件 -d:查询程序的文档 -i:information -l:查看指定的程序包安装后生成的所有文件 --scripts:程序包自带的脚本 --provides:列出指定程序包所提供的CAPABILITY -R:查询指定的程序包所依赖的CAPABILITY 包卸载: rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers][--test] PACKAGE_NAME ... 当包卸载时,对应的配置文件不会删除, 以FILENAME.rpmsave形式保留 查看磁盘中的文件来自与哪个包 [root@centos7 cmatrix]#rpm -qf /usr/bin/tree tree-1.6.0-10.el7.x86_64 查看文件列表 p 整个文件路径,而非包本身 rpm -qpi /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm rpm -q --whatrequires /bin/bash 哪些包需要依赖bash bash 是需要依赖哪个包 [root@centos7 usr]#rpm -q --whatprovides /bin/bash bash-4.2.46-31.el7.x86_64 包校验 rpm {-V|--verify} [select-options] [verify-options] 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 导入所需要公钥 rpm -K|checksig rpmfile 检查包的完整性和签名 rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 CentOS 7发行版光盘提供:RPM-GPG-KEY-CentOS-7 rpm -qa “gpg-pubkey*” [root@centos7 ~]#chown ttyang /bin/tree [root@centos7 ~]#ll /bin/tree -rwxr-xr-x 1 ttyang root 62768 Jun 10 2014 /bin/tree 查看rpm包属性 [root@centos7 ~]#rpm -V tree .....U... /usr/bin/tree #U 代表所有者发生变化 查看硬盘里包文件是否修改, -a 参数指的是所有文件 [root@centos7 ~]#rpm -Va 检验包: cat /misc/cd/RPM-GPG-KEY-CentOS-7 将上述此文件导入 rpm --import /misc/cd/RPM-GPG-KEY-CentOS-7 密钥: [root@centos7 ~]#rpm -qa "gpg-pubkey*" gpg-pubkey-f4a80eb5-53a7ff4b [root@centos7 ~]#rpm -qi gpg-pubkey-f4a80eb5-53a7ff4b 卸载密钥: [root@centos7 ~]#rpm -e gpg-pubkey-f4a80eb5-53a7ff4b rpm -K 校验,确保来源合法 root@centos7 ~]#rpm -K tree-1.6.0-10.el7.x86_64.rpm =================================================================== 底层原理: yum 安装可以解决包依赖的问题 1、yum是用python写的程序,底层是rpm,如果把rpm数据库破坏,yum也将不能使用 2、yum是C/S模式,需要实现建yum服务器,分为2大块:要安装的文件列表+仓库;仓库里面包含的所有rpm包和元数据(metadata),并且包分组也在元数据里面;还要说的是存储metadata的包称作repodata 3、yum的客户端需要配置,/etc/yum.repos.d/*.repo ,在配置文件里写清楚文件路径 配置好以后,获取yum的流程如下-- yum install httpd 底层原理 1、查询本地底层repo的源文件,是否配置仓库 2、找到互联网的yum服务器,查看metadata,是否有依赖。客户端将(metadata)元数据下载到缓冲区中 3、连接到缓冲区,下载好rpm包,rpm安装好以后一般会卸载,metadata 会缓存下来,以便后续下载使用 ===================================================================== 对于光盘而言,cd /misc/cd/Package/ 里面有repodata,就说明有yum源 cat CentOS-Base.repo [base] # 名字自定义,必须唯一 name=CentOS-$releasever - Base #描述性的文字 mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #把仓库信息放在文件路径下 #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ # 仓库路径; $指的是变量 CPU架构的主版本号、操作系统版本号 gpgcheck=1 # 检查包是否合法 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #密钥 [root@centos7 yum.repos.d]#pwd /etc/yum.repos.d 将此路径下的以.repo 结尾的文件移除到另外一个文件夹bak,如果不移除的话,就会进行干扰 CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo ************************************************************** 基础base.repo 配置是这样的 [root@centos7 yum.repos.d]#cat base.repo [base] name=cdrom base baseurl=file:///misc/cd gpgcheck=0 *************************************************************** enabled=0 默认启用; 0是禁用,1是启用 gpgcheck=1 默认是1,启用 yum repolist 列出所有仓库信息 配置epel源如下所示 ***************************************************************** [epel] name=epel baseurl=https://mirrors.aliyun.com/epel/$releasever/$basearch/ gpgcheck=0 enabled=1 ******************************************************************* #删除已经配置好的源,切记找对路径如要误删 rm -rf /var/cache/yum/* #查看当前可用yum源 yum repolist #查看所有yum源,包含禁用的 yum repolist all 下载好以后,yum源路径在 /var/cache/yum/x86_64/7 [root@centos7 cache]#ls /var/cache/yum/x86_64/7/ base epel timedhosts timedhosts.txt #其中base是本地源, epel是手动配置好的源 后续如果出现yum源的问题,就可以从下面2个方面分析; 1、路径写错了 2、缓存 rpm数据库 数据库重建: /var/lib/rpm rpm {--initdb|--rebuilddb} initdb: 初始化 如果事先不存在数据库,则新建之 否则,不执行任何操作 rebuilddb:重建已安装的包头的数据库索引目录 有时网络不通,采用桥接方式连接,需要yum安装文件,默认就在epel 源里下载,此时需要禁用epel源,选择本地安装 alias disepel='sed -ri /enabled/s/enabled=1/enabled=0/ /etc/yum.repos.d/base.repo' alias epel='sed -ri /enabled/s/enabled=0/enabled=1/ /etc/yum.repos.d/base.repo' [root@centos7 yum.repos.d]#cat base.repo [base] name=cdrom base baseurl=file:///misc/cd https://mirrors.aliyun.com/epel/$releasever/$basearch/ #可以写两个路径 gpgkey=file:///misc/cd/RPM-GPG-KEY-CentOS-7 #安全起见,第一次装会询问是否安装key #gpgcheck=1 failovermethod={roundrobin|priority} roundrobin:意为随机挑选,默认值 priority:按顺序访问 cost= 默认为1000 #cost数值越大,说明代价越大,优先级越低 yum命令 yum命令的用法: yum [options] [command] [package ...] 显示仓库列表: yum repolist [all|enabled|disabled] 显示程序包: yum list yum list [all | glob_exp1] [glob_exp2] [...] yum list {available|installed|updates} [glob_exp1] [...] 安装程序包: yum install package1 [package2] [...] yum reinstall package1 [package2] [...] (重新安装) 升级程序包: yum update [package1] [package2] [...] yum downgrade package1 [package2] [...] (降级) 检查可用升级: yum check-update 卸载程序包: yum remove | erase package1 [package2] [...] 查看程序包information: yum info [...] 查看指定的特性(可以是某文件)是由哪个程序包所提供: yum provides | whatprovides feature1 [feature2] [...] 清理本地缓存: 清除/var/cache/yum/$basearch/$releasever缓存 yum clean [ packages | metadata | expire-cache | rpmdb | plugins | 构建缓存: yum makecache 搜索:yum search string1 [string2] [...] 以指定的关键字搜索程序包名及summary信息 查看指定包所依赖的capabilities: yum deplist package1 [package2] [...] yum的日志 cat /var/log/yum.log yum的安装历史 [root@centos7 log]#yum history Loaded plugins: fastestmirror, langpacks ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 2 | ttyang | 2020-08-21 22:12 | Install | 1 history list 查看上述说列出来ID为2的信息; [root@centos7 log]#yum history info 2 Loaded plugins: fastestmirror, langpacks Transaction ID : 2 Begin time : Fri Aug 21 22:12:08 2020 Begin rpmdb : 1386:4f7527a1defed85d7f6150bf5b1abbb07ee007fc End time : 22:12:09 2020 (1 seconds) End rpmdb : 1387:cad1f514c75ebd89c1f01b928cd4a53f5ef20814 User : ttyang Return-Code : Success Command Line : install sl Transaction performed with: Installed rpm-4.11.3-35.el7.x86_64 @anaconda Installed yum-3.4.3-161.el7.centos.noarch @anaconda Installed yum-plugin-fastestmirror-1.1.31-50.el7.noarch @anaconda Packages Altered: Install sl-5.02-1.el7.x86_64 @epel history info 删除依赖 yum history undo 2 撤销依赖 yum history redo 2 rpm安装某些包时,因为依赖而无法安装 [root@centos7 ~]#rpm -ivh /misc/cd/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm error: Failed dependencies: /etc/mime.types is needed by httpd-2.4.6-88.el7.centos.x86_64 httpd-tools = 2.4.6-88.el7.centos is needed by httpd-2.4.6-88.el7.centos.x86_64 libapr-1.so.0()(64bit) is needed by httpd-2.4.6-88.el7.centos.x86_64 libaprutil-1.so.0()(64bit) is needed by httpd-2.4.6-88.el7.centos.x86_64
/etc/mime.types是所需要的包 [root@centos7 ~]#yum provides /etc/mime.types Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile mailcap-2.1.41-2.el7.noarch : Helper application and MIME type associations for file types Repo : base Matched from: Filename : /etc/mime.types 需要准备依赖的包 mailcap-2.1.41-2.el7.noarch 重装 yum reinstall COMMAND 后续安装rpm包,可以直接yum,直接跳过依赖 yum install /misc/cd/Packages/*.rpm yum命令 查看程序包information: yum info [...] 查看包依赖于哪个文件 [root@centos7 ~]#yum deplist httpd DNF (DaNdiFied) DNF介绍:新一代RPM软件包管理器,是用python编写的,红帽8.0版本取代了yum,DNF包管理器克服了YUM包管理器的一些瓶颈,提升 了包括用户体验,内存占用,依赖分析,运行速度等。 安装所需软件包,依赖epel源 wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/dnf-conf-0.6.4-2.sdl7.noarch.rpm wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64//dnf-0.6.4-2.sdl7.noarch.rpm wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/python-dnf-0.6.4-2.sdl7.noarch.rpm yum install python-dnf-0.6.4-2.sdl7.noarch.rpm dnf-0.6.4-2.sdl7.noarch.rpm dnf-conf-0.6.4-2.sdl7.noarch.rpm python2-libcomps-0.1.8-3.el7.x86_64.rpm libcomps-0.1.8-3.el7.x86_64.rpm 配置文件:/etc/dnf/dnf.conf 仓库文件:/etc/yum.repos.d/ *.repo 日志: /var/log/dnf.rpm.log DNF 使用与yum一样 程序包编译 程序包编译安装: Application-VERSION-release.src.rpm --> 安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装 源代码-->预处理-->编译-->汇编-->链接-->执行 源代码组织格式: 多文件:文件中的代码之间,很可能存在跨文件依赖关系 C、C++:make 项目管理器 configure脚本 --> Makefile.in --> Makefile java: maven 编译安装 C语言源代码编译安装三步骤: 1、./configure (1) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的 指定以及Makefile.in文件生成Makefile (2) 检查依赖到的外部环境,如依赖的软件包 2、make 根据Makefile文件,构建应用程序 3、make install 复制文件到相应路径 开发工具: autoconf: 生成configure脚本 automake:生成Makefile.in 注意:安装前查看INSTALL,README 编译C源代码: 准备:提供开发工具及开发环境 开发工具:make, gcc等 开发环境:开发库,头文件 glibc:标准库 实现:通过“包组”提供开发组件 Development Tools Server Platform Development 生产实践:(基于最小化安装的系统) yum install gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel vim lrzsz tree screen lsof tcpdump wget ntpdate net-tools iotop bc zip unzip nfs-utils ==============================================================
具体步骤: 第一步:configure脚本 选项:指定安装位置、指定启用的特性 --help: 获取其支持使用的选项 选项分类: 安装路径设定: --prefix=/PATH:指定默认安装位置,默认为/usr/local/ --sysconfdir=/PATH:配置文件安装位置 System types:支持交叉编译 Optional Features: 可选特性 --disable-FEATURE --enable-FEATURE[=ARG] 注意:通常被编译操作依赖的程序包,需要安装此程序包的“开发”组件, 其包名一般类似于name-devel-VERSION 第二步:make 第三步:make install 安装后的配置: (1) 二进制程序目录导入至PATH环境变量中 编辑文件/etc/profile.d/NAME.sh export PATH=/PATH/TO/BIN:$PATH (2) 导入帮助手册 编辑/etc/man.config|man_db.conf文件 添加一个MANPATH ============================================================== Ubuntu 软件管理 Debian 软件包通常是预编译的二进制 制格式的扩展名“.deb”,类似rpm文件。 因此安装 快速,无需编译软件。 dpkg:package manager for Debian,类似于rpm, dpkg是基于Debian的系统的包 管理器。可以安装,删除和构建软件包,但无法自动下载和安装软件包或其依赖项。安装命令为dpkg -i *.deb APT:Advanced Packaging Tool,功能强大的软件管理工具,甚至可升级整个Ubuntu 的系统,基于客户/服务器架构 APT工作原理:在服务器上先复制所有DEB包,然后用APT的分析工具genbasedir根据 每个DEB 包的包头(Header)信息对所有的DEB包进行分析,并将该分析结果记录在文 件夹base内的一个DEB 索引清单文件中,一旦APT 服务器内的DEB有所变动,要使用 genbasedir产生新的DEB索引清单。客户端在进行安装或升级时先要查询DEB索引清单, 从而获知所有具有依赖关系的软件包,并一同下载到客户端以便安装。当客户端需要安 装、升级或删除某个软件包时,客户端计算机取得DEB索引清单压缩文件后,会将其解 压置放于 /var/cache/apt/,而客户端使用apt-get install或apt-get upgrade命令的时 候,就会将这个文件夹内的数据和客户端计算机内的DEB数据库比对,知道哪些DEB已 安装、未安装或是可以升级的。
dpkg常见用法: man dpkg dpkg -i * 安装 dpkg -r * 删除包,不建议,不自动卸载依赖于它的包 dpkg -P * 删除包(包括配置文件) dpkg -l 列出当前已安装的包,类似rpm -qa dpkg -l package 显示该包的简要说明,类似rpm –qi dpkg -L * 列出该包中所包含的文件,类似rpm –ql dpkg -S * 搜索包含pattern的包,类似rpm –qf dpkg -s * 列出该包的状态,包括详细信息,类似rpm –qi dpkg --configure package 配置包,-a 使用,配置所有没有配置的软件包 dpkg -c package.deb 列出 deb 包的内容,类似rpm –qpl dpkg --unpack package.deb 解开 deb 包的内容 例子: 查看/bin/bash来自于哪个软件包 dpkg -S /bin/bash 安装本地的 .deb 文件 dpkg -i /mnt/cdrom/pool/main/z/zip/zip_3.0-11build1_amd64.deb 卸载软件包 dpkg -r zip 注意:一般建议不要使用dpkg卸载软件包。因为删除包时,其它依赖它的包不 会卸载,并且可能无法再正常运行
1、Ubuntu 16.04 之前, 在基于 Debian 的 Linux 发 行版中,有各种工具可以与 APT 进行交互,以方便用户安装、删除和管理的软件包。 apt-get 是其中一个常用的命令行工具,另外一款较为流行的命令行与 GUI 兼顾的工 具是 aptitude ,之前最常用的 Linux 包管理命令都被分散在了 apt-get、apt-cache 和 apt-config 这三条命令中。在Ubuntu 16.04 之后, apt 相当于 apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。 2、 apt 与 apt-get 有一些类似的命令选项,但它并不能完全向下兼容 apt-get 命令,也即 可用 apt 替换部分 apt-get 系列命令,但不是全部。 3、具体用法可以查看帮助:apt help 4、 apt 特有的命令 apt list 列出包含条件的包(已安装,可升级等) apt edit-sources 编辑源列表 5、 apt命令操作(如安装和删除软件包)记录在/var/log/dpkg.log日志文件中 6、 apt-cache madison 包名称 将列出所有来源的版本 例子: apt示例: 安装包: apt install tree zip 删除包: apt remove tree zip 说明:apt remove中添加--purge选项会删除包配置文件,谨慎使用 更新包索引: apt update 升级包:要升级系统,请首先更新软件包索引,再升级 apt upgrade yum search Package 搜索包 编辑环境变量 vim /etc/profile.d/env.sh 执行生效 . /etc/profile.d/env.sh 查看是否生效 echo $PATH 设置开机自起: vim /etc/rc.d/rc/local 将http 服务启动命令添加进去 /apps/httpd24/bin/apachectl start 然后修改可执行权限 chmod +x /etc/rc.d/rc.local 服务是持续的,并且是一个大软件,必须设置开机自起 如果只有命令行,非图形化界面,对于centos系统,可以安装一个包组 yum install GNOME Desktop Ubuntu 中的仓库系统已经配置好了,无需手工干预 apt update |
CopyRight 2018-2019 实验室设备网 版权所有 |