
正文
linux安装包管理命令 linux安装包有几种格式
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
linux apt命令功能
一、apt的简介
apt命令可以说是Linux系统下最为重要的命令linux安装包管理命令,安装、更新、卸载软件linux安装包管理命令,升级系统内核都离不开apt命令。
apt的全称是Advanced Packaging Tool是Linux系统下的一款安装包管理工具。
最初需要在Linux系统中安装软件,需要自行编译各类软件,缺乏一个统一管理软件包的工具。此后当Debian系统出现后,dpkg管理工具也就被设计出来了,此后为了更加快捷、方便的安装各类软件,dpkg的前端工具APT也出现了。在Ubuntu16.04系统下apt命令功能又得到了强化,使其更加方便快捷和受欢迎了。
二、apt命令介绍
1.apt update
更新软件源中的所有软件列表。因为更新数据库等操作需要管理员的权限,所以在apt命令前要加上sudo命令取得权限。
运行apt update命令会返回三种状态:一是命中,一是获取,一是忽略。
命中表示连接上网站,包的信息没有改变。
获取表示有更新并且下载。
忽略表示无更新或更新无关紧要无需更新。
在命令显示的最后,会提示你有多少软件包可以升级,你可以根据自身的需求立即或稍后进行升级。
2. apt list
apt list --upgradeable:显示可升级的软件包。
apt list --installed:显示已安装的软件包。
3.apt upgrade
执行完update命令后,就可以使用apt upgrade来升级软件包了。执行命令后系统会提示有几个软件需要升级。在得到你的同意后,系统即开始自动下载安装软件包。
4. apt install 软件包名
安装指定软件。此命令需管理员权限。如果你对名字并不十分清楚,你可以输入软件名的一部分,系统会给出名字相近的软件包名的提示。在老版本中安装程序需要使用 sudo apt-get install 软件包名,现在新版本中已建议直接使用apt替代apt-get命令。
sudo apt install -f
使用此命令可修复依赖关系,假如有软件因依赖关系不满足而无法安装,就可以运行此命令自动修复安装程序包所依赖的包。特别是在使用dpkg命令安装deb软件包时出现依赖问题常需要此命令来修复。
5. apt remove 软件包名和apt autoremove
apt remove 软件包名用来卸载指定软件。
apt autoremove用来自动清理不再使用的依赖和库文件。
7.apt show 软件包名
显示软件包具体信息。例如:版本号,安装大小,依赖关系,bug报告等等。
相关问答
Q1: Linux安装软件的命令是什么?
LINUX下安装软件包常有三种,不同的软件包有不同的安装方法:tar包,整个安装过程可以分为以下几步:
1) 取得应用软件:通过下载、购买光盘的方法获得;
2) 解压缩文件:一般tar包,都会再做一次压缩,如gzip、bz2等,所以你需要先解压。如果是最常见的gz格式,则可以执行:“tar –xvzf软件包名”,就可以一步完成解压与解包工作。如果不是,则先用解压软件,再执行“tar –xvf 解压后的tar包”进行解包; 阅读附带的INSTALL文件、README文件;
3) 执行“./configure”命令为编译做好准备;
4) 执行“make”命令进行软件编译;
5) 执行“makeinstall”完成安装;
6) 执行“makeclean”删除安装时产生的临时文件。
7) 运行应用程序:一般来说,Linux的应用软件的可执行文件会存放在/usr/local/bin目录下!不过这并不是“放四海皆准”的真理,最可靠的还是看这个软件的 INSTALL和README文件,一般都会有说明。
8) 卸载:通常软件的开发者很少考虑到如何卸载自己的软件,而tar又仅是完成打包的工作,所以并没有提供良好的卸载方法。有两个软件能够解决这个问题,那就是Kinstall和Kife,它们是tar包安装、卸载的黄金搭档
rpm包,安装过程如下:
1) 操作系统:RedHat(Red Hat/Fedora)
2) 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数”
3) 包管理工具 yum
4) 支持tar包
5)1rpm命令:安装: rpm –ivh 软件包名.rpm( -I 安装软件,-t测试安装,不是真的安装,-p显示安装进度,-f忽略任何错误,-U升级安装,-v检测套件是否正确安装) 卸载: rpm –e 软件名(注意使用的是软件名,而不是软件包名) 查询:查询当前系统安装的软件包: rpm –qa ‘*软件包名*’
deb包,安装过程:
1) 操作系统:Debian系列(Ubuntu)
2) 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数”
3) 包管理工具apt-get
4) 支持tar包
5)dpkg命令:安装: dpkg –i 软件包名.deb, 卸载: dpkg –e 软件名,查询:查询当前系统安装的软件包: dpkg –l ‘*软件包名*’
Q2: Linux入门系列——软件包管理
RedHat 系统中使用的是: rpm (redhat package manager) 现在称:RPM is Package Manager
Debian : dpt
Ubuntu : apt
在安装软件的时候,有可能出现软件包的相互依赖关系;所以红帽公司推出了:yum(Yellowdog update modifier)
包的组成部分:
主包:
bind-9.7.1-1..e15.i586.rpm
子包:
bind-libs-9.7.1-1..e15.i586.rpm
bind-utils-9.7.1-1..e15.i586.rpm
包名:
PackageName-Version-Release.Arch.rpm
bind-major-minor-releases-release.arch.rpm
包名-主版本号-次版本号-发行号-rpm包的制作者的发行号.硬件平台.rpm
主版本号:重大改进;
次版本号:某个子功能发生重大变化;
发行号:修改BUG,调整了一点功能;
bind-9.7.1-1.noarch.rpm 这里的noarch表示不区分硬件平台,32和64都可以使用;如果是ppc则是在PowerPc上使用的包;
# rpm -ivh /path/to/Package_Name
-i,--install 表示安装
-v 表示显示安装过程的信息
-h 表示以#显示安装的进程,总数为50个;
-vv 显示更详细的过程;
--nodeps 安装的时候忽略依赖关系;
--force 无论之前是否安装过,都强制安装,可以实现重装、降级;
--replacepkgs 重新安装,替换原有的安装;
--oldpackage 对软件包进行降级;
--test Do not install the package, simply check for and report potential conflicts. 不进行安装,只测试看在安装的时候有没有依赖包要装;
rpm -q soft_name
# rpm -q httpd
rpm -qa 查询当前系统中已经安装的rpm软件包;
# rpm -qa |grep ‘ssh*’
rpm -qi soft_name 查询软件包的安装信息:
[root@ns2 rpm]# rpm -qi zlib-devel
Name : zlib-devel Relocations: /usr
Version : 1.2.3 Vendor: CentOS
Release : 4.el5 Build Date: 2011年05月11日 星期三 18时57分15秒
Install Date: 2013年07月21日 星期日 17时02分41秒 Build Host: builder10.centos.org
Group : Development/Libraries Source RPM: zlib-1.2.3-4.el5.src.rpm
Size : 269981 License: BSD
Signature : DSA/SHA1, 2011年09月04日 星期日 03时24分25秒, Key ID a8a447dce8562897
URL :
Summary : Zlib 开发的头文件和库。
Description :
zlib-devel 软件包包括开发使用 zlib 压缩和解缩库的程序
所需的头文件和库。
[root@ns2 rpm]#
rpm -ql soft_name 查看该软件包在系统中存放了哪些文件;
rpm -qf /path/to/file_name 查看该文件是由哪个rpm包生成的。
rpm -qc soft_name 查看指定rpm包安装的配置文件的位置;
rpm -qd soft_name 查看指定rpm包安装的帮助文件的位置;
rpm -q --scripts soft_name 查看指定rpm包在安装、卸载、更新的前后,所要执行的shell脚本;
rpm -qp[i|l|d|c|] 即要加上一个“p”选项;
rpm -Uvh /path/to/package_name
如果安装的指定的软件包已经安装过,则进行升级操作,如果没有安装过,则就使用指定的这个软件包进行安装;
rpm -Fvh /path/to/package_name
如果安装过,则升级,否则不进行任何操作;
rpm -Fvh --oldpackage package_name 通常用这个来降级一个rpm包;
rpm -e package_name
--nodeps 强制卸载
rpm -V package_name 也可以使用--verify
通常用来检查安装后的文件是不是被修改过;
加密算法:
对称加密: 加密和解密使用同一个key
非对称加密:有一对密钥(公钥和私钥),公钥大家都可以知道,私钥只有持有人知道;公钥加密私钥解,私钥加密公钥也可以解。不能由公钥摧出私钥,也不能由私钥摧出公钥;私钥还用来做签名,因为只有私钥持有人自己才有;
单向加密:使用这种加密算法加密后,是不可以再还原的。通常用它来做数据完整性的验证,也就是验证数据在传输的过程中有没有被别人修改过。
在红帽的系统中,/etc/pki/rpm-gpg/目录下面存放了红帽公司的gpg-key(相当于公钥),所以只需要把这个gpgkey导入到系统中就可以验证了。导入方法如下:
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
接下来就可以对将要安装的rpm包进行验证了:
# rpm -K /path/to/package_file
dsa,gpg验证来源的合法性,也就是验证签名。但是可以使用--nosignature 来跳过签名验证;
sha1,md5验证软件包的完整性,可以使用--nodigest 来跳过完整性验证;
rpm --rebuilddb 重建数据库
--initdb 初始化数据库
yum install -y pack1 pack2 安装指定的软件包
yum remove pack1 pack2 -y 删除指定的软件包
yum update pack1 pack2 更新指定的软件包
yum list installed 列出所有已经安装的软件包
yum update 更新源
yum search string 搜索包含string的软件包
yum install package_name 获取软件包信息
# tar zxf nginx-1.4.7.tar.gz -C /usr/src
# configure --prefix=/usr/local/nginx --conf-path=/etc
# make
# make install
由于使用的是源码包安装在非正常路径下。所以还要做以下的调整:
修改/etc/profile文件。或是在/etc/profile.d/下创建一个以.sh结尾的文件;再把二进制程序的路径export出来就行了;
在/etc/ld.so.conf.d/中创建一个以.conf文件结尾的文件,而后把要增添的路径直接写入此文件中就行了;
这样系统就会在下次启动的时候,自动加载这些新增加的库;如果想让系统马上可以找到这些新增加的库,就必须执行下面的命令:
# ldconfig 通知系统重新搜索库文件,还可以加上-v选项,表示显示过程;
默认的头文件搜索路径是:/usr/include/
要添加新的头文件搜索路径,可以使用链接的方式:
ln -s /usr/local/nginx/include/* /usr/include/
或
ln -s /usr/local/nginx/include /usr/include/nginx
这时可以修改/etc/man.conf文件,在里面添加以下内容:
MANPATH /usr/local/nginx/man
还有一种方式就是临时使用:
# man -M /usr/local/nginx/man nginx 这样就可以查看nginx的man手册了;
Q3: linux常用安装软件的命令
安装软件---这个操作在WINDOWS的世界里很简单,下载软件双击exe文件即可,还有自动运行方式的,复杂点的执行bat之类的可执行程序即可。但Linux不然,因Linux版本过多,导致软件的安装方法五花八门。本文只是将Linux的软件安装方式进行汇总和整理,没有过多的技术难度,仅供参考。
Linux下主要有两种方式,主要分在线安装和线下安装。(以下介绍的方式基本涵盖所有Linux系统的软件安装方式)
一、在线安装
1、软件管理中心安装。(ubuntu)1)更新源sudo apt-get update2)打开软件中心,搜索你要安装的软件,双击安装即可。例如安装apache,如下图
2、命令行安装方式
1)更新,命令:apt-get update
2)查找你要安装的软件,apt-cache search “软件名”
3)apt-get install 软件名
以上在线的两种方式都提到了apt-get 方式,那么它的工作原理简单说明一下,apt-get相关的有两个重要文件:1、是/etc/sources.list,2、是/var/lib/apt/lists/目录.
当我们执行apt-get update程序分析sources.list看这个文件里是否有对应的Packages/Sources/Release列表文件,如果有更新则下载之,存入/var/lib/apt/lists/目录(其实就是保持与当前系统版本软件源表最新);apt-get install 安装相应的包 ,下载并安装。
这种方式的好处在于:如果你想要加载的应用需要依赖另一个应用程序才能正常工作,apt-get会帮你找到并加载所需的程序库或应用代码,这种方式是比较常用的的。比如我们执行apt-get install mysql-server,可以看到相关的依赖包(如图)
二、线下安装
之所以叫线下的安装方式,也就是说你要把软件下载到本地去安装。一般我们下载的文件后缀名都是zip、tar.gz等压缩包,解压后会看到rpm、bin、deb、run之类扩展名文件。很多软件都会提供不同LINUX版本的安装格式,你可以根据自己的系统下载不同扩展名的软件。
1、rpm安装包:这时一款老牌的安装格式,是红帽创建的安装格式,现在已成为一种标准,常用在opensuse/turbo/redhat版本),安装方法rpm -ivh 软件名.rpm (如果只是安装一个i参数就够了,如果还要看安装进度和软件信息就加个vh)
2、deb安装包:DEB是Debian软件包格式的文件扩展名,常用在centos/ubuntu,在苹果系统里也常见此安装方式。安装方法:dpkg -i 软件名.deb
3、run安装包:以QT(一种编程工具)的安装文件为例,
1)授权: chmod x qt-unified-linux-x64-2.0.2-2-online.run
2)执行:./qt-unified-linux-x64-2.0.2-2-online.run即可安装。
4、bin安装包:bin包是一个自解压格式的安装包,要想执行它,需要先赋予它可执行的权限。
(以安装jdk为例)# chmod x jdk-6u21-linux-i586.bin# ./jdk-6u21-linux-i586.bin
5、编译后安装方式:
举例安装nagios插件(nagios是一种开源的监控软件,需要多种插件支持监控模块)
1)cd /tmp/nagios-plugins-* //先进入目录
2)./configure --with-nagios-user=nagios --with-nagios-group=nagios // 配置,即安装的用户安装的路径都可在此设置,这一步一般用来生成 Makefile,为下一步的编译做准备
3)make //编译过程如果 在 make 过程中出现 error ,你就要记下错误代码,缺少什么包就按照什么包。
4) make install //如果make无问题就可以直接安装了。
这种安装方法的好处是你可以自定义安装路径、安装账号等参数,常见开源平台下载的源码安装方式。
6、其它,还有一些软件解压后生成的文件夹内包含很多文件,一般文件夹内有install.sh、setup.py等安装文件方式,此种方式类似windows的exe安装方式,你需要先授权该文件的可执行权限,在执行安装。以上基本上囊括了所有的Linux环境下的软件安装方式,供各位参考。
Q4: Linux软件包管理工具 Snap 常用命令
apt所采用的包是deb包,deb包最初是Debian Linux推出的。由于ubuntu基于debian,ubuntu将其集成到linux安装包管理命令了apt包管理器中。apt可以自动解决软件之间依赖问题,ubuntu创建了一个类似apple store的软件商店。
snap是Canonical公司发布的全新的软件包管理方式,它类似一个容器拥有一个应用程序所有的文件和库,各个应用程序之间完全独立。所以使用snap包的好处就是它解决了应用程序之间的依赖问题,使应用程序之间更容易管理。但是由此带来的问题就是它占用更多的磁盘空间。
snap最大的特点就是使用了容器来管理软件,容器带来最大的好处就是linux安装包管理命令:
snap的特点是linux安装包管理命令:
有三种隔离级别:
Q5: Linux常用命令
列出当前目录的文件
常用参数linux安装包管理命令:
-a: 显示当前目录的所有文件,包含隐藏文件linux安装包管理命令;
-l: 显示文件详情;
-Z: 显示文件的 SE Linux context。
示例:ls -laZ [if !vml] [endif] 以 acct 为例: drwxr-xr-x:其中 d 代表该文件为目录linux安装包管理命令,若为 l 则为软链接linux安装包管理命令,软连接后又箭头代表其实际指向的文件,如etc - /system/etc 则访问 etc 实际等同访问/system/etc,留空则代表该文件为一个文件;rwxr-xr-x 代表其权限为 755,具体算法为将上述字段每 3 个分为 1 组得 rwx,r-x,r-x,凡是有字母标记的皆计数 1,反之为 0,得二进制 111,101,101,转为 10 进制数字即得7, 5,5 ,即为该文件权限; root root :依次代表该文件的所有者(owner)为 root,用户组(group)为 root,上述属性可通过 chown 命令修改,日常替换文件需与原文件该属性维持一致; unlabeled:代表 SE Linux context。
前往指定目录
更改文件所有者和用户组 示例:chown root:root temfile 将 tmpfile文件 的所有者和用户组从 meidia:media 更改为 root:root
将文件内容显示出来。
注意不要随便去 cat 一个很大的文件或与 log 驱动节点无关的文件,否则将造成串口输出乱码或死机!!!示例:cat /proc/kmsg 将打印出所有 kernel log。
用于抓取 android logcat 打印。
常用参数:
-v : 设置打印格式,可用选项为 brief process tag thread raw time threadtime long,我们比较常用 logcat -v time,此时抓的 log 将在每一行开头添加时间信息;
-s : 设置过滤器,过滤器的选择取决于软件中打印 log 时使用的 TAG ,如
ActivityManagerService.java 中的打印使用的 TAG = ActivityManager,则抓相关打印方法为 logcat -s ActivityManager;
-c : 清除 log 缓存,常用于清除之前的打印缓存,如复现某个必现问题,则可先执行 logcat -c 再抓 logcat 重现必现手法以排除无关 log 冗余信息影响问题定位; pm
包管理命令,用于管理安卓 app 应用。
常用参数:
-l : 显示所有安装包应用,等同于 pm list packages
以 package:/system/priv-app/Launcher2.apk=com.android.launcher 为例:
Apk Launcher2 路径位于/system/priv-app/Launcher2.apk,其包名为 com.android.launcher
path : 根据报名返回所在 apk 路径
install : 安装 apk
-r :安装一个已经存在的 apk 并保留其数据;
-d : 允许降级安装
如:pm install -r xxx.apk
uninstall : 卸载 apk,命令仅支持卸载 data/app,后接包名;
如:pm uninstall com.sys.migusmartlink.ott.tv //卸载包名为 com.sys.migusmartlink.ott.tv 的 apk
随机测试指令,会自动模拟一些用户操作对 APP 进行压力测试。
常用参数:
-p :指定启动的 APK,我们比较常用的是 monkey -p com.xxx.yyy 1 来启动一个 apk 的随机页面。
用于启动和管理 activity 和 service
常用参数:
start : 后接 intent 启动一个页面;
startservice : 后接 intent 启动一个 service; stopservice :后接 intent 停止一个 service; broadcast :后接一个 intent 发送一个广播; kill :后接一个 app 包名,杀掉该 app 所有进程;在 shell 环境下用如下参数表述一个 intent:
[-a ACTION] [-d DATA_URI] [-t MIME_TYPE]
[-c CATEGORY [-c CATEGORY] ...]
[-e|--es EXTRA_KEY EXTRA_STRING_VALUE ...]
[--esn EXTRA_KEY ...]
[--ez EXTRA_KEY EXTRA_BOOLEAN_VALUE ...]
[--ei EXTRA_KEY EXTRA_INT_VALUE ...]
[--el EXTRA_KEY EXTRA_LONG_VALUE ...]
[--ef EXTRA_KEY EXTRA_FLOAT_VALUE ...]
[--eu EXTRA_KEY EXTRA_URI_VALUE ...]
[--ecn EXTRA_KEY EXTRA_COMPONENT_NAME_VALUE]
[--eia EXTRA_KEY EXTRA_INT_VALUE[,EXTRA_INT_VALUE...]]
[--ela EXTRA_KEY EXTRA_LONG_VALUE[,EXTRA_LONG_VALUE...]]
[--efa EXTRA_KEY EXTRA_FLOAT_VALUE[,EXTRA_FLOAT_VALUE...]]
[-n COMPONENT] [-f FLAGS]
示例:
如我们在 logcat 抓到如下打印启动linux安装包管理命令了播放器:
START u0 {act=android.intent.action.VIEW dat=[4KH265_60.000fps_9Mbps]Wetek-Astra-2m.mp4 typ=video/* flg=0x13000000 cmp=com.meson.videoplayer/.VideoPlayer} from pid 15204
则我们可以使用如下 am 指令来启动它:
am start -a android.intent.action.VIEW -d [4KH265_60.000fps_9Mbps]Wetek-Astra-2m.mp4 -t video/* -f 0x13000000 -n com.meson.videoplayer/.VideoPlayer am start -n com.android.settings/.Settings //启动原生安卓设置主页
am broadcast -a com.chinamobile.action.KEY_PRESS_DOWN --ei keyCode 11 am broadcast -a com.chinamobile.action.IR_TEST --es irphycode "0x008EDD22" //发送广播
查找命令,查找文件中是否包含指定字符串并输出该行示例:
grep -rns "repeat" /system/etc/remote1.conf //找出/system/etc/remote1.conf 所有包含 repeat 的行并展示行号
参数说明:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。
命令示例:cp -a a parentPath/sonPath/ a对应当前文件夹下目录或文件名 可替换为绝对路径
移动指令,等效于 windows 的移动和重命名。
示例:
mv /data/tmp1 /data/local/tmp2 //将 data/tmp1移动到/data/local/ 并重命名为 tmp2
删除指令,用于删除文件和文件夹,示例:
rm -rf tmp // 删除 tmp,建议加上-rf参数,其会删除 tmp 所有的目录和文件。
创建目录。常用参数:
-p :若 mkdir -p 后接路径包含不存在路径则一并创建。
同步命令,常用于 cp 替换文件或指令结束后同步状态,有益无害。
重定向,即将一个命令的输出指向另外路径的文件,使用覆盖模式,即重定向到的文件若存在将覆盖里面的内容。
示例:
logcat /data/xxx.log; //将 logcat输出到/data/xxx.log;
cat /proc/kmsg /data/kmsg.log; //将 kmsg 打印输出重定向到/data/kmsg.log
重定向,即将一个命令的输出指向另外路径的文件,使用拼接模式,即重定向到的文件若存在则将输出拼接到原文件的后面。
示例:
logcat /data/xxx.log; //例如我们做 netreboot的时候需要每一次开关机的 log,则会用拼接模式记录log。
将指令放至后台静默执行。
依次执行指令,若有指令执行失败,则后续指令不会执行。
示例:
logcat -c logcat //先清除 logcat 缓存再抓取 log
关于linux安装包管理命令和linux安装包有几种格式的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






