今天是机派X系列文章的第七天。
昨天介绍了 Ubuntu Server 常用的网路管理指令,今天继续介绍套件管理软件。
本篇大纲:
传统的软件安装过程通常是:软件制造商将制作好的软件烧录至光碟中,使用者再购买光碟来安装软件。近年网路发达,让许多使用者也能透过网路渠道取得软件的安装程序,透过网路上下载的安装程序来完成软件安装。
传统的软件安装过程容易有资讯安全上的疑虑,例如:误入钓鱼网站,因而下载到含有恶意程序的软件。安装的过程也比较不方便,需要同意从来没阅读过的授权条款,还需要重复的按下一步直到软件安装结束。当要解除安装软件时,有时候会面临解除安装程序未能将相关档案清除乾净的状况,导致硬碟中的垃圾资料量在无形中增加。
套件管理软件(Package Management Software)是一种软件,其中汇集了使用者经常使用的各种软件的安装资讯,使用者可以藉由套件管理软件寻找自己需要的软件并执行安装,安装的过程中通常由套件管理软件自动完成。若安装的软件後续有推出更新,套件管理软件也能协助使用者执行更新。当要解除安装软件时,套件管理软件通常也能让使用者按个按钮来解决,并协助清理软件解除安装後残留的档案或资料。
熟悉微软 Windows 系统的使用者应该对 Microsoft 商店(Microsoft Store) 不陌生,透过 Microsoft 商店能快速寻找符合自己需求的软件,并享有快速又便利的软件安装过程,相比於传统的软件安装方式更安全也方便。
在 Linux 上也有许多套件管理软件可供使用,例如:apt、pacman、yum 等,我们使用的 Ubuntu 中预装的套件管理软件是 apt ,因此接下来将以 apt 为主角来介绍套件管理软件。
apt 是一个套件管理软件,全名是 Advanced Package Tool。
apt 蒐罗了各式各样的软件,例如:gnome-2048、GIMP、network-manager 等,并将软件的相关资讯储存在云端资料库中。使用者只需要在电脑上执行 apt 并连线至云端资料库即可得知 apt 蒐集的软件有哪些、以及每个软件的基本资讯。当使用者要安装软件时,只需要再告诉 apt 要安装哪些软件,apt 就会自动在云端资料库中检索相关资讯,并将软件下载并安装至电脑中。当我们要解除安装某个软件时,apt 也会自动搜寻当时软件的安装路径并移除相关档案。
正如前面简介中提到的,apt 运作时需要先取得云端资料库中的软件资讯,这些资讯从云端取得後也会被储存在本机电脑中,apt 执行时会以本机电脑中的软件资讯为优先。为了让本机的软件资讯保持更新,安装软件前我们通常会让本机的软件资讯与云端资料库中的内容同步。
可以使用 apt update 来更新本机的软件资讯。由於这些软件资讯是全域性的资料,因此不是储存於使用者的家目录,而是储存在需要 root 权限才能存取的地方,所以操作 apt 时大都需要给予 sudo 才能顺利执行。
sudo apt update
可以使用 apt install 来安装新软件,其中的 PACKAGE 是指软件在资料库中的的名称。
sudo apt install PACKAGE1 [PACKAGE2]......
例如,前一篇文章有提到 network-manager 的安装:
sudo apt install network-manager
有些软件撰写时并非独立开发,而是奠基在前人开发的软件上,我们称这些前人开发的软件为相依套件(Dependency Package)。安装软件时若有需要其他相依套件才能使软件正常运作,则 apt 也会自动完成相依套件的安装,这些额外安装的相依套件也会纳入 apt 的管理范畴中。
有时候当你安装某个软件时,会发现 apt 还额外安装了其他软件,通常那些「多余」的软件就是相依套件或是建议安装的软件,不安装建议的软件通常不会导致主软件不工作,只是一些常用的功能或延伸功能无法使用而已。
如果不希望 apt 一并安装建议的软件,可以加入参数:
sudo apt install --no-install-recommends PACKAGE1 [PACKAGE2]......
以 network-manager 为例:
sudo apt install --no-install-recommends network-manager
可以使用 apt remove 来解除安装软件。
sudo apt remove PACKAGE1 [PACKAGE2]......
例如解除安装 network-manager:
sudo apt remove network-manager
apt remove 仅会移除软件,但是软件衍生的设定档并不会被被清除,如果希望这些档案也一并被清除的话,请使用 apt purge。
sudo apt purge PACKAGE1 [PACKAGE2]......
当移除某个软件後,有些残存的套件不会被主动移除,可以使用 autoremove 来清除:
sudo apt autoremove
可以使用 apt list 搭配 --upgradable 引数来列出可供更新的软件。由於只是查询资料,因此无须 root 权限。
apt list --upgradable
如果希望更新所有软件,可以直接使用 upgrade:
sudo apt upgrade
如果希望更新特定软件,可以直接使用 install(跟前面用法一样):
sudo apt install PACKAGE1 [PACKAGE2]......
若是执行更新时需要下载其他软件,或是相依套件需要更新,apt 都会自动处理!
讲了那麽多,也许你会觉得奇怪!要如何知道 apt 提供哪些软件呢?
总要知道 apt 提供哪些软件,以及软件名称才能够安装吧!
别着急 apt search 可以解决你的问题,其中的查询内容 QUERY 可以是 regex。
apt search QUERY
例如,查询 libreoffice 套件,输出结果会有套件名称以及一行简短描述。
apt search libreoffice
为了减少输出的资讯量,我们缩小一下范围,使用 regex 查询 libreoffice 套件:
apt search ^libreoffice$
从图中可以看到 libreoffice 的套件名称为 libreoffice(正斜线前的部份)。
apt search 显示的资讯较少,可以使用 apt show 查询套件的完整资讯:
apt show PACKAGE1 [PACKAGE2]......
查询 libreoffice 套件的详细资讯:
apt show libreoffice
了解 apt 的基本用法後,当然要安装几个软件来玩玩看罗!
为了让大家可以安装一些人性的游戏、好好畅玩一番,因此接下来要教大家在 Ubuntu Server 上安装图形化使用者界面。
由於 Linux 本身很具有弹性,可以安装不同的图形化使用者界面,因此下面我提供三种让大家自行选择。
第一个是 xubuntu,是 Ubuntu 官方推荐的轻量 GUI。
sudo apt install xubuntu-desktop
第二个是 lubuntu,也是 Ubuntu 官方推荐的轻量 GUI。
sudo apt install lubuntu-desktop
第三个是 xfce,是我自己惯用的轻量 GUI。
# Update metadata of database.
sudo apt update
# Install xserver and xserver utilities.
sudo apt install xorg xserver-xorg-legacy -y
# Install xfce desktop environment.
sudo apt install xfce4 xfce4-screenshooter xscreensaver -y
# Install applications.
sudo apt install nautilus firefox gedit -y
# Install language support and input method.
sudo apt install xfonts-intl-chinese fonts-wqy-microhei -y
sudo apt-get install im-config zenity fcitx fcitx-chewing 'fcitx-ui-*' fcitx-config-gtk -y
# Edit Xwrapper.conf
sudo sed -i 's/allowed_users=console/allowed_users=anybody/1' /etc/X11/Xwrapper.config
以下是在 xfce 桌面环境下执行 gnome 2048 的截图。
不知读者是否还记得 Ubuntu Server 与 Ubuntu Desktop 的差异呢?
Day 2 安装 Ubuntu 时,选择版本的教学已经做过说明了:
如果你的树莓派要当作服务器使用(例如:档案服务器、网页服务器等),请选择这个版本。通常你会透过 ssh 或是其他远端存取工具来管理树莓派,所以这个版本没有图形化使用者界面,不过许多服务器会用到的软件或设定会事先帮你装好。
到目前为止我们都还离不开树莓派,直接在树莓派外接出来的萤幕、键盘上做事。
接下来要教大家使用 ssh 利用网路连接至树莓派上,让大家可以回到熟悉的 Windows 环境中操作树莓派。
首先,要先在树莓派上安装相对应的 ssh 伺服端软件。
由於我们使用的是 Ubuntu Server,所以已经事先装好了,我们无须再次安装。
接着需要在你的电脑上安装 ssh 客户端软件。
如果你使用的是 Windows 10 基本上已经预装好了,不过如果是较古老的 Windows 或是没有预装 ssh 客户端的版本可以再 手动安装 。
最後只需要在你的电脑上,打开 cmd 并输入以下指令即可透过 ssh 连接至树莓派!
USERNAME 是使用者名称,HOSTNAME 则是树莓派的 IP。
ssh USERNAME@HOSTNAME
以我的树莓派来说,之前创的使用者名称是 crazylab ,IP 是 192.168.0.193 。
ssh [email protected]
以下是在 Windows 10 透过 ssh 连接至树莓派的截图。
以下是在 Linux 透过 ssh 连接至树莓派的截图。
大家可能已经发现一些端倪了!
我上面放的所有 apt 操作截图其实都是透过 ssh 连接至树莓派远端操作的成果。
毕竟拿着手机拍树莓派连接的萤幕真的是很不方便,画面也很模糊。
结尾部份,大家可以讨论以下四种状况下的系统资源用量、便利性、系统回应延迟等。
Note :
系统资源用量可以透过 htop 指令来观察。
如果对於文章内容有建议、纠错或图源标示不正确的问题,欢迎参考 [机派X] Day 1 尝试与文章作者联络。
想看更多本系列的文章,请连结至 [机派X] Day 1 查看大纲。
<<: DAY 7 Big Data 5Vs – Volume(容量) — Lake House & Database
>>: Day 04 - Credit Enquires 与 Short Stock Source
终於来到心心念念的第 30 天了!(放烟火) 还记得当初的目标是要用这 30 天学会影像处理的每一部...
https://leetcode.com/problems/remove-nth-node-fro...
做好学习程序语言这件事,可以说已经成为了全民运动。在人类的历史中,我们总是尽了一切努力想搞懂学习程序...
如果说Access right是针对model的CURD,那麽Record rules就是针对每笔资...
从前面几篇的介绍, 我们手动安装所需要的环境(包含k8s、jupyterhub、MLFlow、Sel...