当前位置: 首页 > news >正文

Linux -- ubuntu下安装程序的三种方法

引言

在ubuntu当中,安装应用程序我所知道的有三种方法,分别是apt-get,dpkg安装deb和make install安装源码包三种。下面针对每一种方法各举例来说明。

apt-get方法

使用apt-get install来安装应用程序算是最常见的一种安装方法了,比如我要安装build-essential这个软件,使用以下,他会帮我把所有的依赖包都一起安装了。

sudo apt-get install build-essential

执行上述命令以后,我们可以看到一下信息,The following extra packages will be installed:表示所有需要再安装的依赖包。

复制代码
sudo apt-get install build-essential
[sudo] password for enadmin: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  binutils cpp cpp-4.6 dpkg-dev fakeroot g++ g++-4.6 gcc gcc-4.6 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libc-bin libc-dev-bin libc6 libc6-dev libdpkg-perl libgomp1 libmpc2 libmpfr4 libquadmath0 libstdc++6-4.6-dev linux-libc-dev manpages-dev Suggested packages: binutils-doc cpp-doc gcc-4.6-locales debian-keyring g++-multilib g++-4.6-multilib gcc-4.6-doc libstdc++6-4.6-dbg gcc-multilib autoconf automake1.9 libtool flex bison gdb gcc-doc gcc-4.6-multilib libmudflap0-4.6-dev libgcc1-dbg libgomp1-dbg libquadmath0-dbg libmudflap0-dbg binutils-gold glibc-doc libstdc++6-4.6-doc The following NEW packages will be installed: binutils build-essential cpp cpp-4.6 dpkg-dev fakeroot g++ g++-4.6 gcc gcc-4.6 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libc-dev-bin libc6-dev libdpkg-perl libgomp1 libmpc2 libmpfr4 libquadmath0 libstdc++6-4.6-dev linux-libc-dev manpages-dev The following packages will be upgraded: libc-bin libc6 2 upgraded, 23 newly installed, 0 to remove and 101 not upgraded. Need to get 36.3 MB of archives. After this operation, 83.6 MB of additional disk space will be used. Do you want to continue [Y/n]? y
复制代码

下面给出apt-get的的各种参数:

apt-get install xxx 安装xxx  。如果带有参数,那么-d 表示仅下载 ,-f 表示强制安装  
apt-get remove xxx 卸载xxx  
apt-get update 更新软件信息数据库  
apt-get upgrade 进行系统升级  
apt-cache search 搜索软件包  
Tips:建议您经常使用“apt-get update”命令来更新您的软件信息数据库 

apt-get理论上是要求能够联网,但是如果制作了本地源,就不需要联网,制作本地源可以参考:ubuntu制作本地源

dpkg安装deb包

Ubuntu软件包格式为deb,安装方法如下:

    sudo  dpkg  -i  package.deb

dpkg的详细使用方法,网上有很多,下面简单列了几个:

dpkg -i package.deb安装包
dpkg -r package删除包
dpkg -P package删除包(包括配置文件)
dpkg -L package列出与该包关联的文件
dpkg -l package显示该包的版本
dpkg –unpack package.deb解开 deb 包的内容
dpkg -S keyword搜索所属的包内容
dpkg -l列出当前已安装的包
dpkg -c package.deb列出 deb 包的内容
dpkg –configure package配置包

根据Ubuntu中文论坛上介绍,使用apt-get方法安装的软件,所有下载的deb包都缓存到了/var/cache/apt /archives目录下了,所以可以把常用的deb包备份出来,甚至做成ISO工具包、刻盘,以后安装Ubuntu时就可以在没有网络环境的情况下进行 了。下面的命令是拷贝archives这个目录到/var/cache/apt/目录下,替换原有的archives

enadmin@ubuntu-server:~/ftp$ sudo cp -r archives/ /var/cache/apt/

make install源代码安装

如果要使用make安装的话,那么必须得安装 build-essential这个依赖包,安装方法已经在前面说过了。在安装完毕以后,我们就可以进行源码安装。源码安装大致可以分为三步骤: (./configure)–> 编译(sudo make) –> 安装(sudo make install)。
  1. 配置:这是编译源代码的第一步,通过 ./configure 命令完成。执行此步以便为编译源代码作准备。常用的选项有 --prefix=PREFIX,用以指定程序的安装位置。更多的选项可通过 --help 查询。也有某些程序无需执行此步。
  2. 编译:一旦配置通过,可即刻使用 make 指令来执行源代码的编译过程。视软件的具体情况而定,编译所需的时间也各 有差异,我们所要做的就是耐心等候和静观其变。此步虽然仅下简单的指令,但有时候所遇到的问题却十分复杂。较常碰到的情形是程序编译到中途却无法圆满结 束。此时,需要根据出错提示分析以便找到应对之策。
  3. 安装:如果编译没有问题,那么执行 sudo make install 就可以将程序安装到系统中了。
下面以安装nagios为例进行说明。
复制代码
//1.解压缩
tar -zxf nagios-4.0.2.tar.gz  
//2.进入目录 cd nagios-4.0.2 //3.配置 ./configure --prefix=/usr/local/nagios //4.编译 make all //5.安装 make install && make install-init && make install-commandmode && make install-config
复制代码

以上就是源代码安装方式。

转载于:https://www.cnblogs.com/lianfu/p/4979487.html

相关文章:

  • iOS 利用UIWebView与JavaScript交互的最简单办法(本人已验证可行)
  • 2015-10-14 晴 tcp/ip
  • 00.Python manage.py shell和 Python的分析
  • Visifire实现统计图
  • SecureCRT系列:生成公私钥
  • 技巧之:恢复linux被误删文件(方案有3)
  • 非法词判断
  • 教你爱上Blocks(闭包)
  • 【python游戏编程之旅】第四篇---pygame中加载位图与常用的数学函数。
  • 导出excel
  • Oracle坑爹入门踩坑篇
  • GPU大百科全书索引(有助于理解openGL工作流程)
  • 数据结构实例参考——“查找”的原理
  • git clone Gtk-WARNING **: cannot open display
  • 利用MAVEN打包时,如何包含更多的资源文件
  • __proto__ 和 prototype的关系
  • 78. Subsets
  • canvas 五子棋游戏
  • DataBase in Android
  • download使用浅析
  • ES10 特性的完整指南
  • ES6 ...操作符
  • HTTP 简介
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • JavaScript新鲜事·第5期
  • MySQL-事务管理(基础)
  • MySQL主从复制读写分离及奇怪的问题
  • Next.js之基础概念(二)
  • nodejs调试方法
  • Python利用正则抓取网页内容保存到本地
  • Python实现BT种子转化为磁力链接【实战】
  • Redis在Web项目中的应用与实践
  • Sass Day-01
  • Vue.js-Day01
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 区块链分支循环
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • AI算硅基生命吗,为什么?
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​水经微图Web1.5.0版即将上线
  • # .NET Framework中使用命名管道进行进程间通信
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (分类)KNN算法- 参数调优
  • (力扣)循环队列的实现与详解(C语言)
  • (三)docker:Dockerfile构建容器运行jar包
  • (十六)串口UART
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (转)C#调用WebService 基础
  • (转)程序员疫苗:代码注入
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