您的位置:首页 > 其它

apt-get repository相关信息

2015-12-27 22:28 274 查看
用 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 component 3
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“,会发现结果中多了下列内容

[html]
view plaincopy





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 命令

[html]
view plaincopy





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

总结:

1,有些软件包在ubantu官网找不到的,可以使用 "add-apt-repository" 脚本添加 ppa 到当前的库中并且自动导入公钥,在ppa上寻找安装途径,首先用户自己要先安装repository:

add-apt-repository 是由 python-software-properties 这个工具包提供的
所以要先安装python-software-properties 才能使用 add-apt-repository
否则会显示“command not found”

2,在运行了sudo add-apt-repository ppa:user/ppa-name,比如(sudo add-apt-repository ppa:gstreamer-developers/ppa)后在/etc/apt/sources.list.d/中会增加相应的

gstreamer-developers-ubuntu-ppa-vivid.list

等文件,注意/etc/apt/sources.list.d/下的文件和/etc/apt/sources.list文件对比,/etc/apt/sources.list下的源是在ubantu网站下的源,而/etc/apt/sources.list.d/

是在PPA下的源。

3,由于有了新源,可以使用sudo apt-get update 来更新这个软件及相关的依赖包等相关信息并保存起来,根据这些保存起来的信息确定该软件要怎么安装,是否需要更新等。

4,最后和安装普通软件一样使用sudo apt-get install安装软件包。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: