首页 > 代码库 > 进一步解 apt-get 的几个命令

进一步解 apt-get 的几个命令

用 apt-get 也很久了,没多想它的实现,最近遇到 gstreamer 装不上的问题,才多看看了它


apt-get 就是从网上下载包,并安装到本地

手工下载 dpkg 包,而后 ”dpkg -i 包名“ 也可以

但找包,检查dependency 太辛苦,这就是 apt-get 帮助做的事情


从哪里下载, 官方url

/etc/apt/sources.list中,可以看看

sudo vi /etc/apt/sources.list


sources list  中的格式如下 ( ref: https://wiki.debian.org/SourcesList)

deb http://site.example.com/debian distribution component1 component2 component3
deb-src http://site.example.com/debian distribution component1 component2 component3
开头 deb  代表编译好的包, des-src代表源代码 

distribution 代表发行版本,比如 12.07 是 precise 

deb http://cn.archive.ubuntu.com/ubuntu/ precise main restricted


component 说明

Main - Officially supported software.
Restricted - Supported software that is not available under a completely free license.
Universe - Community maintained software, i.e. not officially supported software.
Multiverse - Software that is not free.

比如:

deb http://cn.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse

(ref : https://help.ubuntu.com/community/Repositories/Ubuntu)


更改了 /etc/apt/sources.list , 要用用 apt-get update 更新 index 文件

更新的 index 文件在 /var/lib/apt/lists/ 


安装 ppa

PPA,表示 Personal Package Archives,也就是个人软件包集。
有很多软件因为种种原因,不能进入官方的 Ubuntu 软件仓库。 为了方便 Ubuntu 用户使用,launchpad.net 提供了 ppa,允许用户建立自己的软件仓库, 自由的上传软件。PPA 也被用来对一些打算进入 Ubuntu 官方仓库的软件,或者某些软件的新版本进行测试。
PPA 上的软件极其丰富,如果 Ubuntu 官方仓库中缺少您需要的某款软件,可以去 PPA 上找找看。

sudo add-apt-repository ppa:user/ppa-name

比如jdk1.6不再index中

sudo apt-get install python-software-properties  < for installing add-apt-repository >
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

用命令 “sudo apt-cache  search jdk“,会发现结果中多了下列内容

oracle-jdk7-installer - Oracle JDK7 Installer meta package
oracle-java7-installer - Oracle Java(TM) Development Kit (JDK) 7
oracle-java6-installer - Oracle Java(TM) Development Kit (JDK) 6
oracle-java8-installer - Oracle Java(TM) Development Kit (JDK) 8
oracle-java7-set-default - Set Oracle JDK 7 as default Java
oracle-java6-set-default - Set Oracle JDK 6 as default Java
oracle-java8-set-default - Set Oracle JDK 8 as default Java


之前我不能安装gstreamer 也是通过下面命令解决的

sudo add-apt-repository ppa:gstreamer-developers/ppa
之后也发现/var/lib/apt/lists/ 多了几个index文件

ppa.launchpad.net_gstreamer-developers_ppa_ubuntu_dists_precise_main_binary-i386_Packages
ppa.launchpad.net_gstreamer-developers_ppa_ubuntu_dists_precise_main_source_Sources
ppa.launchpad.net_gstreamer-developers_ppa_ubuntu_dists_precise_Release
ppa.launchpad.net_gstreamer-developers_ppa_ubuntu_dists_precise_Release.gpg


update 三个命令的区别

apt-get update 更新软件列表。
apt-get upgrade 更新软件。
apt-get dist-upgrade 更新系统版本。


查询可安装的 package 

很多时候忘记了package 的名字

用 apt-cache search <包名>  查询就是了,其原理应该是到 package  的index文件中去做正则匹配


查询已经安装的package 

使用 dpkg -S 命令

payne@payne-desktop:~$ dpkg -S libgstreamer0.10-dev
libgstreamer0.10-dev: /usr/share/doc/libgstreamer0.10-dev/copyright
libgstreamer0.10-dev: /usr/share/doc/libgstreamer0.10-dev/README.gz
libgstreamer0.10-dev: /usr/share/doc/libgstreamer0.10-dev
libgstreamer0.10-dev: /usr/share/doc/libgstreamer0.10-dev/NEWS.gz
libgstreamer0.10-dev: /usr/share/doc/libgstreamer0.10-dev/README.Debian
libgstreamer0.10-dev: /usr/share/doc/libgstreamer0.10-dev/changelog.Debian.gz
libgstreamer0.10-dev: /usr/share/doc/libgstreamer0.10-dev/AUTHORS

进一步解 apt-get 的几个命令