apt

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 不需要  作为参数。


<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<think>我们首先需要澄清用户的问题:用户提到了两个可能的APT含义——高级持续性威胁(网络安全领域)和Linux中的APT包管理器。用户询问的是“APT技术”、“APT攻击”或“LinuxAPT使用指南”。因此,我们需要覆盖这两个方面。根据引用内容,用户提供的引用[1][2][3][4][5]都是关于Linux中的APT包管理器的,没有提到高级持续性威胁(APT攻击)。因此,我们只能基于引用内容回答LinuxAPT使用指南部分,但用户问题中明确提到了APT攻击,所以我们也要简要介绍高级持续性威胁。由于引用中没有关于高级持续性威胁的内容,我们只能依靠自己的知识来回答这部分。但根据指令,回答应尽量真实可靠,所以我们会简要概述,并建议用户如果需要详细内容可进一步询问。因此,回答将分为两部分:1.LinuxAPT使用指南(基于引用内容并补充常用命令)2.高级持续性威胁(APT攻击)的简要介绍然后根据指令生成相关问题。注意:引用内容只涉及LinuxAPT,所以我们在Linux部分使用引用标记,而高级持续性威胁部分则不使用引用标记(因为没有相关引用)。另外,按照指令,行内数学表达式用$...$,独立公式用$$...$$,但本问题中可能没有数学表达式,所以可以忽略。但为了遵循指令,如果出现变量等,我们会使用。回答结构:一、LinuxAPT包管理器使用指南二、高级持续性威胁(APT攻击)简介三、相关问题开始回答:</think>### APT技术解析:软件包管理器与高级持续性威胁 #### 一、Linux APT 包管理器使用指南 APT(Advanced Package Tool)是Debian/Ubuntu系统的核心包管理工具,通过以下操作实现软件管理: 1. **基础工作流** - 更新软件源索引:`sudo apt update`(解决引用[2]提到的存档获取错误)[^2] - 安装软件包:`sudo apt install <package>` - 升级所有软件:`sudo apt upgrade` 2. **软件源配置** 如引用[1]所示,添加第三方源需指定GPG密钥[^1]: ```bash echo "deb [signed-by=/etc/apt/keyrings/myapp.gpg] https://myapp.example.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/myapp.list ``` 3. **命令演进** `apt`(引用[4])是对`apt-get`/`apt-cache`的现代化整合(引用[3]),推荐使用更简洁的`apt`命令[^3][^4]: ```bash sudo apt remove firefox # 替代apt-get remove apt search ^vim # 替代apt-cache search ``` #### 二、高级持续性威胁(APT攻击) 指针对特定目标的长期网络攻击,特征包括: - **高级性**:使用0day漏洞等尖端技术 - **持续性**:长期潜伏(通常数月/年) - **定向性**:针对政府/企业等高价值目标 - 典型攻击链:侦查→渗透→命令控制→横向移动→数据渗出 > 注:此部分与Linux APT无关联,属于网络安全领域术语 #### 三、开发环境搭建示例 基于引用[5],配置C++开发环境[^5]: ```bash sudo apt update sudo apt install build-essential # 包含gcc/g++/make g++ --version # 验证编译器 ``` ### 相关问题 1. 如何解决`sudo apt install`出现的`E: Unable to locate package`错误? 2. APT攻击的典型防御策略有哪些? 3. `apt`和`apt-get`在功能上有哪些具体差异? 4. 如何安全地移除Ubuntu中已添加的第三方软件源? [^1]: 软件源配置示例 [^2]: APT更新失败解决方案 [^3]: APT命令演进历史 [^4]: APT工具功能整合说明 [^5]: 开发环境搭建指南
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值