今天在 Ubuntu 私有雲環境安裝 PPA 套件時遇到奇怪現象:
安裝apache2
sudo add-apt-repository -y ppa:ondrej/apache2
返回110 timeout
安裝php
sudo add-apt-repository -y ppa:ondrej/php
返回110 timeout
我在想是不是卡到陰了!!經過查詢原來是add-apt-repository壅塞被卡住了,才會返回timeout,解決方法就:手動加入 PPA + 手動匯入 GPG key,完全不經過 add-apt-repository,就不會 timeout。
安裝apache2
sudo add-apt-repository -y ppa:ondrej/apache2
返回110 timeout
安裝php
sudo add-apt-repository -y ppa:ondrej/php
返回110 timeout
我在想是不是卡到陰了!!經過查詢原來是add-apt-repository壅塞被卡住了,才會返回timeout,解決方法就:手動加入 PPA + 手動匯入 GPG key,完全不經過 add-apt-repository,就不會 timeout。
方法如下:
1、先取得目前 Ubuntu codename(jammy / noble / focal...)
. /etc/os-release
echo $VERSION_CODENAME
2、加入Apache2 PPA
echo "deb http://ppa.launchpad.net/ondrej/apache2/ubuntu $VERSION_CODENAME main" \
| sudo tee /etc/apt/sources.list.d/ondrej-apache2.list
3、加入PHP PPA
echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu $VERSION_CODENAME main" \
| sudo tee /etc/apt/sources.list.d/ondrej-php.list
4、匯入 PPA key(使用 port 80 避開防火牆)apt-key 已被標記為 deprecated,但目前仍可正常使用。
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E5267A6C
5、更新套件庫並確認 Apache Candidate 版本
sudo apt update
apt-cache policy apache2
需要返回這樣版號(不能兩個一樣)
Installed: 2.4.52-xxx
Candidate: 2.4.66-xxx ← 必須比 Installed 新,才能升級
如果 Installed / Candidate 一樣 → 代表 PPA 沒吃到或 codename 寫錯。
6、升級 Apache 至 Candidate 版本(如 Installed 已是最新則不需升級)
sudo apt install apache2 --only-upgrade
成功後驗證版本
apache2 -v
如返回
Server version: Apache/2.4.66
這就完成升級與安裝工作,卡到陰事件也順利排除,有需要的朋友參考看看!!
工作心得撰寫:徐嘉裕 Neil hsu
留言
張貼留言