linux下自动获取并安装软件包 apt-get 的命令介绍
apt-cache search package 搜索包
apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package 安装包
sudo apt-get install package - - reinstall 重新安装包
sudo apt-get -f install 强制安装?#"-f = --fix-missing"当是修复安装吧...
sudo apt-get remove package 删除包
sudo apt-get remove package - - purge 删除包,包括删除配置文件等
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-get dselect-upgrade 使用 dselect 升级
apt-cache depends package 了解使用依赖
apt-cache rdepends package 了解某个具体的依赖?#当是查看该包被哪些包依赖吧...
sudo apt-get build-dep package 安装相关的编译环境
apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理下载文件的存档 && 只清理无用的包
sudo apt-get check 检查是否有损坏的依赖
apt-get install
下载 以及所有倚赖的包裹,同时进行包裹的安装或升级.如果某个包裹被设置了 hold (停止标志,就会被搁在一边(即不会被升级).更多 hold 细节请看下面.
apt-get remove [--purge]
移除 以及任何倚赖这个包裹的其它包裹.
--purge 指明这个包裹应该被完全清除 (purged) ,更多信息请看 dpkg -P .
apt-get update
升级来自 Debian 镜像的包裹列表,如果你想安装当天的任何软件,至少每天运行一次,而且每次修改了
/etc/apt/sources.list 后,必须执行.
apt-get upgrade [-u]
升级所以已经安装的包裹为最新可用版本.不会安装新的或移除老的包裹.如果一个包改变了倚赖关系而需要安装一个新的包裹,那么它将不会被升级,而是标志为 hold .apt-get update 不会升级被标志为 hold 的包裹 (这个也就是 hold 的意思).请看下文如何手动设置包裹为 hold .我建议同时使用 '-u' 选项,因为这样你就能看到哪些包裹将会被升级.
apt-get dist-upgrade [-u]
和 apt-get upgrade 类似,除了 dist-upgrade 会安装和移除包裹来满足倚赖关系.因此具有一定的危险性.
apt-cache search
搜索满足 的包裹和描述.
apt-cache show
显示 的完整的描述.
apt-cache showpkg
显示 许多细节,以及和其它包裹的关系.
dselect
console-apt
aptitude
gnome-apt
APT 的几个图形前端(其中一些在使用前得先安装).这里 dselect 无疑是最强大的,也是最古老,最难驾驭.
普通 Dpkg 用法
dpkg -i
安装一个 Debian 包裹文件;如你手动下载的文件.
dpkg -c
列出 的内容.
dpkg -I
从 中提取包裹信息.
dpkg -r
移除一个已安装的包裹.
dpkg -P
完全清除一个已安装的包裹.和 remove 不同的是, remove 只是删掉数据和可执行文件, purge 另外还删除所有的配制文件.
dpkg -L
列出 安装的所有文件清单.同时请看 dpkg -c 来检查一个 .deb 文件的内容.
dpkg -s
显示已安装包裹的信息.同时请看 apt-cache 显示 Debian 存档中的包裹信息,以及 dpkg -I 来显示从一个
.deb 文件中提取的包裹信息.
dpkg-reconfigure
重新配制一个已经安装的包裹,如果它使用的是 debconf (debconf 为包裹安装提供了一个统一的配制界面).你能够重新配制 debconf 它本身,如你想改变它的前端或提问的优先权.例如,重新配制 debconf ,使用一个 dialog 前端,简单运行:
dpkg-reconfigure --frontend=dialog debconf (如果你安装时选错了,这里可以改回来哟
echo " hold" | dpkg --set-selections
设置 的状态为 hlod (命令行方式)
dpkg --get-selections ""
取的 的当前状态 (命令行方式)
支持通配符,如:
Debian:~# dpkg --get-selections *wine*
libwine hold
libwine-alsa hold
libwine-arts hold
libwine-dev hold
libwine-nas hold
libwine-print hold
libwine-twain hold
wine hold
wine+ hold
wine-doc hold
wine-utils hold
例如:
大家现在用的都是 gaim-0.58 + QQ-plugin,为了防止 gaim 被升级,我们可以采用如下方法:
方法一:
Debian:~# echo "gaim hold" | dpkg --set-selections
然后用下面命令检查一下:
Debian:~# dpkg --get-selections "gaim"
gaim hold
现在的状态标志是 hold,就不能被升级了.
如果想恢复怎么办呢?
Debian:~# echo "gaim install" | dpkg --set-selections
Debian:~# dpkg --get-selections "gaim"
gaim install
这时状态标志又被重置为 install,可以继续升级了.
同志们会问,哪个这些状态标志都写在哪个文件中呢?
在 /var/lib/dpkg/status 里,你也可以通过修改这个文件实现 hold.
有时你会发现有的软件状态标志是 purge,不要奇怪.
如:事先已经安装了 amsn, 然后把它卸了.
apt-get remove --purge amsn
那么状态标志就从 install 变成 purge.
方法二:
在/etc/apt 下手动建一个 preferences 文件
内容:
Package: gaim
Pin: version 0.58*
保存
更详细内容请看:http://linuxsir.com/bbs/showthread....&threadid=22601
dpkg -S
在包裹数据库中查找 ,并告诉你哪个包裹包含了这个文件.(注:查找的是事先已经安装的包裹)
从源码建立deb packages
apt-get source [-b]
下载一个源码的包并解开。
你必须在你的/etc/apt/sources.list文件里写入一条 deb-src 的记录才能完成这项工作。
如果你输入了一个-b参数,并且是以root的身份,deb包会被自动的创建。
apt-get build-dep
自动下载并安装通过源码创建 时需要的包。
只有apt 0.5以上版本才支持这个功能。
现在woody和以上版本包含了这个功能。
如果你使有一个旧版本的apt,查找依赖性最简单的方法是查看源码包中 debian/control 这个文件,
注意这个路径是相对的,是包内的路径。
普通的用法,结合 apt-get source -b,例子 (as root):
apt-get build-dep
apt-get source -b
会下载源码包,建立依赖性,然后尝试编译源码。
dpkg-source -x
如果你手工下载了一个程序的源码包,其中包含了几个类似 .orig.tar.gz , .dsc ,
以及 .diff.gz 之类的文件,
那么你就可以对 .dsc 文件使用这个命令来 unpack 源码包。
dpkg-buildpackage
从 Debian 源码树建立一个deb包。你必须在source tree的主目录才能生效。例如:
dpkg-buildpackage -rfakeroot -uc -b
这里 '-rfakeroot' 指定命令使用 fakeroot 程序来模仿 root 权限 (来实现所有者(ownership)目的),
'-uc' 表示 "Don't cryptographically sign the changelog", '-b' 代表只建立二进制包.
debuild
一个快速打包脚本类似 dpkg-buildpackage ,能自动的识别是否使用 fakeroot,
同时为你运行 lintian 和 gpg
修正倚赖关系
dpkg --configure --pending
如果dpkg在apt-get install upgrade dist-uptradeing 的时候出错退出,
尝试使用此命令来配置已经unpack的包。
然后再用 apt-get install ,upgrade, or dist-upgrade -f ,
然后再用 apt-get install, upgrade, or dist-upgrade.
可能会重复多次,这样通常可以解决大多数的依赖性问题。
(同时,如果提示由于某种原因需要某个特定的包裹,你可以常识安装或卸载这个包)
apt-get install -f
apt-get upgrade -f
apt-get dist-upgrade -f
尝试修正上述过程中出现依赖性关系
注意 apt-get install -f 不需要 作为参数。
------------------------------------------------------------
以32位Ubuntu14.04下,获取ls命令的源代码为例,可以使用如下的方法下载源代码:
1)使用which命令查看ls命令的位置,如下:
which ls # 输出:/bin/ls
2)使用dpkg命令查询ls命令所属的包,如下:
dpkg -S /bin/ls # 输出:coreutils: /bin/ls
3)使用apt-get命令来下载ls命令所在的包的源代码,如下:
apt-get source coreutils
注:
1)在使用dpkg时,若出现错误,可以使用sudo命令使其以root权限执行。
2)使用apt-get source下载的源代码保存到当前目录下。。此外,当我们知道了命令所属的包后,也可以到相应的官方网站下载。
------------------------------------------------------------
如何获取ubuntu源码包里面的源码?
1、在获取源码包之前,确保在软件源配置文件/etc/apt/sources.list中添加了deb-src项
2、使用如下命令获取xxx源码包的详细信息:
sudo apt-cache showsrc xxx 这用来查询当前镜像站点中是否有该源码包。
3、源码包中通常包含3个文件,分别以dsc,orig.tar.gz和diff.gz为后缀名。
sudo apt-get source xxx 命令来获取源码包,它会将源码包下载到用户当前目录
并在命令执行过程中,调用dpkg-source命令,根据dsc文件中的信息,将源码包解压到同名目录中,应用程序的源代码就在这里面。
sudo apt-get source xxx
要强调的是,在下载源码包前,必须确保安装了dpkg-dev(执行”apt-get install dpkg-dev”来安装),
否则,只会下载源码包的3个文件,但不会解压缩源码包。当然你也可以自己用dpkg-source命令去解压缩源码包。
4、在编译源码包前,需要安装具有依赖关系的相关软件包。使用”apt-get build-dep”命令可以主动获取并安装所有相关的软件包。
sudo apt-get build-dep xxx
5、现在可以来编译源码包了,首先进入源码所在目录,使用dpkg-buildpackage命令来编译源码包,它会将生成的Deb软件包放置在上层目录中。
cd xxx
sudo dpkg-buildpackage
这样就会编译生成xxx_i386.deb
6、安装软件包。使用”dpkg –i”命令来安装生成的Deb软件包。
sudo dpkg -i xxx_i386.deb
------------------------------------------------------------
以32位Ubuntu14.04下,获取ls命令的源代码为例,可以使用如下的方法下载源代码:
1)使用which命令查看ls命令的位置,如下:
which ls # 输出:/bin/ls
2)使用dpkg命令查询ls命令所属的包,如下:
dpkg -S /bin/ls # 输出:coreutils: /bin/ls
3)使用apt-get命令来下载ls命令所在的包的源代码,如下:
apt-get source coreutils
注:
1)在使用dpkg时,若出现错误,可以使用sudo命令使其以root权限执行。
2)使用apt-get source下载的源代码保存到当前目录下。。此外,当我们知道了命令所属的包后,也可以到相应的官方网站下载。
---------------------
本文来自 拿破仑的海阔天空 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/hktkfly6/article/details/53156283?utm_source=copy
linux下自动获取并安装软件包 apt-get 的命令介绍的更多相关文章
- Linux下的网络远程安装
Linux下的网络远程安装 1.用RHEL6.5光盘安装第一台服务器 2.在第一台服务器上配置YUM服务器 先创建一个挂载 #mount #umount /dev/cdrom #mkdir /mnt/ ...
- Linux下自动备份MySQL数据库并上传到远程FTP服务器
Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明: 1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...
- Linux下自动备份Oracle数据库并删除指定天数前的备份
说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用 ...
- linux下常见的包安装方式
linux下常见的包安装方式 一.总结 一句话总结: rpm包安装 tar.gz源代码包安装 yum方式安装rpm包 bin文件安装 1.yum是什么? 安装所有依赖的软件包 Yum(全称为 Yell ...
- Linux下指定版本编译安装LAMP
说明: 操作系统:CentOS 6.5 64位 需求: 编译安装LAMP运行环境 各软件版本如下: MySQL:mysql-5.1.73 Apache:httpd-2.2.31 PHP:php-5.2 ...
- Linux下的Oracle 11gr2安装完成的的自启动操作。
Linux下的Oracle在安装结束后是处于运行状态的.重启机器后,Oracle不会像在Windows下那样将Oracle添加到Windows服务,在linux下需要手动启动Orcle服务 以orac ...
- linux下python3源码安装及卸载
Linux下Python3的源码编译安装和卸载方法 [日期:2019-06-21] 来源:博客园 作者:wuli潇萧 [字体:大 中 小] (一)Linux下软件的源码编译安装和卸载方法 L ...
- Linux下MiniGUI库的安装
Linux下MiniGUI库的安装 今天试了下安装MiniGUI的库 先仿照官网的教程安装 传送门:MiniGUI官网 一.配置依赖环境 安装构建工具 apt install binutils aut ...
- Linux下apache+phppgadmin+postgresql安装配置
Linux下apache+phppgadmin+postgresql安装配置 操作系统:CentOS 安装包:httpd(首选yum), php(包括php以及php-pgsql,php-mbstri ...
随机推荐
- 8、jeecg 笔记之 自定义word 模板导出(一)
1.前言 jeecg 中已经自带 word 的导出导出功能,其所使用的也是 easypoi,尽管所导出的 word 能满足大部分需求, 但总是有需要用到自定义 word导出模板,下文所用到的皆是 ea ...
- webpack入门操作教程
1. webpack介绍 在传统的项目中,一个html文件可能会加载多个js.css文件,如果多人协同开发的话,就会出现全局变量被污染.文件直接的依赖问题 而webpack打包工具,会先分析入口文件的 ...
- supervisor无法监听uwsgi
➜ ~ sudo supervisorctl data_config FATAL Exited too quickly (process log may have details) data_conf ...
- Extjs6 modern formpanel 上传文件 问题
要设置 enableSubmissionForm: false 否则chrome会报 Form submission canceled because the form is not connecte ...
- 干了这杯Java之transient关键字
看源码的时候,发现transient这个关键字,不甚理解,查找资料发现:不被序列化 疑问: 静态变量是不是不被序列化? public class User implements Serializabl ...
- Markdown学习示例
Markdown学习示例 什么是Markdown Markdown是一种在web显示带样式风格文本的方式.你能通过它控制文本的字体样式.插入图片.插入列表等.通常,Markdown使用一些特殊的非字母 ...
- Uncaught TypeError: Cannot read property 'getters' of undefined
vuex下新建的模板没有加 export default permission导致错误
- notify.min.js
/*! * @wcjiang/notify v2.0.11 * JS achieve the browser title flashing , scrolling, voice prompts , c ...
- c#中WebApi开发遇到的坑
一.如何新建一个webApi项目 打开VS→找到解决方案→新建项目→类库或web应用程序→选择空的WebApi项目→在Global.asax文件的Application_Start方法中注册WebAp ...
- flask error
from flask import Flaskfrom flask import abort app = Flask(__name__) @app.route('/')def index(): ret ...