====Linux软件包====

Linux系统中,软件通常以源代码或者预编译包的形式提供。

  1. 软件的源代码通常需要编译为二进制代码才可使用,安装比较耗时。用户可以自行调节编译选项,决定需要的功能或组件,或者针对硬件平台作一些优化
  2. 预编译包通常由软件发布者进行编译,用户只要将预编译包拷贝到系统中即可。考虑到预编译包的通用性,预编译包一般不会针对某种硬件平台优化,所包含的功能和组件也是通用的组合。
  3. ubuntu系统中,软件通常以deb格式的包发布,它是一种预编译包
 
====Linux DPKG命令====
deb包命令遵循如下约定:
soft_ver-rev_arch.deb
 
soft:软件包名称
ver:软件版本号
rev:ubuntu修订版本号
arch:目标架构名称
 
使用dpkg命令来管理deb包
 
   dpkg -i :安装deb软件包
   dpkg -r : 删除软件包
   dpkg -r -P :连同配置文件一起删除
   dpkg -I : 查看软件包信息
   dpkg -L : 查看包内文件
   dpkg -l : 查看系统中已安装软件包信息
   dpkg-reconfigure xxx 重新配置软件包
 
同时安装多个软件包:
dpkg -i aaa.deb bbb.deb ccc.deb
 
 
====Linux apt命令====
如果一个软件依赖关系过于复杂,使用dpkg安装就不是一个明智的选择,这个时候就需要用到apt软件包管理系统。apt可以自动检查依赖关系,通过您预设的方式来获得相关软件包,并且自动安装和配置它
 
apt至少需要一个软件信息数据库和至少一个存放大量deb的软件仓库,我们称之为“源”,源可以是网络服务器、CD或者本地仓库,需要修改/etc/apt/sources.list文件,使apt系统能够连接到源。
 
apt系统主要包括apt-get和apt-cache等命令:
 
    apt-get install xxx :安装xxx
    -d 仅下载
    -f 强制安装
    apt-get remove xxx :卸载xxx
    apt-get update :更新软件信息数据库
    apt-get upgrade :进行系统升级
    apt-cache search :搜索软件包
 
建议经常使用 sudo apt-get update 命令来更新您的软件信息数据库
 
 
====源码包====
在少数情况下,例如某软件没有以deb包的格式发布,或者需要定制适合自己的软件,可以通过编译源代码的方式安装它。
 
源码目录中通常有一个 configure 脚本,用来配置即将开始的编译过程。您可以执行它
    sudo ./configure [--prefix=/usr/loca/xxx ......]
它会自动检测软件的编译环境和依赖关系,并且生成 Makefile 文件。
使用带参数的命令 ./configure --help ,或者阅读 INSTALL 文件,查看该脚本允许的参数。例如使用
--prefix=/usr/local/xxx 参数,将软件的安装目录设定为 /usr/local/xxx/ 。(如果一定要将软件安装在单独目录下,建议您安装在这里)
 
使用make命令,系统会根据Makefile文件中的设定,通过make工具调用编译器和所需的资源文件,将源代码编译成目标文件
 
再调用make install命令,make工具会自动连接目标文件和库文件,将最终生成的文件拷贝到Makefile文件设定的路径中,并完成更改文件的的属性,删除残留文件的活动
 
编译安装完成后,为了更方便使用它,需要给程序的可执行文件做一个符号链接
sudo ln -sf /usr/local/xxx/可执行文件 /usr/local/bin/可执行文件

