apt-get使用总结

专载:http://blog.chinaunix.net/uid-9525959-id-2001625.html

[功能]
ubuntu下面的软件包管理工具。

[举例]

目前常用的

*更新本机中的数据库缓存:
sudo apt-get update

*查找包含部分关键字的软件包:
sudo apt-cache search <你要查找的name>

*安装指定的软件:
sudo apt-get install <你要安装的软件包>

*下载软件包源代码(如果有的话):
apt-get source <你要下载的源代码包名>

详细的资料

http://www.debian.org/doc/manuals/apt-howto/ch-sourcehandling.en.html
apt-get:

安装和卸载——
*更新本机中的数据库缓存:
sudo apt-get update
最好定期更新一下使你自己机器上面的数据和服务器(/etc/apt/sources.list列出)上面的信息保持一致,在安装软件之前可以运行一下这个命令保证成功性。

*安装软件:

apt-get install packagename

这里将安装你需要的在sources.lists中的最新的软件包,如果有其他依赖则自动安装相应的依赖软件包。packagename可以是多个软件包。
一些有用的选项:
-h This help text.
-d Download only - do NOT install or unpack archives
-f Attempt to continue if the integrity check fails
-s No-act. Perform ordering simulation
-y Assume Yes to all queries and do not prompt
-u Show a list of upgraded packages as well

*卸载软件(用install):

apt-get install packagename-

在需要卸载的包后面加上一个’-‘(我没有实验过),当然可以apt-get install p1 p2-这样多个命令合并了,装p1卸p2。

*卸载软件2:

apt-get remove packagename

这会卸载相应的软件,同时也会卸载依赖的部分,没办法指定不卸载依赖的。但是软件的配置文件还是会留在系统中。

*完全卸载软件包括删除配置:

apt-get –purge remove packagename

这样配置文件也会被删除。

*安装软件2(用remove):

apt-get remove packagename+

这个和用install来卸载软件的意义类似,在包名称后面添加一个+,表示安装。

*修复或者只安装最新版本:

apt-get –reinstall install packagename

这里,如果你的软件包被破坏了,或者你想要安装一个最新的软件,运行这个。

升级软件包——
*升级软件包1:

apt-get -u upgrade

这里加上-u选项列出将要升级的软件,可能会提示有些软件不会升级,因为可能会破坏依赖关系,更好的方法是利用apt-get dist-upgrade
你可以通过cd或者添加源地址来更新,如果你想从cd来升级,首先运行apt-cdrom把cd中的软件添加到/etc/apt/sources源中,然后运行apt-get dist-upgrade来升级,但是因为apt-get总是使用最新版本,如果cd中的不是最新的版本,那么也不会用到cd。

*升级软件包2:

apt-get -u dist-upgrade

这样安装的软件前面apt-get -u upgrade安不了的也会安装了,但个别的仍然不能安装,例如:升级会导致需要卸载一些包,卸载这些包会导致另外的软件不能用,所以就不升级了。

*升级软件包3:

apt-get -u install packagename

假设前面升级的时候packagename无法升级,那么这个命令会升级packagename如果需要卸载默写模块而卸载这些模块导致一些软件无法使用,那么干脆把这些软件都卸载了,然后升级,这个命令会导致packagename最终升级了。

清理没用的包文件——
用apt-get 安装软件包的时候,apt会从/etc/apt/sources.list里面将相应的软件包恢复出来,把它们存放在一个本地的文档库中(/var/cache/apt/archives/)然后才开始安装,随着时间的增长,这将不断地消耗硬盘的空间。

*清理所有的缓存文件:

apt-get clean

这会清理所/var/cache/apt/archives/ 和 /var/cache/apt/archives/partial/中没有被锁定的文件。当然你再次安装软件的时候,这个软件又被恢复到本地文档库中了。

*仅仅清理旧的缓存文件:

apt-get autoclean

