iT邦幫忙

2024 iThome 鐵人賽

DAY 19
0

Ubuntu 套件管理基礎指南

Ubuntu使用APT(Advanced Package Tool)作為其主要的套件管理工具。讓我們通過一些實例來學習相關的指令。

更新套件列表

sudo apt update

這個命令更新本地套件數據庫,但不安裝任何東西。

升級已安裝的套件

sudo apt upgrade

這個命令升級所有已安裝的套件到最新版本。

搜索套件

apt search nginx

搜索可用的套件。

安裝套件

sudo apt install htop

安裝指定的套件。

移除套件

sudo apt remove htop

移除指定的套件,但保留配置文件。

完全移除套件及其配置

sudo apt purge htop

完全移除套件,套件括其配置文件。

查看套件信息

apt show htop

顯示指定套件的詳細信息。

列出已安裝的套件

apt list --installed

列出所有已安裝的套件。

清理不再需要的依賴

apt autoremove

移除不再需要的套件(通常是作為其他套件的依賴安裝的)。

Ubuntu LAMP 堆疊安裝指南

具體的例子來說明套件依賴關係,LAMP 代表 Linux, Apache, MySQL, 和 PHP。這是一個常用的 Web 開發環境。

步驟 1: 更新系統

apt update
apt upgrade

步驟 2: 安裝 Apache Web 伺服器

apt install apache2

步驟 3: 安裝 MySQL 數據庫伺服器

apt install mysql-server

步驟 4: 安裝 PHP

apt install php libapache2-mod-php php-mysql

步驟 5: 安裝sudo

apt install sudo

步驟 6: 啟動服務

sudo service apache2 start
sudo service mysql start

驗證安裝

創建一個 PHP 信息頁面:

echo "<?php phpinfo(); ?>" | tee /var/www/html/info.php

訪問 http://localhost/info.php 以查看 PHP 信息頁面。
curl

這個例子中的依賴關係:

  1. Apache (apache2)

    • 這是 Web 伺服器,它本身沒有直接依賴於其他套件。
    • 但是,為了支援 PHP,我們需要安裝額外的模組。
  2. MySQL (mysql-server)

    • 這是數據庫伺服器,它有自己的一套依賴,但 apt 會自動處理這些。
  3. PHP (php libapache2-mod-php php-mysql)

    • php:這是 PHP 核心套件。
    • libapache2-mod-php:這是 Apache 的 PHP 模組,它使 Apache 能夠處理 PHP 文件。這個套件依賴於 apache2php
    • php-mysql:這是 PHP 的 MySQL 擴展,允許 PHP 與 MySQL 數據庫通信。它依賴於 phpmysql-server

當你運行 sudo apt install php libapache2-mod-php php-mysql 時,apt 會自動解析這些依賴關係。如果 Apache 或 MySQL 還沒有安裝,它會自動安裝它們作為依賴項。

這裡有幾個關於依賴的重要概念:

  1. 自動依賴解析:當你安裝一個套件時,apt 會自動安裝所有必要的依賴套件。

  2. 版本兼容性:apt 會確保安裝相互兼容的版本。

  3. 衝突處理:如果存在套件衝突,apt 會通知你並嘗試解決衝突。

  4. 移除依賴:當你移除一個套件時,自動安裝的依賴可能會保留。這就是為什麼有時候需要運行 sudo apt autoremove 來清理不再需要的依賴。

例如,如果你決定移除 PHP:

sudo apt remove php libapache2-mod-php php-mysql

這會移除 PHP 相關的套件,但可能會留下一些不再需要的依賴。然後你可以運行:

sudo apt autoremove

autoRemove

這將清理不再需要的依賴套件。

小結

apt功能真的很強大,因為API開發時常常遇到套件與套件之間的衝突,有時候啟動時才發現,apt可以直接協助確認兼容性,還可以將依賴的套件一次清掉,這幫專案受身很有幫助。


上一篇
Day18-Linux 基礎入門-4
下一篇
Day20-Linux 基礎入門-6
系列文
從零開始的DevOps猴!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言