本人对ubuntu的了解不是很多,而且仅限于日常使用,目前没有时间和精力系统学习linux相关知识,只能通过日常使用来逐步了解linux发行版-ubuntu的相关知识,也就是采取随学随用、随用随学的策略。因此,本系列《ubuntu常用知识》并不会按照由浅入深,由简至繁的策略进行,类似于随笔而已。将来是否出全系列也说不准,至少现在是不需要的。内容上也不仅限于linux,可能还会涉及库的安装,软件的安装等。本系列的每篇文章的长度按照一天所学的知识延展,因此并没有固定的长度,篇幅多长完全由心情决定,hahahahaha!!!废话不多说,Let's do it!
一、apt install sth
这是ubuntu中最常用的安装命令。实际上我最常用的命令是apt-get install,两者实际上并没有实质区别。apt-get是老版的命令,apt是新版的命令,apt还包含了apt-get cache等等,用起来更方便。因为apt刚刚出来,所以允许有apt-get和apt共存,以后apt-get就要淘汰了。实际上apt install的安装方式会导致软件相关文件显得杂乱无章,详见这篇博文apt install 到底做了什么。不过不可否认的是通过apt install安装是方便的。
什么是APT?
传统的Linux安装软件过程是繁琐的,需要通过源代码的方式进行安装,并需要解决依赖问题,这对萌新来说简直就是灾难。还好RedHat公司为降低安装软件的难度,在自己的发行版中推出了著名的软件包管理工具RPM(Redhat Packet Manager),虽然RPM是由Redhat公司开发的,但其最初的理念是开放式的,其他的发行版比如OpenLinux、S.u.S.E.以及Turbo Linux都有采用,算是公认的行业标准了。
然而,虽然RPM提供的系软件管理功能使得软件安装和删除高度的自动化,简化了Linux环境下软件安装和管理的难度。但是RPM为保持系统一致性而具有的软件包依赖性问题需要管理员手工解决。管理员在安装和卸载程序时就可能非常烦琐。例如:在某个软件A时会发现该软件依赖于另外一个软件B,从而需要下载B,又发现B依赖与C,这样出现多次依赖嵌套问题。管理员不得不一一下载,然后再安装。
值得庆幸的是,Debian发布的软件管理系统发明的APT(高级软件包工具,Advanced Package Tool)在系统软件安装维护方面更加方便易用。APT能够在发现软件包依赖性的同时自动下载相应的软件包并加以安装。APT使得管理员能毫无故障地执行系统软件的升级。许多时候,当用户的软件安装对其他方法产生不良影响时,apt的一个改进能够让所有事情都保持正确。APT使得零停机时间升级成为现实。
简单来说,APT就是Debian发布的高级软件包管理工具,当我们想安装某个软件时,只需要apt install sth
就可以安装了,此背后的逻辑我们完全不需要了解。实际上,APT根据这一指令找到数据库中相应软件进行安装。本着刨根问题的原则,我们有必要该数据库在哪里。
APT源
这一小节主要讲解源的问题,主要参考详见该博文: Ubuntu的软件源格式详解。下面是对博文的总结。
ubuntu的软件源格式为(以阿里云为例):
deb http://mirrors.aliyun.com/ubu... trusty main restricted universe multiverse
deb-srchttp://mirrors.aliyun.com/ubu... trusty main restricted universe multiverse
整个源结构可分为四部分:
为节约篇幅,我就不详解区别了。如有问题,自行百度即可。
当了解这些知识后,编写一条可用的源就轻而易举了。存放源的文件为sources.list,编写过程如下:
- 首先确定我们想要哪种源,是阿里的还是清华的,or其他的?这里我以阿里为例。
按照源的四部分开始编写:
- 第一部分,确定软件包格式,如果只获得deb二进制软件包,则使用deb,如果还要获得生成它的源码则使用deb-src,但通常情况下,我们只需要deb就可以了。
- 第二部分,确定源的地址,这里我使用阿里云软件源
http://mirrors.aliyun.com/ubuntu/
- 第三部分,确定发行版版本代号,如trusty。事实上,如果我们进入dists/目录下可发现除了trusty还有其他的版本,比如bionic,xenial等,不过我们一般使用的是trusty。除了主要仓库外,还要包括其他四个附加仓库才算完整。
- 第四部分,确定软件包的分类目录,一般情况下我们也包含所有的目录,因为除了常用软件,我们可能还需要设备驱动等其他软件。
综上,完整的软件源文件sources.list为:
deb http://mirrors.aliyun.com/ubuntu/ trusty main universe restricted multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main universe restricted multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main universe restricted multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main universe restricted multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main universe restricted multiverse
为了能使该文件起作用,需要将其放在/etc/apt/目录中,并执行sudo apt update
命令更新软件列表。
PPA源
上述添加的源实际上是官方的镜像源,目的是提升下载软件速度,本质上还是官方源。然而,还有许多软件并不在官方源中,那我们如何获取这些软件呢?这个时候就需要PPA源了。所谓 PPA 源,就是指 “Personal Package Archives” ,也就是个人软件包集。这其实是一个网站,即launchpad.net。Launchpad 是 Ubuntu 母公司 Canonical 有限公司所架设的网站,是一个提供维护、支援或联络 Ubuntu 开发者的平台。由于不是所有的软件都能进入 Ubuntu 的官方的软件库,launchpad.net 提供了 PPA,允许开发者建立自己的软件仓库,自由的上传软件。供用户安装和查看更新。
我们可通过下列方式添加/删除PPA源:
添加PPA源:sudo add-apt-repository ppa:user/ppa-name
删除PPA源:sudo add-apt-repository --remove ppa:user/ppa-name
比如我们想安装wireshark,我们可以写如下命令:
sudo add-apt-repository ppa:wireshark-dev/stable
sudo apt-get update
当我们添加完 PPA 源之后,系统就会在 /etc/apt/sources.list.d/ 文件夹里创建了1个文件,但一般两个文件。
发现源的结构与官方源的结构是相同的。ubuntu为了安全性的考虑才会建立用于储存官方源的文件sources.list以及非官方源的文件sources.list.d/