ubuntu 源码编译,dpkg,apt 安装原理 及简单使用

荷兰菊

1. 源码编译(源码安装通常安装比较麻烦,特别是解决依赖经常会出现问题,但是通常编译可以获得该软件的最新版本)

  • 源码:程序代码,写给人开的程序语言,但机器无法识别,所以无法执行;
  • 编译程序:将程序代码转译成为机器能看得懂的语言,相当与翻译器;
  • 可执行文件:经过编译程序变成二进制程序后机器可以识别的可执行二进制文件;

而在整个编译的过程,又需要设置软件安装路径,确定链接库位置,检测库依赖关系是否满足,判断目标系统上是否有合适的编译环境等复杂的过程。通常软件开发商都会写这样一个检测程序,来检测用户的操作环境,以及该操作环境是否满足开发商所需的其他功能,替我们完成上诉的复杂过程。检测完毕后,就会主动新建一个Makefile的规则文件,而这个检测程序的名字通常为configure(下载完软件源码会在源码文件中找到)。

获取源码文件,解压后,cd进入源码文件目录,找到configure程序,使用./configure建立Makefile文件(必须保证Makefile文件正确建立,如果建立不成功的话,查看错误,并依据错误提示,解决后再次建立Makefile文件,直到正确建立Makefile文件)

成功生成 Makefile后 我们只需要使用sudo make命令进行编译

编译成功后,使用sudo make install进行安装软件

不过源码安装的话,尽量将源码文件放在一个能找到的特定位置,一般的话Makefile也会提供uninstall,这样的话,当我们需要卸载软件时,可以到软件包中输入sudo make uninstall卸载软件。
也可以使用 ./configure --prefix='File Path'命令,将软件安装在File Path位置,这样可以方便删除。关于configure的更多参数可以查看软件包中列如ReadMe文件或INSTALL文件,一般有参数设置说明。

正因为上诉源码安装时出现的各种麻烦,所以引入了软件包管理系统。(不过在使用linux 时需要进行源码编译,也是比较常见的!)

2. dpkg安装

为了解决上诉问题,很多厂商发布了针对各种 linxu distribution 编译好的软件。因为软件已经编译好了,所以我们只要像windows下一样安装就ok。

linux 开发商在固定的硬件平台和操作系统平台上将需要安装的软件编译好,然后将这个软件所有的相关文件打包成一个特殊格式的文件,这个文件还包括了预先检测系统与依赖的脚本,并且提供记载该软件提供的所有文件信息。客户取得软件包后,只要通过特定的命令来安装,那么该软件就会按照内部的脚本来检测前驱软件的存在,若安装的环境符合满足需求,按么就会开始安装。安装完成后还会将该软件的信息写入软件管理机制中,以完成未来的升级,删除等操作。

下面是dpkg一些基础命令的简介:

  1. dpkg -i package-name 安装软件包
  2. dpkg -r package-name 删除软件包(保留配置信息)
  3. dpkg -P package-name 删除软件包(包括配置信息)
  4. dpkg --configure package-name 配置软件包,如果加上-a表示配置所有未配置的软件包
  5. dpkg --unpack package-name 解开软件包到系统目录,但不进行配置

下面几个命令用于对软件包进行查询

  1. dpkg -I filename 查看软件说明(直接使用dpkg -l 查询所有安装的软件包,filename可以使用正则,我通常用```dpkg -l | grep "filename"因为会存在软件名记不住的情况)
  2. dpkg -L filename 查看package-name对应的软件包安装的文件及目录
  3. dpkg -s filename 查看package-name对应的软件包信息
  4. dpkg -S filename-pattern 从已经安装的软件包中查找包含filename的软件包名称

dpkg软件包相关文件介绍
/etc/dpkg/dpkg.cfg dpkg包管理软件的配置文件
/var/log/dpkg.log dpkg包管理软件的日志文件
/var/lib/dpkg/available 存放系统所有安装过的软件包信息
/var/lib/dpkg/status 存放系统现在所有安装软件的状态信息
/var/lib/dpkg/info 记安装软件包控制目录的控制信息文件

3. apt安装

虽然我们在使用dpkg时,已经解决掉了 软件安装过程中的大量问题,但是当依赖关系不满足时,仍然需要手动解决,而apt这个工具解决了这样的问题,linux distribution 先将软件放置到对应的服务器中,然后分析软件的依赖关系,并且记录下来,然后当客户端有安装软件需求时,通过清单列表与本地的dpkg以存在的软件数据相比较,就能从网络端获取所有需要的具有依赖属性的软件了。

下面是apt的一些基础命令简介:

  1. apt-get update 更新源
  2. apt-ge dist-upgrade 升级系统
  3. apt-get upgrade 更新所有已经安装的软件包
  4. apt-get install package_name 安装软件包(加上 --reinstall重新安装)
  5. apt-get remove 移除软件包(保留配置信息)
  6. apt-get purge package_name 移除软件包(删除配置信息)
  7. apt show pack_name 获取包的相关信息
  8. apt search page_name 搜索包的相关信息
  9. apt-cache depends package 了解使用依赖
  10. apt-get check 检查是否有损坏的依赖

apt软件包相关文件介绍:
/etc/apt/sources.list 记录软件源的地址
/var/cache/apt/archives 已经下载到的软件包都放在这里

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

推荐阅读更多精彩内容