zoukankan      html  css  js  c++  java
  • 【Ubuntu 16.04 使用日志】Linux下软件安装方法汇总

    Linux系统中,软件通常以源代码或者预编译包的形式提供。
    软件源代码需要您亲自编译为二进制的机器代码才能够使用,安装比较耗时,不过您可以自行调节编译选项,决定您需要的功能或组件,或者针对您的硬件平台作出优化。
    预编译的软件包,通常是由软件的发布者进行编译,您只要将软件拷贝到系统中就可以了。考虑到预编译软件包的适用性,预编译软件包通常不会针对某种硬件平台优化。它所包含的功能和组件也是通用的组合。

    Ubuntu系统中,软件通常以“deb”格式的包文件发布,它是一种预编译软件包。deb包中除了包含已编译的软件,通常还包括软件的拷贝路径、对其它软件包的依赖关系纪录、一个比较通用的配置文件以及软件的描述、版本、作者、类别、占用空间等信息。

    deb软件包命令遵行如下约定:

    soft_ver-rev_arch.deb
    

    soft为软件包名称,ver为软件版本号,rev为Ubuntu修订版本号,arch为目标架构名称
    例如:azureus_2.4.0.2-0ubuntu2_all.deb

    您需要使用“dpkg”命令来管理deb软件包:

    • dpkg -i | --install xxx.deb 安装deb软件包
    • dpkg -r | --remove xxx.deb 删除软件包
    • dpkg -r -P | --purge xxx.deb 连同配置文件一起删除
    • dpkg -I | -info xxx.deb 查看软件包信息
    • dpkg -L xxx.deb 查看文件拷贝详情
    • dpkg -l 查看系统中已安装软件包信息
    • dpkg-reconfigure xxx 重新配置软件包

    有些时候,您使用“dpkg”安装一个软件包,系统会提示您该软件包依赖其它软件包。这时,您先安装其它软件包,直到满足依赖关系为止。或者同时安装多个软件包

    dpkg -i aaa.deb bbb.deb ccc.deb
    

    APT

    如果一个软件依赖关系过于复杂,使用“dpkg”来安装它,并不是一个明智的选择,这个时候您就需要用到APT软件包管理系统。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 搜索软件包
    

    Tips:建议您经常使用“apt-get update”命令来更新您的软件信息数据库

    源码包

    对于绝大多数软件,我们建议您使用APT系统来安装它。在少数情况下,例如某软件没有以deb包的格式发布,或者您需要定制适合自己的软件,您可以通过编译源代码的方式安装它。

    首先您需要下载软件的源码包,并且将它解包为一些源代码文件。并了便于管理,我们建议您将下载的源码包移动到“/usr/local/src/”目录下,并在这里解包。

    sudo mv xxx.tar.gz /usr/local/src 移动源码包
    cd /usr/local/src       进入“/usr/local/src/”目录
    sudo tar -xzvf xxx.tar.gz    解包源码
    cd xxx_ver/          进行解包后的源码目录
    

    源码目录中通常有一个“configure”脚本,用来配置即将开始的编译过程。您可以执行它

    sudo ./configure [--prefix=/usr/loca/xxx ......]
    

    它会自动检测软件的编译环境和依赖关系,并且生成“Makefile”文件。
    您可以使用带参数的命令“./configure --help”,或者阅读“INSTALL”文件,查看该脚本允许的参数。例如使用“--prefix=/usr/local/xxx”参数,将软件的安装目录设定为“/usr/local/xxx/”。(如果您一定要将软件安装在一个目录下,我们建议您安装在这里)

    现在执行“make”命令,系统会根据“Makefile”文件中的设定,通过“make”工具调用编译器和所需资源文件,将源代码文件编译成目标文件。

    sudo make
    

    执行“make install”命令,“make”工具会自动将连接目标文件,将最终生成的文件拷贝到“Makefile”文件设定的路径中,并且完成更改文件的属性,删除残留文件等活动。

    sudo make install
    

    现在,您的编译安装已经完成,为了更方便的使用它,需要给程序的可执行文件作一个符号链接。

    sudo ln -sf /usr/local/xxx/exe /usr/local/bin/exe
    

    LINUX软件包的一般安装方法

    在LINUX的世界里,软件的安装主要的是有两种方式,一种是rpm包,还有一种就是tar包。对于这两种包,一般的安装方法是这样的:

    1)rpm包的安装

    安装rpm包时需要一个参数就是-i.也就是就是可以用这样的命令来安装:

    rpm -i *.rpm
    

    但是我们在安装时总是希望能看到一些信息,这时就可以用这样的命令:

    rpm -ivh *.rpm
    

    这时就会显示出软件包的安装进度以及安装中的信息等。
    如果想要安装的软件包系统中已经存在而只需要升级安装一下的话可以这样来做:

    rpm -U *.rpm
    

    这样就会升级系统中已经存在软件包了。
    而御载一个已安装的软件包的命令是这样的:

    rpm -e packagename
    

    要想列出系统已经安装的rpm包的清单可以输入下面的命令:

    rpm -qa
    

    但是此时列出的清单会是很长的,而我们所需要的只是其中的一个,这时我们可以用下列的命令来达到我们的目的:

    rpm -qa |grep -i 'name'
    

    在软件包的安装过程中我们有可能用到的参数如下:

    • --force 强行安装
    • -v 用符号“#”来显示安装进度
    • --percent 用百分比来显示安装进度
    • -nodeps 忽视已丢失的依赖性文件强行进行安装
    • -test 这个参数并不进行实际的安装,而只是检查软件包能否成功安装
    • -v 告诉RPM报告每一步的情况

    2) tar包

    tar包有两种格式,一种是.tar.gz,另一种就是tar.bz2.这两种包的安装方法一般是这样的:
    解压:这两种包要有用两个不同的命令来解包,分别是:

    tar -xzvf *.tar.gz
    tar -xvjf *.tar.bz2
    

    解压以后进入解压出来的目录,看一下里面的东西,一般而言这样的包里会有README文件的,打开看一下的他的安装方法。一般来说这样的包安装一般是下面的步骤:

    make
    make install
    

    这样就会将软件包安装上了。

    3)二进制文件

    除了这样的安装方法,还有的软件是以可执行的二进制的文件的形式给出的。这时只要执行这个二进制文件就可以将这个软件安装上的。

    4)软件包安装和更新

    在Debian中采用的软件包管理机制是与众不同的,在这里可以使用世界各地的镜像站点进行软件包安装和更新,方法一般来说是这样的:
    配置镜像站点:vi /etc/apt/source.list
    在这个文件里加入你所使用的镜像站点。然后执行apt-get update,这样就会连接站点读取软件包的信息,然后执行apt-get upgrade,这样就可以进行升级了。或者是执行apt-get install pakeagename,这样就可以安装你想要的软件包了。

    参考

  • 相关阅读:
    搜索入门
    计算几何基础
    对“学生自行组队,共同完成实验”的一些思考感慨
    20145213《信息安全系统设计》第十一周学习总结
    20145213《信息安全系统设计基础》第十周学习总结
    记与舍友摩擦的一两事儿
    20145213《信息安全系统设计》第九周学习总结下篇
    20145213《信息安全基础设计》第九周学习总结上篇
    20145213《信息安全设计系统》实验报告一
    20145213《信息安全系统设计基础》第八周学习总结下篇
  • 原文地址:https://www.cnblogs.com/shih/p/6750077.html
Copyright © 2011-2022 走看看