Ubuntu下软件安装方式、PATH配置、查找安装位置

时间:2023-03-08 17:25:20
Ubuntu下软件安装方式、PATH配置、查找安装位置

Ubuntu 18.04,

安装方式

目前孤知道的Ubuntu下安装软件方式有3种(命令):

1.make

2.apt/apt-get

3.dpkg

方式1基于软件源码安装,需要经历配置(可选)、编译、安装,获取源码可以直接从软件官网下载,或者,使用wget命令下载;

方式2可以安装Ubuntu的软件源(sources)中的软件,在配置文件/etc/apt/sources.list中有定义软件源,可以修改、添加自己的,其中,deb开头的为deb安装包,deb-src开头的为源码,需要注意的是,软件源的配置(URL后面部分)需要根据自己的Ubuntu版本进行,配置完软件源后,需要使用update更新(抱歉自己理解的不是很透彻,更新到哪里呢?);

方式3来自Debian系统,而Ubuntu源于Debian,用于安装deb安装包,没有使用过,貌似deb安装包可以在Ubuntu下双击打开进行安装(第4种安装方式吗?);

实践:

前面使用源码安装Redis时,并没有执行./configure、make install,直接解压后执行make即可,这与其Makefile文件中制定的流程有关系;

参考资料:

ubuntu下安装程序的三种方法 by -鸣人-

Ubuntu 下 apt-get 更新源推荐

Ubuntu修改apt-get源(这篇文章讲解了source的一些配置)

Ubuntu下软件安装方式、PATH配置、查找安装位置

因为对apt/apt-get用的比较多——绝大部分,因此,下面做了一个统计:

apt开头的命令有哪些、apt命令的子命令有哪些、apt-get的子命令有哪些……另外,apt-cache也是非常有用的命令,自己展示简单地试用了一下。

Ubuntu下软件安装方式、PATH配置、查找安装位置

下面展示RHEL、Debian类系统的安装进化:最初都是从源码包安装,后来,Debian现行一步开发了安装包管理系统,然后,大发展。

Ubuntu下软件安装方式、PATH配置、查找安装位置

Debian是不是太厉害了?

还有一个aptitude,要是加上这个工具,就是第4种安装方式了!不过,Ubuntu中默认没有安装,自己更是从未使用过,看网文介绍,它挺厉害的。

参考链接:

【Ubuntu】aptitude命令详解

Ubuntu下软件安装方式、PATH配置、查找安装位置

5款最适合新手的包管理器

你需要知道的包管理器(Package Manager)

原来,包管理器在很多系统、平台中都有使用啊!微软的、Google的~~还有一个很著名的系统CentOS,其用到的包管理器叫做yum,没用过。

配置环境变量PATH

疑问:

前面使用make安装了下载的Redis 4.0.10,可是,Redis的相关命令都存在于源文件包的src下,启动Redis服务器和客户端需要使用./src/redis-server、./src/redis-cli命令,必须要添加“./”表明执行当前目录下的命令。这就和自己期望的不一致了,希望直接输入命令执行。在Windows中是将命令所在目录添加到path环境变量中,在Windows中呢?也是需要添加到环境变量中,但环境变量的名称是大写的PATH,可以使用echo $PATH获得其当前值:

Ubuntu下软件安装方式、PATH配置、查找安装位置

之前使用sudo apt-get install安装的MongoDB的命令却已经存在于PATH中的/usr/bin中了:

Ubuntu下软件安装方式、PATH配置、查找安装位置

当然,这个问题也和Redis的Makefile文件的编写有关系,其完全可以在Makefile文件中设置环境变量的,但它没有。

参考链接:

Linux下通过源码编译安装程序

Ubuntu下软件安装方式、PATH配置、查找安装位置

Linux环境变量文件environment, profile, bashrc含义

Ubuntu下软件安装方式、PATH配置、查找安装位置

Linux 下三种方式设置环境变量(这篇文章中有安装JDK的示例)

查找安装位置

安装方式有了,配置环境变量也有了,最后,想知道程序安装在哪里了吗?whereis、which等,下面的文章还介绍使用find、dpkg、locate、mongo来查找,但孤尚未试过。

参考链接:

ubuntu16.04查看软件的安装位置

后记

经过一下午的努力,大概知道了Ubuntu下怎么安装软件、怎么配置环境变量PATH、怎么查找软件安装位置了,剩下的,就要靠动手实践来熟悉了。

任务:安装MySQL、Kafka、RabbitMQ、Apache、Nginx、Memcached等各种软件吧;

对了,自己对Linux真的不熟悉,各个文件夹、文件的作用都“忘记了”——曾经也学过,看来,还需要补补;

还有就是各种Linux命令,今天还学了一个wc命令,统计字数、行数的,很有用!

下午看了几个配置文件,好像完全不知道里面的代码什么意思,只记得,很久很久之前,自己也有花时间专门学过Bash编程的,只是……也要补补啊!

熟悉Linux,一个很艰巨的任务!否则,怎么玩Python呢!