Linux 8 20160718 YUM&apt&dpkg(unavailable version)

YUM

YUM可以解决安装包依赖关系。
Yellowdog Updater Modified 是一个rpm的前端程序,主要目的是设计用来自动解决rpm的依赖关系的问题。特点如下:

  • 自动解决依赖关系
  • 可以对rpm进行分组,并基于组进行安装操作
  • 引入仓库概念,支持多个仓库
  • 配置简单
    但yum不是万能的,如果仓库里没有的话,他也是不能解决的。

repo

仓库概念,存放现有的rpm软件包,当使用yum安装了一个rpm软件时候,如果存在依赖关系,会自动在仓库中查找依赖软件并安装
仓库可以是本地的,也可以通过HTTP,FTP,NFS形式使用集中的,统一的网络仓库。

仓库配置文件在/etc/yum/repos.d/(centOS是/etc/yum.repos.d),格式如下:

[linuxRepoName]
name = this is yum repo (by your mind)
baseurl = http://......  (可以是存在互联网上的yum仓库,也可以是本地文件)
enabled = 1(1启用,0禁用)
gpgcheck = 1 (是否打开校验,1打开,0关闭)
  • yum配置文件必须以.repo方式结尾
  • 一个配置文件可以保存多个仓库的配置信息

## 常见命令

yum install software-name #安装指定软件
yum remove software-name
yum update software-name

查询

yum search keyword #查找含有关键字的软件包
yum list (all | installed | recent | update) #显示仓库里的软件
yum info packagename #显示指定软件的信息
yum whatprovides softname #查询文件属于哪个软件包


## 创建yum仓库