这会清理旧版本的/var/cache/apt/archives/ 和 /var/cache/apt/archives/partial/中的文件。旧版本是指已经有更新的版本的软件了,再下载的话应下载最新的而不是这个旧版本的了。根据apt-show-versions -p可以知道哪些是旧的。

*安装指定版本的软件包:

apt-get install package=version

查找信息——–

*查找一个含有packagename字符串的包:

apt-cache search packagename

这样将输出所包含packagename字符串的包。

*显示软件包的详细信息:

apt-cache show stella

这包含了软件包许多的信息,例如如果你已经安装了这个软件包,信息里面也会显示。

*显示软件包的大致信息:
apt-cache showpkg packagename
这会显示大致的信息。

*查看那些包可以升级的信息:
$ apt-show-versions -u
这个apt-show-versions工具需要安装一下的。

*查看当前特定软件版本:
apt-show-versions -p packagename

*检查packagename依赖的包:

apt-cache depends packagename

工作相关——–

*安装编译源代码需要的库(包):

apt-get build-dep packagename

所的源代码包一个’Build-Depends’域,指明了从源代码编译这个包需要安装的软件。上面的命令可以下载这些包,其中’packagename’是包名。

*查看编译一个包需要哪些其他的库(包):

apt-cache show packagename

如果你只是想要检查编译一个包需要哪些其他的包,那么可以利用上面的命令,其中’packagename’是包名。

*下载包packagename的源代码:
$ apt-get source packagename
这将在当前目录下载个文件:.orig.tar.gz,.dsc,*.diff.gz。如果这个包是debian的,那么最后一个文件没有,并且第一个文件名里面不包括”orig”字符串。
.dsc文件被dpkg-source使用,把源代码包解压到目录 packagename-version.每一个下载的源代码包里面都有一个debian/目录,这个目录包含了用于创建.deb包的文件。

*下载的时候自动把源代码包编译:
$ apt-get -b source packagename
可能是编译成.deb包,我没有试过。

*根据下载的源代码创建deb包:
$ dpkg-buildpackage -rfakeroot -uc -b
如果你决定在下载的时候不创建deb包,你可以以后通过在下载的包之后创建的目录里面运行这个命令来创建。

*直接利用包管理器安装包:

dpkg -i file.deb

需要直接使用包管理器,运行这个命令来安装包。

——-dpkg查找

*已知软件包中有一个文件,根据文件查找软件包:

dpkg -S stdio.h

输入之后,输出如下:
libc6-dev: /usr/include/stdio.h
libc6-dev: /usr/include/bits/stdio.h
perl: /usr/lib/perl/5.6.0/CORE/nostdio.h
这在知道包中某些文件的时候,来根据文件查找软件包这种情况下非常用。

*查找安装在你的机器上面的软件包:
dpkg -l

*自动安装缺失的软件:

auto-apt run command

这里,command是你要运行的命令。例如 auto-apt run ./configure .当缺失依赖软件的时候,它会询问你安装,方便了编译。安装之后会继续运行。auto-apt需要保持一个最新的数据库,利用这个命令进行更新:auto-apt update, auto-apt updatedb and auto-apt update-local。

——–apt-get查找

*利用apt-file根据文件名查找相应的软件包:
$ apt-file search filename
如果你只知道程序名字filename,那么你可以运行这个命令,它的工作方式和 dpkg -S差不多,就是根据某个软件包里可能包含的文件来查找这个软件包的名字。另外,它也会显示包含这个文件的没有安装的软件包。当你编译的时候,提示缺了什么头文件的时候,利用这个很方便地确定需要装哪些软件包(当然利用audo-apt更方便).

*列出一个软件包中包含的文件:
$apt-file list packagename
这里,apt-file是根据一个数据库来读取信息的,所以需要保持数据库是最新的。

*更新apt-file的数据库:

apt-file update

默认情况下,apt-file的数据库和auto-apt是一样的。

