[举例]

目前常用的

==========

*更新本机中的数据库缓存:

sudo apt-get update

*查找包含部分关键字的软件包:

sudo apt-cache search <你要查找的name>

*安装指定的软件:

sudo apt-get install <你要安装的软件包>

例如: sudo apt-get install xfce4

*下载软件包源代码(如果有的话):

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是一样的。

[其他]

问题:

如何查看已经安装的软件?

如何确定一个软件是否已经安装?

转载自: http://blog.csdn.net/klarclm/article/details/8561197

ubuntu apt-get 总结 install xxx -d能下载安装包(含依赖)不安装_和卸载(转载)的更多相关文章

  1. CentOS和Ubuntu下安装配置Greenplum数据库集群(包括安装包和源码编译安装)

    首先说一下,无论是CentOS/RedHat还是Ubuntu都可以按源码方式.安装包方式编译安装. 1.   规划 192.168.4.93(h93)       1个主master  2个主segm ...

  2. Apt下载安装包时Hash校验和不符

    近期我的电脑在使用apt-get或aptitude下载Linux安装包时总是出现如下图所示的Hash校验和不符的问题.以至于下载过程被频繁中断,不得不反复运行apt-get或者在aptitude中按g ...

  3. apt 下载安装包

    1) Try both without sudo, apt-get download will pass and apt-get -d install will fail (root required ...

  4. [Python]pip install offline 如何离线pip安装包

    痛点:目标机器无法连接公网,但是能使用rz.sz传输文件 思路:在能上网的机器是使用pip下载相关依赖包,然后传输至目标机器,进行安装 0. Install pip: http://pip-cn.re ...

  5. Ubuntu 制作离线安装包

    2017-04-07 11:39:59 一.应用场景 Ubuntu在不能上网情况下,又需要安装软件或更新系统 二.离线安装包制作 在一台能正常上网的Ubuntu系统上,安装需要的软件包 $sudo a ...

  6. Ubuntu 18.04安装arm-linux-gcc交叉编译器(超简单,附安装包下载地址)

    目前网上搜索发现,最多人安装的是4.4.3版本的: arm-linux-gcc-4.4.3.tar.gz下载地址:https://pan.baidu.com/s/1rAIBASIRZAXl-P1UOW ...

  7. ubuntu 下解决安装包依赖问题

    我们用banshee软件安装豆瓣插件来做个示例: 1.首先在Ubuntu Software Center内搜索banshee播放器 因为我之前已经安装好了,可以看到如下界面,你可以在点击该软件看到in ...

  8. ubuntu中安装visual studio code-(转载)

    在Ubuntu中安装Visual Studio Code 编译自:http://itsfoss.com/install-visual-studio-code-ubuntu/ 作者: Abhishek ...

  9. Ubuntu18下sudo apt install xxx出现问题

    当执行sudo apt install rpm时失败(apt-get也失败),输出如下报错信息: E: Could not get lock /var/lib/dpkg/lock - open (11 ...

随机推荐

  1. 移动端bug总结

    1. 移动端按钮点击蓝框去除 button,input[type="button"] { outline:none; }

  2. css 文字换行

    换行word-wrap: break-word 新起一行对长单词进行断句word-break:break-all 本行对长单词进行断句 不换行,强制一行white-space:nowrap table ...

  3. Linux下memcache的安装和启动(转)

    memcache是高性能,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度.据说官方所说,其用户包括twitter.digg.flickr等,都是些互联网大腕呀.目前用memca ...

  4. 对象化的Http和请求对象HttpRequest

    在面向对象的语言中,有种“万物皆对象”的说法.在上篇文章中介绍了HttpRuntime类,在该类收到请求之后,立即通过HttpWorkerRequest工作者对象对传递的参数进行分析和分解,创建方便网 ...

  5. absolute布局和css布局释疑

    jqueryui也不是万能的, 有时候, 也需要自己写一些, 由 css 和jquery结合的一些东西, 如: banner中, 依次播放的div等 ## 关于jquery设计的一些思想和理念?but ...

  6. 10 steps to becoming the developer everyone wants

    You thought it was all about programming skills. But you were wrong! Great code is fine, yet command ...

  7. Sublime Text2 快捷键 (MAC版)

    工具是人的延伸,可以把人变得更聪明更强大,人类正是学会了使用工具,才创造出现在的文明.作为程序员,工具开发.使用是其能力的重要体现,业内的大牛都是造工具的好手.目前身边很多人都在用sublime te ...

  8. 错误 1 未知的服务器标记“asp:ScriptManager”。

    如题 ... 解决方案 :将 <%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=ne ...

  9. POJ 2002 Squares

    二分.... Squares Time Limit: 3500MS Memory Limit: 65536K Total Submissions: 14530 Accepted: 5488 Descr ...

  10. PHP5 Session 使用详解(一)

    http协议是WEB服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议.所谓无 状态,指的是不会维护http请求数据,http请求是独立的,不持久的.而越来越复杂的WEB应用,需要保存一些用户 ...