cd /etc/yum/ #随便在哪建个文件夹
mkdir yum-package
cp -rv (光盘里的rpm package)/* /etc/yum/repos.d/

创建索引文件

rpm -ivh creatrepo....

createrepo -v /etc/yum/yum-package/ #跟上yum仓库的路径就行了,就开始做索引了

索引完成后自动在当前目录下创建repodata目录,保存索引信息。
最后还要在/etc/yum/repos.d/下创建配置文件

[yumRepo]
name = yumRepo
baseurl = file://etc/yum/yum-package/ #跟yum仓库的绝对路径
enabled = 1
gpgcheck = 0 #自己的一般不用校验


## yum cache
yum为了提高速度会通过缓存,所以要经常清除
yum clean all

## 加入分组命令
createrepo -g 分组文件 仓库地址


# apt-get
yum更多地用在centOS上,ubuntu上apt
apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。
Advanced Package Tool,又名apt-get,是一款适用于Unix和Linux系统的应用程序管理器。最初于1998年发布,用于检索应用程序并将其加载到Debian Linux系统。Apt-get成
名的原因之一在于其出色的解决软件依赖关系的能力。其通常使用.deb-formatted文件,但经过修改后可以使用apt-rpm处理红帽的Package Manager(RPM)文件。

apt-get命令一般需要root权限执行,所以一般跟着sudo命令。

# 一、Ubuntu中软件安装方法
### 1、APT方式
(1)普通安装:apt-get install softname1 softname2 …;
(2)修复安装:apt-get -f install softname1 softname2... ;(-f Attempt to correct broken dependencies)
(3)重新安装:apt-get --reinstall install softname1 softname2...;
### 2、Dpkg方式
(1)普通安装:dpkg -i package_name.deb
3、源码安装(.tar、tar.gz、tar.bz2、tar.Z)
首先解压缩源码压缩包然后通过tar命令来完成
a.
> 解xx.tar.gz:tar zxf xx.tar.gzb.
> 解xx.tar.Z:tar zxf xx.tar.Zc.
> 解xx.tgz:tar zxf xx.tgzd.
> 解xx.bz2:bunzip2 xx.bz2e.
> 解xx.tar:tar xf xx.tar

然后进入到解压出的目录中,建议先读一下README之类的说明文件,因为此时不同源代码包或者预编译包可能存在差异,然后建议使用ls -F --color或者ls -F命令(实际上我的只需要 l 命令即可)查看一下可执行文件,可执行文件会以*号的尾部标志。

>一般依次执行./configure
                      make
                     sudo make install
即可完成安装。

# 二、Ubuntu中软件包的卸载方法
### 1、APT方式
(1)移除式卸载:apt-get remove softname1 softname2 …;(移除软件包,当包尾部有+时,意为安装)

(2)清除式卸载 :apt-get --purge remove softname1 softname2...;(同时清除配置)
清除式卸载:apt-get purge sofname1 softname2...;(同上,也清除配置文件)

### 2、Dpkg方式
(1)移除式卸载:dpkg -r pkg1 pkg2 ...;
(2)清除式卸载:dpkg -P pkg1 pkg2...;
 
# 三、Ubuntu中软件包的查询方法
Dpkg 使用文本文件来作为**数据库**.通称在/var/lib/dpkg目录下. 通称在 status 文件中存储软件状态,和控制信息. 在 info/ 目录下备份控制文件, 并在其下的 .list 文件中记录安装文件清单, 其下的 .mdasums 保存文件的 MD5 编码.
体验使用数据库的时刻到了:
$ dpkg -lDesired=Unknown/Install/Remove/Purge/Hold| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)||/ Name Version Description+++-===========-================-========================================ii aalib1 1.4p5-28 ascii art library - transitional packageii adduser 3.85 Add and remove users and groupsii alien .63 install non-native packages with dpkg... ...每条记录对应一个软件包, 注意每条记录的第一, 二, 三个字符. 这就是软件包的状态标识, 后边依此是软件包名称, 版本号, 和简单描述.
第一字符为期望值,它包括:u 状态未知,这意味着软件包未安装,并且用户也未发出安装请求.i 用户请求安装软件包.r 用户请求卸载软件包.p 用户请求清除软件包.h 用户请求保持软件包版本锁定.第二列,是软件包的当前状态.此列包括软件包的六种状态.n 软件包未安装.i 软件包安装并完成配置.c 软件包以前安装过,现在删除了,但是它的配置文件还留在系统中.u 软件包被解包,但还未配置.f 试图配置软件包,但是失败了.h 软件包安装,但是但是没有成功.第三列标识错误状态,可以总结为四种状态. 第一种状态标识没有问题,为空. **其它**三种符号则标识相应问题.h 软件包被强制保持,因为有其它软件包依赖需求,无法升级.r 软件包被破坏,可能需要重新安装才能正常使用(包括删除).x 软包件被破坏,并且被强制保持.也可以以统配符模式进行模糊查询, 比如我要查找以nano字符开始的所有软件包:
$ dpkg -l nano*Desired=Unknown/Install/Remove/Purge/Hold| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)||/ Name Version Description+++-==============-==============-============================================ii nano 1.3.10-2 free Pico clone with some new featurespn nano-tiny <none> (no description available)un nanoblogger <none> (no description available)以上状态说明: 系统中安装了nano版本为1.3.10-2;安装过nano-tiny, 后来又清除了; 从未安装过nanoblogger.
如果觉得 dpkg 的参数过多, 不利于记忆的话, 完全可以使用 dpkg-query 进行 dpkg 数据库查询.
应用范例:
查询系统中属于nano的文件:$ dpkg --listfiles nanoor$ dpkg-query -L nano查看软件nano的详细信息:$ dpkg -s nanoor$ dpkg-query -s nano查看系统中软件包状态, 支持模糊查询:$ dpkg -lor$dpkg-query -l查看某个文件的归属包:$ dpkg-query -S nanoor$ dpkg -S nano
#四、apt命令用法
以下摘自百度百科。

packagename指代为软件包的名称。

apt-get update
在修改/etc/apt/sources.list或/etc/apt/preferences之后运行该命令。此外您需要定期运行这一命令以确保您的软件包列表是最新的。
apt-get install packagename
安装一个新软件包(参见下文的aptitude
apt-get remove packagename
卸载一个已安装的软件包(保留配置文档)
apt-get remove --purge packagename
卸载一个已安装的软件包(删除配置文档)
apt-get autoremove packagename
删除包及其依赖的软件包
apt-get autoremove --purge packagname
删除包及其依赖的软件包+配置文件,比上面的要删除的彻底一点
dpkg --force-all --purge packagename
有些软件很难卸载,而且还阻止了别的软件的应用,就能够用这个,但是有点冒险。

apt-get autoclean

apt会把已装或已卸的软件都备份在硬盘上,所以假如需要空间的话,能够让这个命令来删除您已卸载掉的软件的备份。

apt-get clean

这个命令会把安装的软件的备份也删除,但是这样不会影响软件的使用。

apt-get upgrade

可以使用这条命令更新软件包,apt-get upgrade不仅可以从相同版本号的发布版中更新软件包,也可以从新版本号的发布版中更新软件包,尽管实现后一种更新的推荐命令为apt-get dist-upgrade。
在运行apt-get upgrade命令时加上-u选项很有用(即:apt-get -u upgrade)。这个选项让APT显示完整的可更新软件包列表。不加这个选项,你就只能盲目地更新。APT会下载每个软件包的最新更新版本,然后以合理的次序安装它们。注意在运行该命令前应先运行 apt-get update更新数据库,更新任何已安装的软件包。[2]

apt-get dist-upgrade

将系统升级到新版本。

apt-cache search string

在软件包列表中搜索字符串。
dpkg -l package-name-pattern列出任何和模式相匹配的软件包。假如您不知道软件包的全名,您能够使用“package-name-pattern”。

aptitude

周详查看已安装或可用的软件包。和apt-get类似,aptitude能够通过命令行方式调用,但仅限于某些命令——最常见的有安装和卸载命令。
由于aptitude比apt-get了解更多信息,能够说他更适合用来进行安装和卸载。

apt-cache showpkg pkgs

显示软件包信息。
apt-cache dumpavail打印可用软件包列表。

apt-cache show pkgs

显示软件包记录,类似于dpkg –print-avail。

apt-cache pkgnames

打印软件包列表中任何软件包的名称。

dpkg -S file

这个文档属于哪个已安装软件包。

dpkg -L package

列出软件包中的任何文档。

dpkg -l

列出所有已安装的软件包。

apt-file search filename

查找包含特定文档的软件包(不一定是已安装的),这些文档的文档名中含有指定的字符串。apt-file是个单独的软件包。您必须先使用apt-get install来安装他,然后运行apt-file update。假如apt-file search filename输出的内容太多,您能够尝试使用apt-file search filename | grep -w filename(只显示指定字符串作为完整的单词出现在其中的那些文档名)或类似方法,例如:apt-file search filename | grep /bin/(只显示位于诸如/bin或/usr/bin这些文件夹中的文档,假如您要查找的是某个特定的执行文档的话,这样做是有帮助的)。

apt-get autoclean

定期运行这个命令来清除那些已卸载的软件包的.deb文档。通过这种方式,您能够释放大量的磁盘空间。假如您的需求十分迫切,能够使用apt-get clean以释放更多空间。这个命令会将已安装软件包裹的.deb文档一并删除。大多数情况下您不会再用到这些.debs文档,因此假如您为磁盘空间不足而感到焦头烂额,这个办法也许值得一试。


补充:
说明:由于图形化界面方法(如Add/Remove... 和Synaptic Package Manageer)比较简单,所以这里主要总结在终端通过命令行方式进行的软件包安装、卸载和删除的方
法。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容