[举例]

目前常用的

==========

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

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. WAF绕过小结

    WAF介绍 什么是WAF? Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品. 基本/简单绕过方法: 1.注释符 http://www.site. ...

  2. Java-Java中System.arraycopy() 和 Arrays.copyOf()两者之间的区别

    如果我们想拷贝一个数组,我们可能会使用System.arraycopy()或者Arrays.copyof()两种方式.在这里,我们将使用一个比较简单的示例来阐述两者之间的区别. 1.示例代码: Sys ...

  3. JavaScript 参数传递与变量复制

            ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值. 基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象.         5 种基本数 ...

  4. 物理学家的LOGO

    原文选自Inside the Perimeter 阿那克西曼德(c. 610-546 BCE) 古希腊人,被认为是史上第一位物理学家,是有记录的认为世界按一定规律运行的第一人,做科学实验第一人,发明了 ...

  5. HDU 4864 Task (贪心+STL多集(二分)+邻接表存储)(杭电多校训练赛第一场1004)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4864 解题报告:有n台机器用来完成m个任务,每个任务有一个难度值和一个需要完成的时间,每台机器有一个可 ...

  6. Unity3D脚印6——模型动画

    原地址:http://www.cnblogs.com/ybgame/archive/2013/02/21/2920009.html 如何导入一个模型,导入的模型在unity3d的project面板中是 ...

  7. ris'In App Purchase总结

    原地址:http://www.cocoachina.com/bbs/read.php?tid=38555&page=1 In App Purchase属于iPhone SDK3.0的新特性,用 ...

  8. sql大全

    推荐一. 简单查询   简单的Transact-SQL查询只包括选择列表.FROM子句和Where子句.它们分别说明所查询列.查询的表或视图.以及搜索条件等. 例如,下面的语句查询testtable表 ...

  9. [BZOJ1941][Sdoi2010]Hide and Seek

    [BZOJ1941][Sdoi2010]Hide and Seek 试题描述 小猪iPig在PKU刚上完了无聊的猪性代数课,天资聪慧的iPig被这门对他来说无比简单的课弄得非常寂寞,为了消除寂寞感,他 ...

  10. 深度学习入门教程UFLDL学习实验笔记二:使用向量化对MNIST数据集做稀疏自编码

    今天来做UFLDL的第二个实验,向量化.我们都知道,在matlab里面基本上如果使用for循环,程序是会慢的一逼的(可以说基本就运行不下去)所以在这呢,我们需要对程序进行向量化的处理,所谓向量化就是将 ...