顯示具有 dpkg與apt 標籤的文章。 顯示所有文章
顯示具有 dpkg與apt 標籤的文章。 顯示所有文章

2024年5月12日 星期日

Ubuntu 18.04升20.04,用dpkg重新設定

為了升級Ubuntu 18.04,先依序執行下面的指令完成更新前的準備:

  1. sudo apt update -y
  2. sudo apt upgrade -y
  3. sudo apt install -y update-manager-core
  4. sudo ufw allow 1022/tcp
  5. sudo iptables -I INPUT -p tcp --dport 1022 -j ACCEPT

這邊跟Ubuntu 16.04升級系統遇到ascii codec錯誤從16.04升級到18.04的差別在第3個指令。後面第4, 5兩個指令則是因為透過SSH遠端執行升級,故需要開啟備用通道。都完成後下指令:

  • sudo do-release-upgrade

2024年5月11日 星期六

更新Ubuntu 18.04的kernel從4.10到4.15

從16.04升級到18.04的系統,其Kernel核心還是16.04所帶的4.10.0。先用下列指令看有哪些核心可以升級:

  • cat /etc/os-release && uname -a
  • dpkg --list | grep linux-image | grep -v 16.04 

會看到可以用的kernel版本是4.15.0,再用apt指令要更新的kernel裝起來:

  • sudo apt install -y linux-image-4.15.0-225-generic linux-modules-4.15.0-225-generic linux-modules-extra-4.15.0-225-generic

裝好Kernel以後,可以先重開機一次。開完機以後會發現核心還是舊版的4.10.0,這是因為系統有新的核心但是開機選單GRUB並沒有修改。

2023年9月29日 星期五

Ubuntu 22.04安裝Docker

在Ubuntu 22.04上安裝Docker前,需要知道的事情:

  1. 安裝需要有superuser權限,一般會用sudo來達成
  2. 使用docker可以沒有superuser權限,但需要另外設定。
    若沒有設定則會出現類似下列的錯誤訊息:

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied

2023年6月1日 星期四

Debian 8 (jessie)上可用的sources.list

Debian 8(jessie)現在已經是到了產品壽命結束(End-of-life, EOF)週期,所以 /etc/apt/sources.list 裡面的站台都已經停止jessie的套件維護。若不想要升級系統而繼續使用jessie,需要將 /etc/apt/sources.list 修改如下:

deb http://archive.debian.org/debian/ jessie main
deb-src http://archive.debian.org/debian/ jessie main
 

deb http://security.debian.org jessie/updates main
deb-src http://security.debian.org jessie/updates main


完成之後執行下面的指令:

2022年7月30日 星期六

*** System restart required ubuntu ***

Ubuntu 20.04 server登入後,出現提示訊息:

  • 97 updates can be applied immediately.
  • 15 of these updates are standard security updates.
  • ......
  • *** System restart required ***

出現上面的訊息,代表著更新的套件有些需要重新開機才能夠作用,這些套件列在/var/run/reboot-required.pkgs裡面。若僅要確認更新standard security updates套件後是否要重開機,那就用指令:

  • grep --color -f <(apt-get -s dist-upgrade | grep "^Inst" | grep -i security | awk -F " " {'print $2'}) /var/run/reboot-required.pkgs 

2022年7月8日 星期五

Ubuntu 20.04安裝舊版GCC-5編譯器

Ubuntu 20.04預設的gcc版本是9.4.0,可用apt安裝gcc-8,但是gcc 7(含)以下就無法安裝。解決方法是先修改/etc/apt/sources.list,增加下面兩行:

deb http://dk.archive.ubuntu.com/ubuntu/ xenial main
deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe

上面加入了Ubuntu 16.04 Xenial Xerus (好客的非洲地松鼠)的套件庫,完成後執行

2022年5月20日 星期五

Ubuntu 20.04更新所有套件

為了自動分享iPhone熱點給多台Wifi設備先前在Raspberry Pi 3上安裝了Ubuntu Server 20.04 LTS。經過了55天不關機且沒有任何使用問題後,登入時發現有104個套件可以更新。雖然這些套件都是一般的更新而不是安全性更新,但還是手癢想更新...。指令如下:

  1. sudo apt update
  2. apt-get -s dist-upgrade | grep "^Inst" | grep -i security
  3. apt -s dist-upgrade
  4. sudo apt dist-upgrade
  5. sync;sync;sync;sudo reboot

以上四個指令的意思分別是:

2022年1月19日 星期三

Debian 8完整安裝R所需之所有dpkg套件

在Debian或Ubuntu上最簡單安裝R的方式為apt安裝:

  • sudo apt-get install r-base r-base-core r-base-html 

