Tento článek popisuje, jak spravovat balíčky pomocí yum
v distribucích založených na Red Hat® Enterprise Linux®.
Předpoklady
Musíte mít následující předpoklady:
- Základní pochopení Secure Shell (SSH)
- Sudo nebo administrativní přístup k vašemu serveru
- Cloudový server se systémem Red Hat Enterprise Linux 6 nebo novějším nebo CentOS 6 nebo novějším
Správa balíčků v systému Linux
Termín správa balíků v Linuxu popisuje instalaci, odebrání nebo aktualizaci softwaru na vašem linuxovém serveru. Balíčky jsou vytvářeny pomocí zdrojového kódu, který instaluje část softwaru na váš server. Balíčky jsou kompilovány tak, aby umožňovaly snadnou instalaci namísto instalace jednotlivých komponent ze zdroje.
Nástroje balíčků v distribucích RHEL
Distribuce založené na RHEL® zahrnují následující dvě formy správy balíčků:
-
rpm
je považován za nízkoúrovňový nástroj používaný k instalaci, odstraňování a shromažďování informací a také k sestavení balíčků pro instalaci na server založený na RHEL. -
yum
je považován za nástroj na vysoké úrovni, který má stejné funkce jakorpm
ale také řeší závislosti a umožňuje hladší instalaci .rpm balíčky.
Poznámka :Rackspace nepodporuje instalaci balíčků ze zdroje.
Pomocí yum
yum
tool je váš primární nástroj pro instalaci a správu softwaru na vašem serveru.
Shromáždit informace
Chcete-li zobrazit úložiště, ze kterých yum
stáhne balíčky, spusťte následující příkaz:
yum repolist
Tento příkaz uvádí seznam úložišť dostupných na vašem serveru:
# yum repolist
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
repo id repo name status
!drivesrvr drivesrvr 20
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,314
ius/x86_64 IUS for Enterprise Linux 7 - x86_64 609
rackspace Rackspace Monitoring 1
rhel-x86_64-server-7 Red Hat Enterprise Linux Server (v. 7 for 64-bit x86_64) 29,118
rhel-x86_64-server-optional-7 RHEL Server Optional (v. 7 64-bit x86_64) 21,287
repolist: 64,3
Chcete-li vyhledat balíček z vašich úložišť, použijte následující příkaz:
yum search <package name>
Poznámka :Tento příkaz vyhledá všechny instance <package name>
které jsou k dispozici ve vašich úložištích. Tento seznam může být velmi podrobný, takže pro zúžení vyhledávání použijte celý název balíčku, pokud jej znáte.
Chcete-li získat další informace o balíčku, použijte následující příkaz:
yum info <package name>
Tento příkaz poskytuje některé informace o balíčku. Zde je příklad hledání httpd
balíček:
# yum info httpd
Available Packages
Name : httpd
Version : 2.4.43
Release : 1.fc31
Architecture : x86_64
Size : 1.4 M
Source : httpd-2.4.43-1.fc31.src.rpm
Repository : updates
Summary : Apache HTTP Server
URL : https://httpd.apache.org/
License : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible web server.
Chcete-li zobrazit aktuálně nainstalované balíčky, spusťte následující příkaz:
yum list installed
Tento příkaz zobrazí seznam všech balíčků nainstalovaných v systému. Tento seznam může být rozsáhlý. Pokud znáte balíček, který hledáte, můžete použít grep
pro filtrování vyhledávání, jak je uvedeno v následujícím příkladu:
yum list installed | grep httpd
Tento příkaz poskytuje přehlednější seznam:
# yum list installed | grep httpd
httpd.x86_64 2.4.6-93.el7 @rhel-x86_64-server-7
httpd-tools.x86_64 2.4.6-93.el7 @rhel-x86_64-server-
Instalovat balíčky
Chcete-li nainstalovat balíček, použijte následující příkaz:
yum install <package>
Tento příkaz se dotáže na vaše úložiště a stáhne balíček k instalaci. Během procesu instalace yum
se pokusí vyřešit závislosti spojené s balíčkem, který instalujete. Pokud yum
dokáže vyřešit závislosti, zobrazí výstup a požádá vás o potvrzení instalace. Následující příklad ukazuje rozlišení závislostí:
# yum install httpd
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
drivesrvr | 2.9 kB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=========================================================================================================================
Package Arch Version Repository Size
=========================================================================================================================
Installing:
httpd x86_64 2.4.6-93.el7 rhel-x86_64-server-7 1.2 M
Transaction Summary
=========================================================================================================================
Install 1 Package
Total download size: 1.2 M
Installed size: 3.7 M
Is this ok [y/d/N]:
Poznámka :Při instalaci httpd
, k instalaci balíčku nejsou potřeba žádné další závislosti. V jiných situacích mohou být pro instalaci vyžadovány další závislosti, které yum
potřebuje nainstalovat.Pokud yum
nemůže vyřešit závislosti, výstup uvádí chyby. Chcete-li pokračovat v instalaci, musíte tyto závislosti vyřešit.
Aktualizovat balíčky
Chcete-li aktualizovat nainstalovaný balíček, spusťte následující příkaz:
yum update <package>
Tento příkaz vyhledá v úložišti aktualizace zadaného balíčku, pokud jsou k dispozici.
Pokud je k dispozici aktualizace, příkaz zobrazí změnu a požádá o potvrzení. Jinak vás informuje, že není co dělat:
# yum update httpd
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
drivesrvr | 2.9 kB 00:00:00
No packages marked for update
Ke spuštění aktualizace pro všechny balíčky v systému můžete také použít následující příkaz:
yum update
Tento příkaz se dotáže repozitářů na případné aktualizace balíčků nainstalovaných na vašem serveru.
Důležité :Tento proces se pokusí aktualizovat všechny balíčky v systému. Než budete pokračovat, ujistěte se, že jste zkontrolovali své prostředí, protože změny mohou v důsledku aktualizací způsobit neočekávané problémy s aplikacemi.
Odebrat balíčky
Chcete-li odebrat nainstalovaný balíček, použijte následující příkaz:
yum remove <package name>
Tento příkaz zkontroluje nainstalované balíčky, poskytne výstup a požádá vás o potvrzení změny:
# yum remove httpd
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be erased
--> Processing Dependency: httpd-mmn = 20120211x8664 for package: mod_php73-7.3.18-1.el7.ius.x86_64
--> Running transaction check
---> Package mod_php73.x86_64 0:7.3.18-1.el7.ius will be erased
--> Finished Dependency Resolution
drivesrvr | 2.9 kB 00:00:00
Dependencies Resolved
======================================================================================================================
Package Arch Version Repository Size
======================================================================================================================
Removing:
httpd x86_64 2.4.6-93.el7 @rhel-x86_64-server-7 3.7 M
Removing for dependencies:
mod_php73 x86_64 7.3.18-1.el7.ius @ius 4.8 M
Transaction Summary
=======================================================================================================================
Remove 1 Package (+1 Dependent package)
Installed size: 8.6 M
Is this ok [y/N]:
Poznámka :Když odeberete httpd
, yum
také odstraní mod_php73
balíček, který závisí na httpd
. Ujistěte se, že odstranění balíčku nemá negativní dopad na ostatní části vašeho serveru.
Kontrola historie a vrácení změn
V některých případech je třeba zkontrolovat akce provedené pomocí yum
nástroj.
Chcete-li zobrazit historii yum
použití příkazu, spusťte následující příkaz:
yum history
Tento příkaz poskytuje očíslovaný výstup, který ukazuje transakce provedené yum
.
# yum history
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
19 | <rack> | 2020-06-09 14:58 | Install | 2
18 | <rack> | 2020-06-09 14:57 | Erase | 2
17 | <rack> | 2020-06-09 14:56 | Install | 1
16 | <rack> | 2020-06-09 14:55 | Install | 4
15 | <rack> | 2020-06-09 14:55 | Erase | 2
14 | <rack> | 2020-06-09 14:54 | Erase | 1
13 | <rack> | 2020-06-09 14:50 | Install | 1
12 | <rack> | 2020-06-09 14:49 | Erase | 2
11 | root <root> | 2020-06-09 10:14 | I, U | 2
10 | root <root> | 2020-06-09 10:14 | Install | 2 EE
9 | <rack> | 2020-06-09 10:14 | Install | 4
8 | root <root> | 2020-06-09 10:14 | Install | 1 EE
7 | <rack> | 2020-06-09 10:14 | Install | 5
6 | root <root> | 2020-06-09 10:13 | Install | 4
5 | root <root> | 2020-06-09 10:13 | I, U | 18 <
4 | System <unset> | 2020-01-15 13:02 | Install | 1 >
3 | System <unset> | 2020-01-15 13:02 | Install | 1
2 | System <unset> | 2020-01-15 13:02 | Erase | 1
1 | System <unset> | 2020-01-15 12:55 | Install | 578
history list
Tento seznam obsahuje pouze datum, akci a číslo změněného balíčku. Chcete-li získat další informace o konkrétní akci, můžete se zeptat na ID
z levého sloupce. Pro zobrazení informací o akci použijte následující příkaz:
yum history info <ID>
Spuštění tohoto příkazu poskytuje další informace o tom, co se stalo během této transakce:
# yum history info 18
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Transaction ID : 18
Begin time : Tue Jun 9 14:57:12 2020
Begin rpmdb : 609:12b0c5cdd97ae2f0a77a06403b7b16f3d404403c
End time : 14:57:13 2020 (1 seconds)
End rpmdb : 607:784f813e94127f71465085cd9437377514697243
User : <rack>
Return-Code : Success
Command Line : remove httpd
Transaction performed with:
Installed rpm-4.11.3-40.el7.x86_64 @anaconda/7.7
Installed subscription-manager-1.24.13-3.el7_7.x86_64 @base/7.7
Installed yum-3.4.3-167.el7.noarch @rhel-x86_64-server-7
Installed yum-rhn-plugin-2.0.1-10.el7.noarch @anaconda/7.7
Packages Altered:
Erase httpd-2.4.6-93.el7.x86_64 @rhel-x86_64-server-7
Erase mod_php73-7.3.18-1.el7.ius.x86_64 @ius
history info
Pokud potřebujete vrátit zpět změnu, musíte použít následující příkaz:
yum history undo <ID>
Tento příkaz poskytuje informace o tom, co tato akce mění, a žádá o potvrzení.
# yum history undo 13
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Undoing transaction 13, from Tue Jun 9 14:50:18 2020
Install httpd-2.4.6-93.el7.x86_64 @rhel-x86_64-server-7
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be erased
--> Processing Dependency: httpd-mmn = 20120211x8664 for package: mod_php73-7.3.18-1.el7.ius.x86_64
--> Running transaction check
---> Package mod_php73.x86_64 0:7.3.18-1.el7.ius will be erased
--> Finished Dependency Resolution
drivesrvr | 2.9 kB 00:00:00
Dependencies Resolved
======================================================================================================================
Package Arch Version Repository Size
======================================================================================================================
Removing:
httpd x86_64 2.4.6-93.el7 @rhel-x86_64-server-7 3.7 M
Removing for dependencies:
mod_php73 x86_64 7.3.18-1.el7.ius @ius 4.8 M
Transaction Summary
======================================================================================================================
Remove 1 Package (+1 Dependent package)
Installed size: 8.6 M
Is this ok [y/N]:
Pokud chcete vrátit zpět všechny změny konkrétní transakce, použijte následující příkaz:
yum history rollback <ID>
Tento příkaz vám ukáže, co tato akce změní, a požádá o potvrzení. V závislosti na tom, do jaké míry chcete vrátit zpět, může být tento seznam rozsáhlý. Výstup je podobný následujícímu příkladu:
# yum history rollback 17
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Rollback to transaction 17, from Tue Jun 9 14:56:03 2020
Undoing the following transactions: 18, 19
Reinstall httpd-2.4.6-93.el7.x86_64 @rhel-x86_64-server-7
Reinstall mod_php73-7.3.18-1.el7.ius.x86_64 @ius
drivesrvr | 2.9 kB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be reinstalled
---> Package mod_php73.x86_64 0:7.3.18-1.el7.ius will be reinstalled
--> Finished Dependency Resolution
Dependencies Resolved
=====================================================================================================================
Package Arch Version Repository Size
=====================================================================================================================
Reinstalling:
httpd x86_64 2.4.6-93.el7 rhel-x86_64-server-7 1.2 M
mod_php73 x86_64 7.3.18-1.el7.ius ius 1.6 M
Transaction Summary
=====================================================================================================================
Reinstall 2 Packages
Total download size: 2.8 M
Installed size: 8.6 M
Is this ok [y/d/N]:
Další informace
V rámci yum
je k dispozici více možností . Různé příznaky a možnosti si můžete prohlédnout v Linuxman
stránka pro yum
na tomto odkazu:yum man page
Protože yum
provede změny v systému, měli byste se vždy před instalací nebo aktualizací balíčků ujistit, že jste své prostředí otestovali. Pokud je to možné, ujistěte se, že máte použitelný obrázek, ke kterému se můžete vrátit v případě jakýchkoli problémů po aktualizaci.