DPKG命令与软件安装、APT的更多相关文章

  1. 使用dpkg命令卸载已经安装的软件包

    如何在Ubuntu中使用dpkg命令卸载软件 http://jingyan.baidu.com/article/f54ae2fc2724a71e92b849c4.html sudo dpkg -i x ...

  2. Linux基础命令、软件安装

    常用命令 查看当前系统中存在哪些shell cat /etc/shells [root@** ~]# cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /us ...

  3. Ubuntu使用(一)——常用命令与软件安装配置

    1.安装输入法 2.配置JDK 3.eclipse 3.1 eclipse启动错误 修改eclipse.init的配置,主要加-vm以及下面的jre路径,路径前别留空格 之前因为加了空格,一直找不到原 ...

  4. shell 命令下载软件 安装软件

    下载命令:wget URL地址 wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.29-81.el6.centos.noa ...

  5. dpkg命令的用法

    dpkg 是Debian package的简写,为”Debian“ 操作系统 专门开发的套件管理系统,用于软件的安装,更新和移除. 所有源自"Debian"的Linux的发行版都使 ...

  6. ubuntu 软件安装配置使用总结(由xmind:Depends:java8-runtime but is not installed引出)

    ubuntu 软件安装总结(由xmind:Depends:java8-runtime but is not installed引出) 不知道抽什么风,这几天PC上又用起了linux操作系统.其实之前断 ...

  7. Linux软件安装管理之——dpkg与apt-*详解 apt命令(dpkg和apt代替rpm)

    apt list *python* Nosee123关注赞赏支持   Linux软件安装管理之--dpkg与apt-*详解 [Linux软件安装管理系列]- - 传送门: - -<Linux软件 ...

  8. Ubuntu下软件安装的几种方式,apt,dpkg工具的使用

    通常 Linux 上的软件安装主要有四种方式: 在线安装 从磁盘安装deb软件包 从二进制软件包安装 从源代码编译安装 这几种安装方式各有优劣,而大多数软件包会采用多种方式发布软件,所以我们常常需要全 ...

  9. ubuntu的dpkg命令安装和卸载软件

    实际使用中,可以先到网上下载deb文件,然后用dpkg命令来安装. sudo dpkg -l | grep 360 #查看包含360的软件sudo dpkg -i browser360-cn-stab ...

随机推荐

  1. 数据库:mongodb与关系型数据库相比的优缺点

      与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度:举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精 ...

  2. Android Studio使用JNI

    0x01 前言 本文讲述使用Android Studio通过静态注册.动态注册使用JNI的方法,以及加载第三方so文件的方法 0x02 Android Studio静态注册的方式使用JNI 1. 添加 ...

  3. maven profile动态选择配置文件

    一.背景 在开发过程中,我们的软件会面对不同的运行环境,比如开发环境.测试环境.生产环境,而我们的软件在不同的环境中,有的配置可能会不一样,比如数据源配置.日志文件配置.以及一些软件运行过程中的基本配 ...

  4. AP(应付帐管理)

    --更新供应商地点 PROCEDURE update_vendor_site(p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false, x_return ...

  5. Jquery 提示

    1  文字提示: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

  6. PageValidate 类

    转载:http://www.cnblogs.com/sufei/archive/2010/01/14/1648028.html using System.Text.RegularExpressions ...

  7. dmalloc 原文 翻译整理

    http://blog.csdn.net/cardinal_508/article/details/5553387 L13 从快速入门开始(Quickstart) 这个库是一个文件中所有简化用法中最常 ...

  8. Python抓取页面中超链接(URL)的三中方法比较(HTMLParser、pyquery、正则表达式) <转>

    Python抓取页面中超链接(URL)的3中方法比较(HTMLParser.pyquery.正则表达式) HTMLParser版: #!/usr/bin/python # -*- coding: UT ...

  9. ZTE AD3812 3G模块在linux 2.6.34 内核的开发板上的支持方法

    先说段废话,话说在linux 2.6.34 下,好多比较新的3G网卡及3G模块都没有很好的支持.如果想支持的这些3G网卡/3G模块呢,基本上有两种方式: 1.使用该3G模块的 linux 下的驱动,交 ...

  10. 【M27】要求或者禁止对象产生于heap之中

    1.要求对象只能产生于heap之中,该怎么办? 栈上的对象肯定调用构造方法和析构方法(离开作用域的时候),因此,要求对象只能产生于heap之中,也就是禁止栈上产生对象,解决办法有两种:将所有的构造方法 ...