[其他]
问题:
如何查看已经安装的软件?
如何确定一个软件是否已经安装?

<think>首先,用户的问题是:“我想在基于Debian的Linux系统上更新软件包列表并安装软件包 请问apt-get update and install command usage in Linux”。这是一个关于在基于Debian的Linux系统上使用apt-get命令来更新软件包列表并安装软件包的查询。 我需要参考系统指令和用户可见层的要求: - 所有行内数学表达式使用$...$格式。 - 独立公式使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识,例如[^1]。 - 回答结构清晰,帮助用户逐步解决问题,尽量保证回答真实可靠。 用户提供的引用包括: - [^1]: 关于apt-get命令的描述。 - [^2]: 关于Debian包管理系统的描述。 - [^3]: 关于在Ubuntu服务器上安装GUI桌面的命令。 - [^4]: 关于vcpkg安装命令的描述。 这些引用不是直接针对用户当前的问题,但[^1]和[^2]与apt-get相关,所以我应该自然地引用它们,如果适用。 用户的问题是询问apt-get update和install命令的用法。所以,我需要解释如何使用apt-get update来更新软件包列表,以及如何使用apt-get install来安装软件包。 关键点: - apt-get update:更新本地软件包列表,从软件源获取最新信息。 - apt-get install:安装指定的软件包。 命令格式: - sudo apt-get update - sudo apt-get install package_name 用户指定了“基于Debian的Linux系统”,如Ubuntu、Debian等。 回答结构: 1. **引言**:简要介绍apt-get命令和它的作用。 2. **步骤解释**:逐步解释如何更新软件包列表和安装软件包。 3. **命令示例**:提供具体的命令示例。 4. **注意事项**:提到可能需要sudo权限,因为安装软件通常需要管理员权限。 5. **生成相关问题**:在最后添加相关问题。 使用中文回答。 在引用时,自然地添加引用标识。例如,如果提到apt-get解决依赖关系,可以引用[^1]。 现在,构建回答: - 开头:确认用户的问题,并简要介绍。 - 主体: - 解释apt-get update:更新软件包索引。 - 解释apt-get install:安装软件包。 - 提供示例命令。 - 结尾:总结并添加相关问题。 相关问题生成: 1. 如何升级所有已安装的软件包? 2. 如何卸载软件包? 3. apt-getapt命令的区别是什么? 4. 如何添加新的软件源? 5. 如何解决依赖问题? 确保回答真实可靠。基于我的知识,apt-get是标准工具,命令是准确的。 LaTeX:用户的问题不涉及数学表达式,所以可能不需要使用LaTeX。但如果有变量,如软件包名,可以用行内格式表示,例如:$package_name$。但在文本中,直接写软件包名即可。 最终回答结构: 1. 介绍apt-get命令。 2. 解释和演示apt-get update。 3. 解释和演示apt-get install。 4. 注意事项。 5. 相关问题。</think>### apt-get update 和 install 命令用法详解 在基于Debian的Linux系统(如Ubuntu、Debian等)中,`apt-get` 是一个强大的包管理工具,用于更新软件包列表、安装、升级或卸载软件。它通过自动解决软件依赖关系来简化操作,非常适合系统管理任务[^1]。以下我将逐步解释 `apt-get update` 和 `apt-get install` 命令的用法,确保您能安全高效地完成软件包更新和安装。整个过程需要在终端中执行,并可能需要管理员权限(使用 `sudo`)。 #### 1. **更新软件包列表:`apt-get update`** - **作用**:此命令从配置的软件源(如官方仓)下载最新的软件包索引信息,更新本地数据。这确保您能获取到软件的最新版本和依赖关系,但不会实际安装或升级任何软件包。建议在执行安装前先运行此命令,以避免因缓存过期导致的错误。 - **命令格式**: ```bash sudo apt-get update ``` - `sudo`:表示以管理员权限运行(必需,因为修改系统文件需要权限)。 - `apt-get update`:执行更新操作。 - **示例输出**: ``` Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease Get:2 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB] ... Fetched 1,243 kB in 2s (621 kB/s) Reading package lists... Done ``` - 输出显示软件源的状态(如 `Hit` 表示连接成功),最后提示“Reading package lists... Done”表示更新完成。 - **注意事项**: - 如果软件源配置错误(如 `/etc/apt/sources.list` 文件中的地址无效),更新可能失败。您可以通过编辑该文件添加或修改源地址[^2]。 - 更新过程通常只需几秒到几分钟,取决于网络速度和源服务器负载。 #### 2. **安装软件包:`apt-get install`** - **作用**:此命令基于更新后的软件包列表,安装指定的软件包及其依赖项。`apt-get` 会自动处理依赖关系,确保所有必需组件被正确安装[^1]。 - **命令格式**: ```bash sudo apt-get install package_name ``` - `package_name`:要安装的软件包名称。例如,安装 `nginx` Web服务器。 - **示例**:安装 `nginx` 软件包。 ```bash sudo apt-get install nginx ``` - **输出示例**: ``` Reading package lists... Done Building dependency tree... Done The following additional packages will be installed: libnginx-mod-http-geoip2 nginx-common nginx-core ... Do you want to continue? [Y/n] y ... Setting up nginx (1.18.0-0ubuntu1) ... ``` - 系统会列出将被安装的包(包括依赖项),并提示您确认(输入 `y` 继续)。 - **高级用法**: - 一次性安装多个软件包:用空格分隔多个包名,例如 `sudo apt-get install package1 package2`。 - 安装特定版本:使用 `sudo apt-get install package_name=version`,例如 `sudo apt-get install nginx=1.18.0`(版本号需通过 `apt-cache policy package_name` 查询)。 - **注意事项**: - 如果安装失败(如网络问题或包名错误),检查包名是否正确(可使用 `apt-cache search keyword` 搜索包)。 - 安装后,软件通常会自动启动,您可以通过 `systemctl status package_name` 验证服务状态。 #### 3. **完整操作流程示例** 假设您要在Ubuntu系统上安装 `curl` 工具,以下是标准步骤: ```bash # 步骤1: 更新软件包列表 sudo apt-get update # 步骤2: 安装软件包 sudo apt-get install curl # 验证安装 (可选) curl --version ``` - 此流程确保您使用最新的软件源信息安装,减少兼容性问题。 #### 4. **常见问题与注意事项** - **权限要求**:所有 `apt-get` 命令通常需要 `sudo`,因为它涉及系统级更改。如果忘记使用 `sudo`,系统会提示“Permission denied”。 - **网络连接**:确保系统能访问互联网,否则更新或安装会失败。如果使用代理,需在 `/etc/apt/apt.conf` 中配置。 - **软件源管理**:软件源列表存储在 `/etc/apt/sources.list` 文件中。您可以根据需要添加或删除源(如第三方仓),但修改后必须重新运行 `sudo apt-get update`[^2]。 - **安全性**:仅从可信源安装软件,以避免恶意包。官方源(如Ubuntu的 `archive.ubuntu.com`)是最安全的。 - **错误处理**:如果遇到依赖问题(如“Unable to correct dependencies”),尝试运行 `sudo apt-get -f install` 来自动修复。 通过遵循这些步骤,您可以轻松在基于Debian的系统上管理软件包。如果您有其他系统配置需求(如安装GUI桌面),类似命令也适用[^3]。 ### 相关问题 1. 如何升级所有已安装的软件包?(使用 `sudo apt-get upgrade`) 2. 如何卸载软件包?(使用 `sudo apt-get remove package_name`) 3. `apt-get` 和 `apt` 命令有什么区别?(`apt` 是更用户友好的新版工具) 4. 如何添加新的软件源到 `sources.list`? 5. 在安装软件时如何解决常见的依赖冲突问题?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值