Как обновить один пакет в Ubuntu / Debian с помощью apt-get

by itisgood

Как я могу обновить один пакет, используя apt-get в Ubuntu ?, Есть ли способ обновить один пакет, используя apt-get в Debian ?

Наиболее распространенным способом обновления пакетов в Ubuntu / Debian является запуск команды sudo apt-get upgrade.

Проблема заключается в том, что все установленные пакеты будут обновлены до последних версий, доступных в настроенных репозиториях Ubuntu.

Что, если вы хотите обновить один пакет с помощью apt-get на машине с Ubuntu или Debian?

Это актуально, если вы боитесь испортить пакеты из-за обновления всего.

Обновите отдельный пакет в Ubuntu / Debian с помощью apt-get

Чтобы обновить отдельный пакет с помощью apt-get в любой системе на основе Ubuntu / Debian, используйте синтаксис:

sudo apt-get install --only-upgrade packagename

Это будет работать для всех систем Ubuntu, Debian и Linux Mint.

Замените packagename на имя пакета, который вы хотите обновить.

Смотрите пример ниже, чтобы обновить Ubuntu-Keyring.

$ sudo apt-get install --only-upgrade ubuntu-keyring
 Reading package lists… Done
 Building dependency tree       
 Reading state information… Done
 The following packages will be upgraded:
   ubuntu-keyring
 1 upgraded, 0 newly installed, 0 to remove and 190 not upgraded.
 Need to get 22.4 kB of archives.
 After this operation, 4,096 B of additional disk space will be used.
 Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 ubuntu-keyring all 2018.09.18.1~18.04.0 [22.4 kB]
 Fetched 22.4 kB in 1s (34.5 kB/s)   
 (Reading database … 261497 files and directories currently installed.)
 Preparing to unpack …/ubuntu-keyring_2018.09.18.1~18.04.0_all.deb …
 Unpacking ubuntu-keyring (2018.09.18.1~18.04.0) over (2018.02.28) …
 Setting up ubuntu-keyring (2018.09.18.1~18.04.0) …

Обновите несколько пакетов в Ubuntu / Debian / Linux Mint

Чтобы обновить несколько пакетов, разделите их пробелом.

sudo apt-get install --only-upgrade thunderbird cinnamon cinnamon-common

Если вы хотите обновить все установленные пакеты, используйте команду:

sudo apt-get upgrade

Обновите один пакет или несколько пакетов в Ubuntu с помощью скрипта

Мы можем создать простой скрипт, который будет передавать имена пакетов в качестве аргументов каждый раз, когда вы хотите обновить отдельный пакет с помощью apt-get в системе Ubuntu или Debian.

Создайте скрипт в /usr/local/bin/myupgrade с содержимым ниже.

#!/bin/bash

pakage_names="$@"

[[ -z $pakage_names ]] && { echo "Usage: $(basename $0) package1 package 2 package.."; exit 1; }

# Check if package is already installed
for package in ${pakage_names[@]}; do
    if dpkg -s "$package" 2>/dev/null | grep -q Status.*installed; then
        echo "Attempting to upgrade $package"
        sudo apt-get --only-upgrade -y install $package
    else
        echo "Package $package is not installed, install it (y/n): "
        read selection
        if [[ $selection == "y" ]] || [[ $selection == "Y" ]]; then
            sudo apt-get -y install $package
        else
            echo "Okay!, next time"
        fi
    fi
done

Дайте скрипту бит выполнения.

sudo chmod +x /usr/local/bin/myupgrade

Вы должны передать аргументы скрипту, чтобы обновить пакет.

$ myupgrade
Usage: myupgrade package1 package 2 package..

Чтобы обновить один пакет, передайте один аргумент в конце

$ myupgrade  util-linux
Attempting to upgrade util-linux
[sudo] password for jmutai:         
Reading package lists… Done
Building dependency tree       
Reading state information… Done
Suggested packages:
   util-linux-locales
The following packages will be upgraded:
   util-linux
1 upgraded, 0 newly installed, 0 to remove and 182 not upgraded.
Need to get 902 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 util-linux amd64 2.31.1-0.4ubuntu3.3 [902 kB]
 Fetched 902 kB in 2s (518 kB/s)     
 (Reading database … 261497 files and directories currently installed.)
 Preparing to unpack …/util-linux_2.31.1-0.4ubuntu3.3_amd64.deb …
 Unpacking util-linux (2.31.1-0.4ubuntu3.3) over (2.31.1-0.4ubuntu3.2) …
 Setting up util-linux (2.31.1-0.4ubuntu3.3) …
 Processing triggers for mime-support (3.60ubuntu1) …
 Processing triggers for ureadahead (0.100.0-20) …
 Processing triggers for systemd (237-3ubuntu10.9) …
 Processing triggers for man-db (2.8.3-2ubuntu0.1) …

Для нескольких пакетов укажите имена через пробел.

$ myupgrade nplan openssl perl

Если пакет еще не установлен, скрипт спросит вас, хотите ли вы установить его. Подтвердите нажатием «Y» или «y».

$ myupgrade elinks
 Package elinks is not installed, install it (y/n)
 y
 Reading package lists… Done
 Building dependency tree       
 Reading state information… Done
 The following additional packages will be installed:
   elinks-data libfsplib0 liblua5.1-0 libtre5
 Suggested packages:
   elinks-doc tre-agrep
 The following NEW packages will be installed:
   elinks elinks-data libfsplib0 liblua5.1-0 libtre5
 0 upgraded, 5 newly installed, 0 to remove and 169 not upgraded.
 Need to get 1,062 kB of archives.
.....

Это конец нашего руководства о том, как обновить отдельный пакет с помощью apt-get в Ubuntu / Debian.

Я надеюсь, что это было полезно, и спасибо за посещение.

 

You may also like

Leave a Comment