{"id":370,"date":"2017-03-29T16:59:33","date_gmt":"2017-03-29T14:59:33","guid":{"rendered":"http:\/\/miroslaw.borodziuk.eu\/?p=370"},"modified":"2017-05-18T17:47:54","modified_gmt":"2017-05-18T15:47:54","slug":"zarzadzanie-pakietami-przez-rpm","status":"publish","type":"post","link":"http:\/\/miro.borodziuk.eu\/index.php\/2017\/03\/29\/zarzadzanie-pakietami-przez-rpm\/","title":{"rendered":"Zarz\u0105dzanie pakietami przez RPM"},"content":{"rendered":"<p>Polecenie <em>rpm<\/em> (RPM Package Manager, dawniej Red Hat Package Manager) pozwala na instalacj\u0119, aktualizacj\u0119, od\u015bwie\u017canie, nadpisywanie, przeszukiwanie, usuwanie, wypakowywanie, walidacj\u0119 i weryfikacj\u0119 pakiet\u00f3w binarnych przeznaczonych do systemu RHEL lub CentOS. Polecenie to nie zapewniania niestety kontroli zale\u017cno\u015bci pakiet\u00f3w, musimy o to zadba\u0107 sami.<!--more--><\/p>\n<table style=\"width: 750px;\">\n<tbody>\n<tr>\n<td style=\"width: 131.967px;\"><em><span style=\"color: #808080;\">Opcje instalacyjne<\/span><\/em><\/td>\n<td style=\"width: 598.033px;\"><em><span style=\"color: #808080;\">Opis<\/span><\/em><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 131.967px;\"><span style=\"color: #008000;\">-F<\/span><\/td>\n<td style=\"width: 598.033px;\">Aktualizuje istniej\u0105cy pakiet.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 131.967px;\"><span style=\"color: #008000;\">-i<\/span><\/td>\n<td style=\"width: 598.033px;\">Instaluje pakiet.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 131.967px;\"><span style=\"color: #008000;\">-U<\/span><\/td>\n<td style=\"width: 598.033px;\">Aktualizuje istniej\u0105cy pakiet lub instaluje je\u017celi nie jest zainstalowany w systemie.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 131.967px;\"><span style=\"color: #008000;\">\u00a0-h<\/span><\/td>\n<td style=\"width: 598.033px;\">Pokazuje post\u0119p instalacji.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 131.967px;\"><span style=\"color: #008000;\">\u00a0&#8211;force<\/span><\/td>\n<td style=\"width: 598.033px;\">Instaluje pakiet nawet je\u017celi taka sama wersja pakietu jest ju\u017c zainstalowana w systemie.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 131.967px;\"><span style=\"color: #008000;\">\u00a0 &#8211;replacepkgs<\/span><\/td>\n<td style=\"width: 598.033px;\">\u00a0Nadpisuje zainstalowane pakiety.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table style=\"width: 750px;\">\n<tbody>\n<tr style=\"height: 26px;\">\n<td style=\"width: 132.167px; height: 26px;\"><em><span style=\"color: #808080;\">Opcje zapyta\u0144<\/span><\/em><\/td>\n<td style=\"width: 596.833px; height: 26px;\"><em><span style=\"color: #808080;\">Opis<\/span><\/em><\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 132.167px; height: 26px;\"><span style=\"color: #008000;\">-q<\/span><\/td>\n<td style=\"width: 596.833px; height: 26px;\">Przeprowadza zapytanie i wy\u015bwietla pakiety.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 132.167px; height: 26px;\"><span style=\"color: #008000;\">-qa<\/span><\/td>\n<td style=\"width: 596.833px; height: 26px;\">Wy\u015bwietla wszystkie zainstalowane pakiety.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 132.167px; height: 26px;\"><span style=\"color: #008000;\">-qc<\/span><\/td>\n<td style=\"width: 596.833px; height: 26px;\">Wy\u015bwietla pliki konfiguracyjne danego pakietu.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 132.167px; height: 26px;\"><span style=\"color: #008000;\">-qd<\/span><\/td>\n<td style=\"width: 596.833px; height: 26px;\">Wy\u015bwietla pliki zawieraj\u0105ce dokumentacj\u0119 danego pakietu.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 132.167px; height: 26px;\"><span style=\"color: #008000;\">-qf<\/span><\/td>\n<td style=\"width: 596.833px; height: 26px;\">Wy\u015bwietla informacje o plikach.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 132.167px; height: 26px;\"><span style=\"color: #008000;\">-qi<\/span><\/td>\n<td style=\"width: 596.833px; height: 26px;\">Wy\u015bwietla informacje o pakiecie.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 132.167px; height: 26px;\"><span style=\"color: #008000;\">-ql<\/span><\/td>\n<td style=\"width: 596.833px; height: 26px;\">Listuje pliki wchodz\u0105ce w sk\u0142ad pakietu.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 132.167px; height: 26px;\"><span style=\"color: #008000;\">-q &#8211;whatprovides<\/span><\/td>\n<td style=\"width: 596.833px; height: 26px;\">Listuje pakiety, kt\u00f3re dostarczaj\u0105 okre\u015blony pakiet lub plik.<\/td>\n<\/tr>\n<tr style=\"height: 26.2px;\">\n<td style=\"width: 132.167px; height: 26.2px;\"><span style=\"color: #008000;\">-q &#8211;whatqueries<\/span><\/td>\n<td style=\"width: 596.833px; height: 26.2px;\">Listuje pakiety, kt\u00f3rych wymaga okre\u015blony pakiet lub plik.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 132.167px; height: 26px;\"><span style=\"color: #008000;\">-qR<\/span><\/td>\n<td style=\"width: 596.833px; height: 26px;\">Listuje zale\u017cno\u015bci.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table style=\"width: 750px;\">\n<tbody>\n<tr>\n<td style=\"width: 131.967px;\"><em><span style=\"color: #808080;\">Opcje inne<\/span><\/em><\/td>\n<td style=\"width: 598.033px;\"><em><span style=\"color: #808080;\">Opis<\/span><\/em><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 131.967px;\"><span style=\"color: #008000;\">-e<\/span><\/td>\n<td style=\"width: 598.033px;\">Usuwa pakiet.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 131.967px;\"><span style=\"color: #008000;\">-import<\/span><\/td>\n<td style=\"width: 598.033px;\">Importuje klucz publiczny.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 131.967px;\"><span style=\"color: #008000;\">-K<\/span><\/td>\n<td style=\"width: 598.033px;\">Waliduje sygnatur\u0119 i integralno\u015b\u0107 pakietu.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 131.967px;\"><span style=\"color: #008000;\">\u00a0-h<\/span><\/td>\n<td style=\"width: 598.033px;\">Pokazuje post\u0119p instalacji.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 131.967px;\"><span style=\"color: #008000;\">\u00a0-v lub -vv<br \/>\n<\/span><\/td>\n<td style=\"width: 598.033px;\">Wy\u015bwietla dok\u0142adne informacje.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 131.967px;\"><span style=\"color: #008000;\">-V<\/span><\/td>\n<td style=\"width: 598.033px;\">Weryfikuje integralno\u015b\u0107 plik\u00f3w pakietu.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>W celu przeprowadzenia r\u00f3\u017cnych zada\u0144 zwi\u0105zanych z zarz\u0105dzaniem pakietami rpm podmontujmy w systemie nap\u0119d DVD z p\u0142yt\u0105 instalacyjn\u0105 RHEL.<\/p>\n<p><code># mount \/dev\/cdrom \/mnt<\/code><\/p>\n<p>ISO z RHEL mo\u017cemy natomiast podmontowa\u0107 w spos\u00f3b nast\u0119puj\u0105cy:<\/p>\n<p><code> # mount \u2013o loop \/sciezka-do\/rhel-server-7.0-x86_64-dvd.iso \/mnt<\/code><\/p>\n<p>Opcja <em>-o<\/em> informuje <em>mount<\/em>, \u017ce montuje obraz ISO a nie urz\u0105dzenie blokowe.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Instalowanie pakiet\u00f3w.<\/span><\/p>\n<p>Podczas instalacji pakietu tworzona jest niezb\u0119dna struktura katalog\u00f3w i instalowane s\u0105 wymagane przez pakiet pliki. Np.<br \/>\n<code># rpm \u2013ivh \/mnt\/Packages\/zsh-5.0.2-7.el7.x86_64.rpm<\/code><br \/>\n<code>Preparing\u2026 ################################# [1 00%]<\/code><br \/>\n<code>Updating \/ installing\u2026<\/code><br \/>\n<code>1 :zsh-5.0.2-7.el7 ################################# [1 00%<\/code><\/p>\n<p>Je\u017celi pakiet zsh b\u0119dzie wymaga\u0142 jaki\u015b innych pakiet\u00f3w wygenerowany zostanie stosowny komunikat.<\/p>\n<p>Instalacja pakietu bezpo\u015brednio z serwera FTP:<br \/>\n<code># rpm \u2013ivh ftp:\/\/host1.example.com\/pub\/outgoing\/zsh-5.0.2-7.el7.x86_64.rpm<\/code><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Aktualizacja pakiet\u00f3w.<br \/>\n<\/span><\/p>\n<p>Komenda aktualizuje pakiet je\u017celi jest zainstalowany w systemie a je\u017celi go nie ma to go instaluje. Tworzy ponadto kopi\u0119 zapasow\u0105 wszystkich plik\u00f3w konfiguracyjnych zwi\u0105zanych z aktualizacj\u0105 i nadaje im rozszerzenie <em>.rpmsave<\/em>.<\/p>\n<p><code># rpm \u2013Uvh \/mnt\/Packages\/sushi-3.8.1-3.el7.x86_64.rpm<\/code><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Od\u015bwie\u017canie pakietu.<\/span><\/p>\n<p>Wymaga aby w systemie by\u0142a zainstalowana starsza wersja pakietu<\/p>\n<p><code> # rpm \u2013Fvh \/mnt\/Packages\/sushi-3.8.1-3.el7.x86_64.rpm<\/code><\/p>\n<p>Aby od\u015bwie\u017cy\u0107 wszystkie pakiety zainstalowane w systemie pakietami z podmontowanej wcze\u015bniej p\u0142yty DVD:<\/p>\n<p><code> # rpm \u2013Fvh \/mnt\/Packages\/*.rpm<\/code><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Usuwanie pakietu.<\/span><\/p>\n<p>Odinstalowuje pakiet i wszystkie z nim zwi\u0105zane pliki i katalogi. Pakiet jest usuwany pod warunkiem, \u017ce nie jest potrzebny do dzia\u0142ania przez jaki\u015b inny pakiet.<\/p>\n<p><code># rpm \u2013ev zsh<\/code><br \/>\n<code>Preparing packages\u2026<\/code><br \/>\n<code>zsh-5.0.2-7.el7.x86_64<\/code><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Nadpisywanie pakiet\u00f3w.<\/span><\/p>\n<p>Zamienia zainstalowane w systemie pliki zwi\u0105zane z konkretnym pakiety na pliki z tej samej wersji.<\/p>\n<p><code> # rpm \u2013ivh --replacepkgs \/mnt\/Packages\/zsh-5.0.2-7.el7.x86_64.rpm<\/code><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\"> Wypakowywanie plik\u00f3w z pakiet\u00f3w.<\/span><\/p>\n<p>Pliki wchodz\u0105ce w sk\u0142ad pakietu RPM mog\u0105 by\u0107 wypakowane komend\u0105 rpm2cpio. Taka konieczno\u015b\u0107 mo\u017ce przyda\u017cy\u0107 si\u0119 gdy mamy np. uszkodzony plik wchodz\u0105cy w sk\u0142ad jakiego\u015b niezb\u0119dnego pakietu.<\/p>\n<p>Ustalamy w jakim pakiecie znajduje si\u0119 potrzebny nam plik (np. <em>ntp.conf<\/em>):<\/p>\n<p><code> # rpm \u2013qf \/etc\/ntp.conf<\/code><br \/>\n<code>ntp-4.2.6p5-18.el7.x86_64<\/code><\/p>\n<p>Zak\u0142adaj\u0105c, \u017ce plik znajduje si\u0119 w katalogu <em>\/mnt\/Packages\/<\/em> u\u017cywamy komendy <em>rpm2cpio<\/em> do wypakowania pliku (-i) z pakietu ntp i tworzymy struktur\u0119 katalogu (-d):<\/p>\n<p><code> # cd \/tmp<\/code><br \/>\n<code># rpm2cpio \/mnt\/Packages\/ntp-4.2.6p5-18.el7.x86_64.rpm | cpio \u2013id<\/code><br \/>\n<code>2795 blocks<\/code><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Zapytania o pakiety rpm.<\/span><\/p>\n<p>Zapytanie o wszystkie zainstalowane w systemie pakiety:<br \/>\n<code># rpm \u2013qa<\/code><br \/>\n<code>libXxf86misc-1.0.3-7.1.el7.x86_64<\/code><br \/>\n<code>perl-HTTP-Tiny-0.033-3.el7.noarch<\/code><br \/>\n<code>baobab-3.8.2-4.el7.x86_64<\/code><br \/>\n<code>\u2026\u2026 . .<\/code><\/p>\n<p>Zapytanie o to czy konkretny pakiet jest zainstalowany w systemie:<br \/>\n<code># rpm \u2013q perl<\/code><br \/>\n<code>perl-5.16.3-283.el7.x86_64<\/code><br \/>\n<code>To list all files in a package:<\/code><br \/>\n<code># rpm \u2013ql iproute<\/code><br \/>\n<code>\/etc\/iproute2<\/code><br \/>\n<code>\/etc\/iproute2\/ematch_map<\/code><br \/>\n<code>\/etc\/iproute2\/group<\/code><br \/>\n<code>\u2026\u2026 . .<\/code><\/p>\n<p>Wylistowanie plik\u00f3w z dokumentacj\u0105 dla danego pakietu:<br \/>\n<code># rpm \u2013qd audit<\/code><br \/>\n<code>\/usr\/share\/doc\/audit-2.3.3\/COPYING<\/code><br \/>\n<code>\/usr\/share\/doc\/audit-2.3.3\/ChangeLog<\/code><br \/>\n<code>\/usr\/share\/doc\/audit-2.3.3\/README<\/code><br \/>\n<code>\u2026\u2026 . .<\/code><\/p>\n<p>Wylistowanie plik\u00f3w konfiguracyjnych dla danego pakietu:<br \/>\n<code># rpm \u2013qc coreutils<\/code><br \/>\n<code> \/etc\/DIR_COLORS<\/code><br \/>\n<code> \/etc\/DIR_COLORS.256color<\/code><br \/>\n<code> \/etc\/DIR_COLORS.lightbgcolor<\/code><br \/>\n<code> \/etc\/profile.d\/colorls.csh<\/code><br \/>\n<code> \/etc\/profile.d\/colorls.sh<\/code><\/p>\n<p>Okre\u015blenie z jakim pakietem powi\u0105zany jest dany plik:<br \/>\n<code># rpm \u2013qf \/etc\/passwd<\/code><br \/>\n<code> setup-2.8.71-4.el7.noarch<\/code><\/p>\n<p>Wy\u015bwietlenie informacji o danym pakiecie:<br \/>\n<code># rpm \u2013qi setup<\/code><br \/>\n<code> Name :setup<\/code><br \/>\n<code> Version :2.8.71<\/code><br \/>\n<code> Release :4.el7<\/code><br \/>\n<code> Architecture :noarch<\/code><br \/>\n<code> Install Date :T ue 08 Jul 201 4 1 2:46:50 PM EDT<\/code><br \/>\n<code> Group :System Environment\/Base<\/code><br \/>\n<code> Size :6963 1 0<\/code><br \/>\n<code> License :Public Domain<\/code><br \/>\n<code> Signature :RSA\/SHA256, Wed 02 Apr 201 4 04:1 4:29 PM EDT, Key ID 1 99e2f91 fd43 1 d51<\/code><br \/>\n<code> Source RPM :setup-2.8.71 -4.el7.src.rpm<\/code><br \/>\n<code> Build Date :Wed 1 2 Mar 201 4 1 2:08:24 PM EDT<\/code><br \/>\n<code> Build Host : x86-024.build.eng.bos.redhat.com<\/code><br \/>\n<code> Relocations :(not relocatable)<\/code><br \/>\n<code> Packager :Red Hat, Inc. &lt;http:\/\/bugzilla.redhat.com\/bugzilla&gt;<\/code><br \/>\n<code> Vendor :Red Hat, Inc.<\/code><br \/>\n<code> URL :https:\/\/fedorahosted.org\/setup\/<\/code><br \/>\n<code> Summary :A set of system configuration and setup files<\/code><br \/>\n<code> Description : T he setup package contains a set of important system configuration and setup files, such as passwd, group, and profile.<\/code><\/p>\n<p>Wylistowanie wszystkich zale\u017cno\u015bci danego pakietu:<br \/>\n<code># rpm \u2013qR sox<\/code><br \/>\n<code> \/sbin\/ldconfig<\/code><br \/>\n<code> \/sbin\/ldconfig<\/code><br \/>\n<code> libFLAC.so.8()(64bit)<\/code><br \/>\n<code> \u2026\u2026 . .<\/code><\/p>\n<p>Zapytanie o to do czego przeznaczony jest dany plik instalacyjny:<br \/>\n<code># rpm \u2013qip \/mnt\/Packages\/zsh*<\/code><br \/>\n<code> Name : zsh<\/code><br \/>\n<code> Version : 5.0.2<\/code><br \/>\n<code> Release : 7.el7<\/code><br \/>\n<code> Architecture : x86_64<\/code><br \/>\n<code> Install Date : (not installed)<\/code><br \/>\n<code> Group : System Environment\/Shells<\/code><br \/>\n<code> Size : 583 443 3<\/code><br \/>\n<code> License : MIT<\/code><br \/>\n<code> Signature : RSA\/SHA256, Wed 02 Apr 201 4 06:53 :21 PM EDT, Key ID 1 99e2f91 fd43 1 d51<\/code><br \/>\n<code> Source RPM : zsh-5.0.2-7.el7.src.rpm<\/code><br \/>\n<code> Build Date : T ue 28 Jan 201 4 02:11 :1 7 PM EST<\/code><br \/>\n<code> Build Host : x86-024.build.eng.bos.redhat.com<\/code><br \/>\n<code> Relocations : (not relocatable)<\/code><br \/>\n<code> Packager : Red Hat, Inc. &lt;http:\/\/bugzilla.redhat.com\/bugzilla&gt;<\/code><br \/>\n<code> Vendor : Red Hat, Inc.<\/code><br \/>\n<code> URL : http:\/\/zsh.sourceforge.net\/<\/code><br \/>\n<code> Summary : Powerful interactive shell<\/code><br \/>\n<code> Description<\/code><br \/>\n<code> : T he zsh shell is a command interpreter usable as an interactive login shell and as a shell script command processor. Zsh resembles the ksh shell (the<\/code><br \/>\n<code> Korn shell), but includes many enhancements. Zsh supports command line editing, built-in spelling correction, programmable command completion,<\/code><br \/>\n<code> shell functions (with autoloading), a history mechanism, and more.<\/code><\/p>\n<p>Aby okre\u015bli\u0107 jakich pakiet\u00f3w potrzebuje dany pakiet do poprawnej pracy:<br \/>\n<code># rpm \u2013q --whatrequires iproute<\/code><br \/>\n<code> initscripts-9.49.17-1.el7.x86_64<\/code><br \/>\n<code> dhclient-4.2.5-27.el7.x86_64<\/code><br \/>\n<code> dracut-network-033-161.el7.x86_64<\/code><br \/>\n<code> libreswan-3.8-5.el7.x86_64<\/code><br \/>\n<code> libvirt-daemon-1.1.1-29.el7.x86_64<\/code><br \/>\n<code> NetworkManager-0.9.9.1-13.git20140326.4dba720.el7.x86_64<\/code><br \/>\n<code> fcoe-utils-1.0.29-6.el7.x86_64<\/code><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Walidacja integralno\u015bci i wiarygodno\u015bci pakietu.<\/span><\/p>\n<p>OK na wyj\u015bciu potwierdza, \u017ce pakiet nie jest uszkodzony:<\/p>\n<p><code># rpm \u2013K --nosignature \/mnt\/Packages\/zsh-5.0.2-7.el7.x86_64.rpm<\/code><br \/>\n<code>\/mnt\/Packages\/zsh-5.0.2-7.el7.x86_64.rpm: sha1 md5 OK<\/code><\/p>\n<p>Red Hat podpisuje swoje produkty i aktualizacje kluczem GPG i za\u0142\u0105cza niezb\u0119dne klucze publiczne do tych produkt\u00f3w w celu ich weryfikacji. Klucze te umieszczane s\u0105 na no\u015bnikach instalacyjnych i kopiowane do katalogu \/etc\/pki\/rpm-gpg w czasie instalacji systemu.<\/p>\n<p>Aby sprawdzi\u0107 wiarygodno\u015b\u0107 pakietu w pierwszej kolejno\u015bci musimy zaimportowa\u0107 odpowiedni klucz GPG i wtedy zweryfikowa\u0107 pakiet.<\/p>\n<p><code> # rpm --import \/etc\/pki\/rpm-gpg\/RPM-GPG-KEY-redhat-release<\/code><br \/>\n<code># rpm \u2013K \/mnt\/Packages\/zsh-5.0.2-7.el7.x86_64.rpm<\/code><br \/>\n<code>\/mnt\/Packages\/zsh-5.0.2-7.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK<\/code><\/p>\n<p>Komunikat &#8220;pgp md5 OK&#8221; waliduje sygnatur\u0119 pakietu i za\u015bwiadcza autentyczno\u015b\u0107 i integralno\u015b\u0107 pakietu.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Wy\u015bwietlanie kluczy GPG.<\/span><\/p>\n<p>Klucz zaimportowany wcze\u015bniej mo\u017ce zosta\u0107 wy\u015bwietlony poleceniem RPM:<\/p>\n<p><code> # rpm \u2013q gpg-pubkey<\/code><br \/>\n<code>gpg-pubkey-fd431d51-4ae0493b<\/code><\/p>\n<p>Wi\u0119cej szczeg\u00f3\u0142\u00f3w:<\/p>\n<p><code> # rpm \u2013qi gpg-pubkey-fd431d51-4ae0493b<\/code><br \/>\n<code>Name : gpg-pubkey<\/code><br \/>\n<code>Version : fd43 1 d51<\/code><br \/>\n<code>Release : 4ae0493 b<\/code><br \/>\n<code>Architecture : (none)<\/code><br \/>\n<code>Install Date : T hu 1 8 Sep 201 4 06:58:59 PM EDT<\/code><br \/>\n<code>Group : Public Keys<\/code><br \/>\n<code>Size : 0<\/code><br \/>\n<code>License : pubkey<\/code><br \/>\n<code>Signature : (none)<\/code><br \/>\n<code>Source RPM : (none)<\/code><br \/>\n<code>Build Date : T hu 22 Oct 2009 07:59:55 AM EDT<\/code><br \/>\n<code>Build Host : localhost<\/code><br \/>\n<code>Relocations (not relocatable)<\/code><br \/>\n<code>Packager : Red Hat, Inc. (release key 2) &lt;security@redhat.com&gt;<\/code><br \/>\n<code>Summary : gpg(Red Hat, Inc. (release key 2) &lt;security@redhat.com&gt;)<\/code><br \/>\n<code>Description :<\/code><br \/>\n<code>-----BEGIN PGP PUBLIC KEY BLOCK-----<\/code><br \/>\n<code>Version: rpm-4.11 .1 (NSS-3 )<\/code><br \/>\n<code>mQINBErgSTsBEACh2A4b0O9t+vzC9VrVtL1 AKvUWi9OPCjkvR7Xd8DtJxeeMZ5eF<\/code><br \/>\n<code>0HtzIG58qDRybwUe89FZprB1 ffuUKzdE+HcL3 FbNWSSOXVjZIersdXyH3 NvnLLLF<\/code><br \/>\n<code>0DNRB2ix3 bXG9Rh\/RXpFsNxDp2CEMdUvbYCzE79K1 EnUT Vh1 L0Of023 FtPSZXX0c<\/code><br \/>\n<code>u7Pb5DI5lX5YeoXO6RoodrIGYJsVBQWnrWw4xNTconUfNPk0EGZtEnzvH2zyPoJh<\/code><br \/>\n<code>XGF+Ncu9XwbalnYde1 0OCvSWAZ5zT CpoLMT vQjWpbCdWXJzCm6G+\/hx9upke546H<\/code><br \/>\n<code>5IjtYm4dT IVT nc3 wvDiODgBKRzOl9rEOCIgOuGtDxRxcQkjrC+xvg5Vkqn7vBUyW<\/code><br \/>\n<code>9pHedOU+PoF3 DGOM+dqv+eNKBvh9YF9ugFAQBkcG7viZgvGEMGGUpzNgN7XnS1 gj<\/code><br \/>\n<code>\/DPo9mZESOYnKceve2tIC87p2hqjrxOHuI7fkZYeNIcAoa83 rBltFXaBDYhWAKS1<\/code><br \/>\n<code>PcXS1 \/7JzP0ky7d0L6Xbu\/If5kqWQpKwUInXtySRkuraVfuK3 Bpa+X1 XecWi24JY<\/code><br \/>\n<code>HVtlNX025xx1 ewVzGNCT lWn1 skQN2OOoQT V4C8\/qFpT W6DT WYurd4+fE0OJFJZQF<\/code><br \/>\n<code>\u2026\u2026 . .<\/code><br \/>\n<code>-----END PGP PUBLIC KEY BLOCK-----<\/code><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Weryfikowanie atrybut\u00f3w pakiet\u00f3w.<\/span><\/p>\n<p>Weryfikacja zainstalowanego pakietu polega na por\u00f3wnaniu atrybut\u00f3w plik\u00f3w zawartych w\u00a0 tym pakiecie z oryginalnymi atrybutami zapisanymi i przechowywanymi w bazie danych pakiet\u00f3w z czasu gdy pakiet by\u0142 zainstalowany.<\/p>\n<p><code> # rpm \u2013Vf \/etc\/sysconfig\/atd<\/code><\/p>\n<p>Komenda nic nie zwr\u00f3ci\u0142a za zatem atrybuty plik\u00f3w nie by\u0142y zmieniane. Zmie\u0144my teraz atrybuty plik\u00f3w i zweryfikujmy pakiet ponownie:<\/p>\n<p><code> # ll \/etc\/sysconfig\/atd<\/code><br \/>\n<code>-rw-r--r--. 1 root root 403 Jan 29 2014 \/etc\/sysconfig\/atd<\/code><br \/>\n<code># chown bin:bin \/etc\/sysconfig\/atd ; chmod 744 \/etc\/sysconfig\/atd<\/code><br \/>\n<code># ll \/etc\/sysconfig\/atd<\/code><br \/>\n<code>-rwxr--r--. 1 bin bin 403 Jan 29 2014 atd<\/code><br \/>\n<code># rpm \u2013Vf \/etc\/sysconfig\/atd<\/code><br \/>\n<strong><code>.M\u2026UG.. c \/etc\/sysconfig\/atd<\/code><\/strong><\/p>\n<p>rpm zwr\u00f3ci\u0142 teraz trzy kolumny: pierwsza kolumna zawiera dziewi\u0119\u0107 p\u00f3l, druga kolumna zawiera typ pliku a trzecia kolumna wskazuje na nazw\u0119 pliku. Komenda przeprowadza \u0142\u0105cznie dziewi\u0119\u0107 sprawdze\u0144, zilustrowanych jako kody w pierwszej kolumnie wyniku, i wy\u015bwietla jakie zmiany zosta\u0142y dokonane na plikach od momentu ich zainstalowania w systemie. Ka\u017cdy kod pierwszej kolumny ma znaczenie i przedstawia go poni\u017csza tabela.<\/p>\n<table style=\"width: 751px;\">\n<tbody>\n<tr style=\"height: 26px;\">\n<td style=\"width: 93.4833px; height: 26px;\"><span style=\"color: #808080;\"><em>Kod<\/em><\/span><\/td>\n<td style=\"width: 641.517px; height: 26px;\"><span style=\"color: #808080;\"><em>Opis<\/em><\/span><\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 93.4833px; height: 26px;\"><span style=\"color: #008000;\">S<\/span><\/td>\n<td style=\"width: 641.517px; height: 26px;\">Pojawia si\u0119 je\u017celi rozmiar pliku jest inny.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 93.4833px; height: 26px;\"><span style=\"color: #008000;\">M<\/span><\/td>\n<td style=\"width: 641.517px; height: 26px;\">Pojawia si\u0119 je\u017celi zmieni\u0142y si\u0119 uprawnia do pliku lub jego typ.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 93.4833px; height: 26px;\"><span style=\"color: #008000;\">5<\/span><\/td>\n<td style=\"width: 641.517px; height: 26px;\">Pojawia si\u0119 je\u017celi suma MD5 si\u0119 nie zgadza.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 93.4833px; height: 26px;\"><span style=\"color: #008000;\">D<\/span><\/td>\n<td style=\"width: 641.517px; height: 26px;\">Pojawia si\u0119 je\u017celi plik jest urz\u0105dzeniem i jego numer si\u0119 zmieni\u0142.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 93.4833px; height: 26px;\"><span style=\"color: #008000;\">L<\/span><\/td>\n<td style=\"width: 641.517px; height: 26px;\">Pojawia si\u0119 je\u017celi plik jest odwo\u0142aniem i jego \u015bcie\u017cka si\u0119 zmieni\u0142a.<\/td>\n<\/tr>\n<tr style=\"height: 26.9336px;\">\n<td style=\"width: 93.4833px; height: 26.9336px;\"><span style=\"color: #008000;\">U<\/span><\/td>\n<td style=\"width: 641.517px; height: 26.9336px;\">Pojawia si\u0119 je\u017celi zmieni\u0142 si\u0119 w\u0142a\u015bciciel pliku.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 93.4833px; height: 26px;\"><span style=\"color: #008000;\">G<\/span><\/td>\n<td style=\"width: 641.517px; height: 26px;\">Pojawia si\u0119 je\u017celi zmieni\u0142a si\u0119 grupa pliku.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 93.4833px; height: 26px;\"><span style=\"color: #008000;\">T<\/span><\/td>\n<td style=\"width: 641.517px; height: 26px;\">Pojawia si\u0119 je\u017celi znacznik czasu si\u0119 zmieni\u0142.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 93.4833px; height: 26px;\"><span style=\"color: #008000;\">P<\/span><\/td>\n<td style=\"width: 641.517px; height: 26px;\">Pojawia si\u0119 je\u017celi w\u0142a\u015bciwo\u015bci (eng. capability) si\u0119 zmieni\u0142y.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 93.4833px; height: 26px;\"><span style=\"color: #008000;\">.<\/span><\/td>\n<td style=\"width: 641.517px; height: 26px;\">Pojawia si\u0119 je\u017celi nie znaleziono \u017cadnych modyfikacji.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Tabela z kodami dla drugiej kolumny:<\/p>\n<table style=\"width: 750px;\">\n<tbody>\n<tr style=\"height: 26px;\">\n<td style=\"width: 94.9167px; height: 26px;\"><span style=\"color: #808080;\"><em>Typ pliku<\/em><\/span><\/td>\n<td style=\"width: 638.083px; height: 26px;\"><span style=\"color: #808080;\"><em>Opis<\/em><\/span><\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 94.9167px; height: 26px;\"><span style=\"color: #008000;\">c<\/span><\/td>\n<td style=\"width: 638.083px; height: 26px;\">Plik konfiguracyjny.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 94.9167px; height: 26px;\"><span style=\"color: #008000;\">d<\/span><\/td>\n<td style=\"width: 638.083px; height: 26px;\">Plik z dokumentacj\u0105.<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 94.9167px; height: 26px;\"><span style=\"color: #008000;\">g<\/span><\/td>\n<td style=\"width: 638.083px; height: 26px;\">Plik duch (eng. ghost).<\/td>\n<\/tr>\n<tr style=\"height: 26px;\">\n<td style=\"width: 94.9167px; height: 26px;\"><span style=\"color: #008000;\">l<\/span><\/td>\n<td style=\"width: 638.083px; height: 26px;\">Plik z licencj\u0105.<\/td>\n<\/tr>\n<tr style=\"height: 26.7998px;\">\n<td style=\"width: 94.9167px; height: 26.7998px;\"><span style=\"color: #008000;\">r<\/span><\/td>\n<td style=\"width: 638.083px; height: 26.7998px;\">Plik readme.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Bazuj\u0105c zatem\u00a0 na kodach z powy\u017cszych tabelek mo\u017cemy ustali\u0107, \u017ce plik <em>\/etc\/sysconfig\/atd<\/em> jest plikiem konfiguracyjnym ze zmodyfikowanymi uprawnieniami, zmienionym w\u0142a\u015bcicielem i grup\u0105.<\/p>\n<p>Weryfikacja wszystkich atrybut\u00f3w plik\u00f3w wchodz\u0105cych w sk\u0142ad pakietu:<\/p>\n<p><code># rpm -Vv pakiet<\/code><\/p>\n<p>&nbsp;<\/p>\n<p>\u0106wiczenie 1. Zarz\u0105dzanie pakietami przy u\u017cyciu polecenia rpm.<\/p>\n<p>Upewniamy si\u0119, \u017ce plyta instalacyjna DVD z RHEL jest w nap\u0119dzie i jest zamontowana. Je\u017celi nie to montujemy:<br \/>\n<code># mount \/dev\/cdrom \/mnt<\/code><br \/>\n<code>mount: \/dev\/sr0 is write-protected, mounting read-only<\/code><\/p>\n<p>Wykonujemy polecenie ll na katalogu \/mnt\/Packages aby potwierdzi\u0107, \u017ce pakiet dcraw jest dost\u0119pny:<br \/>\n<code># ll \/mnt\/Packages\/dcraw*<\/code><br \/>\n<code>-r--r--r--. 61 root root 232524 Apr 1 10:37 \/mnt\/Packages\/dcraw-9.19-6.el7.x86_64.rpm<\/code><\/p>\n<p>Weryfikujemy integralno\u015b\u0107 i wiarygodno\u015b\u0107 pakietu:<br \/>\n<code># rpm \u2013K \/mnt\/Packages\/dcraw-9.19-6.el7.x86_64.rpm<\/code><br \/>\n<code>\/mnt\/Packages\/dcraw-9.19-6.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK<\/code><\/p>\n<p>Instalujemy pakiet:<br \/>\n<code># rpm \u2013ivh \/mnt\/Packages\/dcraw-9.19-6.el7.x86_64.rpm<\/code><br \/>\n<code>Preparing\u2026 ################################# [1 00%]<\/code><br \/>\n<code>Updating \/ installing\u2026<\/code><br \/>\n<code>1 :dcraw-9.1 9-6.el7 ################################# [1 00%]<\/code><\/p>\n<p>Wy\u015bwietlamy podstawowe informacje o pakiecie:<br \/>\n<code># rpm \u2013qi dcraw<\/code><br \/>\n<code>Name : dcraw<\/code><br \/>\n<code>Version : 9.1 9<\/code><br \/>\n<code>Release : 6.el7<\/code><br \/>\n<code>Architecture : x86_64<\/code><br \/>\n<code>Install Date : Fri 1 9 Sep 201 4 09:3 3 :3 6 AM EDT<\/code><br \/>\n<code>Group : Applications\/Multimedia<\/code><br \/>\n\u2026\u2026 . .<\/p>\n<p>Wy\u015bwietlamy wszystkie pliki wchhodz\u0105ce w sk\u0142ad pakietu:<br \/>\n<code># rpm \u2013ql dcraw<\/code><br \/>\n<code>\/usr\/bin\/dcraw<\/code><br \/>\n<code>\/usr\/share\/locale\/ca\/LC_MESSAGES\/dcraw.mo<\/code><br \/>\n<code>\u2026\u2026 . .<\/code><\/p>\n<p>Listujemy pliki z dokumentacj\u0105 pakietu:<br \/>\n<code># rpm \u2013qd dcraw<\/code><br \/>\n<code>\/usr\/share\/man\/ca\/man1\/dcraw.1.gz<\/code><br \/>\n<code>\u2026\u2026 . .<\/code><\/p>\n<p>Weryfikujemy atrybuty plik\u00f3w z pakietu:<br \/>\n<code># rpm \u2013V dcraw<\/code><\/p>\n<p>Usuwamy pakiet:<br \/>\n<code># rpm \u2013e dcraw<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Polecenie rpm (RPM Package Manager, dawniej Red Hat Package Manager) pozwala na instalacj\u0119, aktualizacj\u0119, od\u015bwie\u017canie, nadpisywanie, przeszukiwanie, usuwanie, wypakowywanie, walidacj\u0119 i weryfikacj\u0119 pakiet\u00f3w binarnych przeznaczonych do systemu RHEL lub CentOS. Polecenie to nie zapewniania niestety kontroli zale\u017cno\u015bci pakiet\u00f3w, musimy o to zadba\u0107 sami.<\/p>\n","protected":false},"author":1,"featured_media":1082,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32],"tags":[],"_links":{"self":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/370"}],"collection":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/comments?post=370"}],"version-history":[{"count":31,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/370\/revisions"}],"predecessor-version":[{"id":1226,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/370\/revisions\/1226"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media\/1082"}],"wp:attachment":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media?parent=370"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/categories?post=370"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/tags?post=370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}