但這樣安裝,若是一些程式沒有先裝上去,那麼這個R就沒有完整的所有功能,像是順利的出jpeg, png的圖,或是讓Rstudio可以使用。以下為apt安裝r-base之前最好能夠先裝的所有軟體,請依照順序執行指令

2021年12月29日 星期三

用dpkg查詢apt安裝的軟體

 Debian與Ubuntu都是用apt來管理與安裝套件,列出所有套件用:

  • dpkg --get-selections
  • dpkg -l

2021年1月20日 星期三

Ubuntu 20.04安裝Docker Engine

使用docker指令前要先安裝Docker Engine,若有需要則先移除舊的docker

sudo apt-get remove docker docker-engine docker.io containerd runc

安裝Docker Engine所需的來源的金鑰

sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88

上述指令若成功,終端機會出現

2021年1月11日 星期一

Ubuntu 20.04僅更新安全性套件

Ubuntu server版本登入的時候預設會提醒有哪些安全性套件要更新。也可以用下面的指令來看:

  • apt-get -s dist-upgrade | grep "^Inst" | grep -i security 

確定要安裝這些安全性套件security update,則是用下面指令:

  • apt-get -s dist-upgrade | grep "^Inst" | grep -i security | awk -F " " {'print $2'} | sudo xargs apt-get --yes install


2021年1月7日 星期四

關閉Ubuntu 20.04的自動更新

要關閉Ubuntu 20.04的自動更新,只要將/etc/apt/apt.conf.d/20auto-upgrades

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

將1自動更新,更改為0關閉。數字似乎有天的意思

APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";

2019年11月5日 星期二

在Ubuntu上修復apt損壞的套件

在Ubuntu或Debian這一類使用apt安裝軟體的系統上,有時候會出現錯誤訊息
  • Unable to correct problems, you have held broken packages
這代表著套件系統裡面出現不一致的情況,解決方法是依序執行:
  1. sudo apt --fix-missing update
  2. sudo apt-get -f install

2019年10月2日 星期三

Ubuntu 18.04用Mac啟動後Wifi不通

使用Ubuntu 18.04開MacBookPro Retina late 2013,結果沒有無線網路可以用。使用lshw -C network確認Wifi的卡片用的是
  • BCM4360 802.11ac Wireless Network Adapter
使用lsmod發現是缺了wl這個驅動,上網查還缺了一些套件,安裝方式指令依序:
  1. sudo apt install broadcom-sta-dkms
  2. sudo modprobe wl

2019年9月20日 星期五

2019年9月2日 星期一

Debian 7上可用的sources.list

Debian 7(wheezy)現在已經是到了產品壽命結束(End-of-life, EOF)週期,所以/etc/apt/sources.list裡面的站台幾乎都已經停止wheezy的套件維護。若不想要升級系統而繼續使用wheezy,那就在裡面加入這行讓apt-get指令還可繼續使用:
  • deb http://archive.debian.org/debian/ wheezy main

參考資料

_EOF_

2019年8月12日 星期一

Linux檢查程式來自那個套件

在Debian/Ubuntu等這系列使用deb package的,檢查程式所屬套件指令如下:
  • dpkg -S /bin/cat
  • dpkg -S /usr/bin/top
查詢時若沒有用絕對路徑,那上述指令就會把含有這個關鍵字的檔案與指令所屬的套件都列出來。若系統是CentOS/Fedora這一系列使用rpm的,檢查程式所屬套件就要用:

2017年6月29日 星期四

Ubuntu 16.04僅更新安全性套件

Ubuntu登入時,都會通知是否有套件需要更新、其中有幾個屬於安全性更新。若想要知道究竟哪些套件屬於安全性更新,下指令:
  • apt-get -s dist-upgrade |grep "^Inst" |grep -i security 
若要安裝這些安全性更新套件,則是以root的身份下指令:
  • apt-get -s dist-upgrade | grep "^Inst" | grep -i security | awk -F " " {'print $2'} | xargs apt-get --yes install

2017年5月1日 星期一

列出APT套件其檔案在系統上的位置

用apt-get安裝套件非常容易,但安裝完以後會不知道究竟安裝了什麼東西到系統上。

若是已經安裝好的套件,用下面的指令查詢:
  • dpkg-query -L <package_name>
若是尚未安裝的deb套件,用下面的指令查詢:
  • dpkg-deb -c <package_name.deb>
  • dpkg-query -c <package_name.deb>

若都還沒安裝,那這樣要用到apt-list這個套件:
  1. sudo apt-get install apt-file
  2. sudo apt-file update
  3. apt-file list <package_name>