Инструменты пользователя

Инструменты сайта


system:rpm

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

system:rpm [2012/09/04 14:06]
127.0.0.1 внешнее изменение
system:rpm [2016/02/10 16:31] (текущий)
root
Строка 24: Строка 24:
  
 Установка пакета с диска Установка пакета с диска
-<code>+<cli>
 # mount /​media/​cdrom # mount /​media/​cdrom
 # cd /​media/​cdrom/​CentOS/​RPMS # cd /​media/​cdrom/​CentOS/​RPMS
Строка 32: Строка 32:
 Подготовка... ​              ###########################################​ [100%] Подготовка... ​              ###########################################​ [100%]
    ​1:​squid ​                 ###########################################​ [100%]    ​1:​squid ​                 ###########################################​ [100%]
-</code>+</cli>
  
 <note important>​Обратите внимание,​ что при установке необходимо указывать полный путь и имя rpm пакета,​ в отличие от удаления.</​note>​ <note important>​Обратите внимание,​ что при установке необходимо указывать полный путь и имя rpm пакета,​ в отличие от удаления.</​note>​
Строка 38: Строка 38:
 Теперь мы можем проверить установлен ли у нас пакет Теперь мы можем проверить установлен ли у нас пакет
  
-<code>+<cli>
 # rpm -q squid # rpm -q squid
 squid-2.5.STABLE6-3.4E.3 squid-2.5.STABLE6-3.4E.3
-</code>+</cli>
  
 Удаление пакета. Процедура удаления выполняется также легко, как и процедура установки. Разница состоит лишь в том, что нам не надо указывать путь и полное имя пакета. Достаточно указать лишь его имя, т.е. squid, хотя если вы укажите squid-2.5.STABLE6 или squid-2.5.STABLE6-3.4E.3,​ то ошибки не будет и пакет также удалится. Удаление пакета. Процедура удаления выполняется также легко, как и процедура установки. Разница состоит лишь в том, что нам не надо указывать путь и полное имя пакета. Достаточно указать лишь его имя, т.е. squid, хотя если вы укажите squid-2.5.STABLE6 или squid-2.5.STABLE6-3.4E.3,​ то ошибки не будет и пакет также удалится.
-<code>+<cli>
 # rpm -e squid # rpm -e squid
-</code>+</cli>
  
 Вообще то при удалении,​ необходимо указывать имя пакета,​ которое хранится в базе данных rpm. Если вы не знаете точного имени, то можно воспользоваться следующей командой и выяснить имя соответствующего пакета. Вообще то при удалении,​ необходимо указывать имя пакета,​ которое хранится в базе данных rpm. Если вы не знаете точного имени, то можно воспользоваться следующей командой и выяснить имя соответствующего пакета.
  
-<code>+<cli>
 # rpm -qa | grep -i mysql # rpm -qa | grep -i mysql
 MySQL-server-4.1.9-0 MySQL-server-4.1.9-0
Строка 56: Строка 56:
 MySQL-shared-compat-4.1.9-0 MySQL-shared-compat-4.1.9-0
 MySQL-client-4.1.9-0 MySQL-client-4.1.9-0
-</code>+</cli>
  
 Данная команда выведет список всех пакетов,​ в названии которых встречается слово mysql, без учета регистра. Если вы захотите удалить,​ например mysql-devel,​ то необходимо будет полностью указывать имя пакета,​ т.е. MySQL-devel,​ а не MySQL. Данная команда выведет список всех пакетов,​ в названии которых встречается слово mysql, без учета регистра. Если вы захотите удалить,​ например mysql-devel,​ то необходимо будет полностью указывать имя пакета,​ т.е. MySQL-devel,​ а не MySQL.
Строка 62: Строка 62:
 Обратите внимание,​ что регистр здесь имеет значение. Иначе при попытке удалить пакет, вы получите следующее сообщение Обратите внимание,​ что регистр здесь имеет значение. Иначе при попытке удалить пакет, вы получите следующее сообщение
  
-<code>+<cli>
 # rpm -e mysql-devel # rpm -e mysql-devel
 ошибка:​ пакет mysql-devel не установлен ошибка:​ пакет mysql-devel не установлен
-</code>+</cli>
  
 А с учетом регистра пакет удалится без проблем А с учетом регистра пакет удалится без проблем
  
-<code>+<cli>
 # rpm -e MySQL-devel # rpm -e MySQL-devel
-</code>+</cli>
  
 Обновление пакета. Рассмотрим случай,​ когда у вас в системе уже установлена предыдущая версия пакета,​ и вы хотите обновить его. Обновление пакета. Рассмотрим случай,​ когда у вас в системе уже установлена предыдущая версия пакета,​ и вы хотите обновить его.
  
-<code>+<cli>
 # rpm -q squid # rpm -q squid
 squid-2.5.STABLE6-3.4E.3 squid-2.5.STABLE6-3.4E.3
-</code>+</cli>
  
 Можно конечно удалить старый пакет и установить новый. Но здесь тоже может быть не все так гладко,​ от данного пакета могут зависеть другие,​ установленные пакеты и тогда вы не сможете его удалить. Точнее сможете,​ но только с ключом --nodeps, который следует использовать ОЧЕНЬ ОСТОРОЖНО и только,​ если вы точно знаете,​ что делаете. Другой способ при установке воспользоваться ключом -U (upgrade). Можно конечно удалить старый пакет и установить новый. Но здесь тоже может быть не все так гладко,​ от данного пакета могут зависеть другие,​ установленные пакеты и тогда вы не сможете его удалить. Точнее сможете,​ но только с ключом --nodeps, который следует использовать ОЧЕНЬ ОСТОРОЖНО и только,​ если вы точно знаете,​ что делаете. Другой способ при установке воспользоваться ключом -U (upgrade).
Строка 86: Строка 86:
 На время обновления пакета,​ наверное,​ лучше остановить squid во избежание конфликтов На время обновления пакета,​ наверное,​ лучше остановить squid во избежание конфликтов
  
-<code>+<cli>
 # service squid stop # service squid stop
 Останавливается squid: .                                   ​[ ​ ОК  ] Останавливается squid: .                                   ​[ ​ ОК  ]
-</code>+</cli>
  
 Производим непосредственное обновление пакета. Производим непосредственное обновление пакета.
-<code>+<cli>
 # rpm -Uvh squid-2.5.STABLE11-2.athlon.rpm # rpm -Uvh squid-2.5.STABLE11-2.athlon.rpm
 Подготовка... ​              ###########################################​ [100%] Подготовка... ​              ###########################################​ [100%]
Строка 98: Строка 98:
    ​предупреждение:​ /​etc/​squid/​squid.conf создан как /​etc/​squid/​squid.conf.rpmnew    ​предупреждение:​ /​etc/​squid/​squid.conf создан как /​etc/​squid/​squid.conf.rpmnew
                             ###########################################​ [100%]                             ###########################################​ [100%]
-</code>+</cli>
  
 Из сообщения мы видим, чтобы не перезаписать наш текущий конфигурационный файл - <color #​006500>​**squid.conf**</​color>,​ rpm сохранил новый файл под именем <color #​006500>​**squid.conf.rpmnew**</​color>​. Все же перед обновлением рекомендую копировать текущие конфигурационные файлы в отдельную папку во избежание всякого рода неприятностей. Из сообщения мы видим, чтобы не перезаписать наш текущий конфигурационный файл - <color #​006500>​**squid.conf**</​color>,​ rpm сохранил новый файл под именем <color #​006500>​**squid.conf.rpmnew**</​color>​. Все же перед обновлением рекомендую копировать текущие конфигурационные файлы в отдельную папку во избежание всякого рода неприятностей.
Строка 104: Строка 104:
 Проверяем версию squid Проверяем версию squid
  
-<code>+<cli>
 # rpm -q squid # rpm -q squid
 squid-2.5.STABLE11-2 squid-2.5.STABLE11-2
-</code>+</cli>
  
 Как видим, squid у нас успешно обновился. Запускаем squid Как видим, squid у нас успешно обновился. Запускаем squid
  
-<code>+<cli>
 # service squid start # service squid start
 Запускается squid: .                                       ​[ ​ ОК  ] Запускается squid: .                                       ​[ ​ ОК  ]
-</code>+</cli>
  
 Узнать список всех установленных пакетов в системе можно с помощью следующей команды Узнать список всех установленных пакетов в системе можно с помощью следующей команды
  
-<code>+<cli>
 # rpm -qa # rpm -qa
 redhat-logos-1.1.25-1.centos4.3 redhat-logos-1.1.25-1.centos4.3
Строка 133: Строка 133:
 openssl-0.9.7e-3 openssl-0.9.7e-3
 curl-devel-7.13.1-1 curl-devel-7.13.1-1
-</code>+</cli>
  
 Также еще одной полезной возможностью является проверка целостности пакета. Вы в любой момент времени можете проверить,​ все ли файлы существуют в системе. Также еще одной полезной возможностью является проверка целостности пакета. Вы в любой момент времени можете проверить,​ все ли файлы существуют в системе.
  
-<code>+<cli>
 # rpm -V squid # rpm -V squid
-</code>+</cli>
  
 Если не будет никаких сообщений,​ то значит,​ целостность пакета не нарушена. Для проверки работоспособности данной функции я специально удалю два файла принадлежащих пакету squid и выполню проверку пакета еще раз. Если не будет никаких сообщений,​ то значит,​ целостность пакета не нарушена. Для проверки работоспособности данной функции я специально удалю два файла принадлежащих пакету squid и выполню проверку пакета еще раз.
  
-<code>+<cli>
 # rm -f /​etc/​squid/​squid.conf /​etc/​squid/​mime.conf # rm -f /​etc/​squid/​squid.conf /​etc/​squid/​mime.conf
 # rpm -V squid # rpm -V squid
 missing ​  c /​etc/​squid/​mime.conf missing ​  c /​etc/​squid/​mime.conf
 missing ​  c /​etc/​squid/​squid.conf missing ​  c /​etc/​squid/​squid.conf
-</code>+</cli>
  
 Как видно из сообщения он указывает,​ что отсутствуют два файла, которые я удалил. Если вы хотите проверить целостность всех пакетов,​ установленных в системе,​ то необходимо указать ключ -Va. Как видно из сообщения он указывает,​ что отсутствуют два файла, которые я удалил. Если вы хотите проверить целостность всех пакетов,​ установленных в системе,​ то необходимо указать ключ -Va.
Строка 154: Строка 154:
 Еще одной полезной функцией,​ предоставляемой rpm, является отображение информации о пакете. Допустим,​ вы хотите узнать,​ для чего предназначен этот пакет не устанавливая его. Получить информацию о пакете можно с помощью следующей команды Еще одной полезной функцией,​ предоставляемой rpm, является отображение информации о пакете. Допустим,​ вы хотите узнать,​ для чего предназначен этот пакет не устанавливая его. Получить информацию о пакете можно с помощью следующей команды
  
-<code>+<cli>
 # rpm -qpi MySQL-devel-4.1.9-0.i386.rpm # rpm -qpi MySQL-devel-4.1.9-0.i386.rpm
 Name        : MySQL-devel ​                 Relocations:​ (not relocatable) Name        : MySQL-devel ​                 Relocations:​ (not relocatable)
Строка 171: Строка 171:
  
 For a description of MySQL see the base MySQL RPM or http://​www.mysql.com For a description of MySQL see the base MySQL RPM or http://​www.mysql.com
-</code>+</cli>
  
 Также с помощью rpm вы можете получить список файлов принадлежащих данному пакету,​ а также пути, куда они были установлены. Для получения данной информации необходимо выполнить следующую команду Также с помощью rpm вы можете получить список файлов принадлежащих данному пакету,​ а также пути, куда они были установлены. Для получения данной информации необходимо выполнить следующую команду
  
-<code>+<cli>
 # rpm -ql rpm-build # rpm -ql rpm-build
 /​usr/​bin/​rpmbuild /​usr/​bin/​rpmbuild
Строка 192: Строка 192:
 /​usr/​src/​redhat/​SPECS /​usr/​src/​redhat/​SPECS
 /​usr/​src/​redhat/​SRPMS /​usr/​src/​redhat/​SRPMS
-</code>+</cli>
  
 Если вы хотите просмотреть список файлов,​ предоставляемых данным пакетом,​ но при этом не хотите устанавливать сам пакет, то выполните следующую команду. Если вы хотите просмотреть список файлов,​ предоставляемых данным пакетом,​ но при этом не хотите устанавливать сам пакет, то выполните следующую команду.
  
-<code>+<cli>
 # rpm -qpl /​media/​cdrom/​CentOS/​RPMS/​linuxdoc-tools-0.9.20-14.i386.rpm # rpm -qpl /​media/​cdrom/​CentOS/​RPMS/​linuxdoc-tools-0.9.20-14.i386.rpm
 /​usr/​bin/​linuxdoc /​usr/​bin/​linuxdoc
Строка 213: Строка 213:
 /​usr/​share/​texmf/​tex/​latex/​misc/​null.sty /​usr/​share/​texmf/​tex/​latex/​misc/​null.sty
 /​usr/​share/​texmf/​tex/​latex/​misc/​qwertz.sty /​usr/​share/​texmf/​tex/​latex/​misc/​qwertz.sty
-</code>+</cli>
  
 Иногда,​ бывает необходимо узнать,​ к какому пакету принадлежит определенный файл и здесь вам опять поможет rpm. Для получения этой информации необходимо выполнить следующую команду. Иногда,​ бывает необходимо узнать,​ к какому пакету принадлежит определенный файл и здесь вам опять поможет rpm. Для получения этой информации необходимо выполнить следующую команду.
  
-<code>+<cli>
 # rpm -qf /​usr/​sbin/​dmidecode # rpm -qf /​usr/​sbin/​dmidecode
 kernel-utils-2.4-13.1.48 kernel-utils-2.4-13.1.48
-</code>+</cli>
  
 Из вывода видно, что файл dmidecode принадлежит пакету kernel-utils-2.4-13.1.48. Хоть я и перешел на freebsd, но все-таки система портов,​ к сожалению пока не предоставляет таких гибких средств управления пакетами и запросами,​ как rpm. Из вывода видно, что файл dmidecode принадлежит пакету kernel-utils-2.4-13.1.48. Хоть я и перешел на freebsd, но все-таки система портов,​ к сожалению пока не предоставляет таких гибких средств управления пакетами и запросами,​ как rpm.
Строка 238: Строка 238:
 Для того, чтобы проверить GPG подпись необходимо вызвать rpm с ключом --check-sig. Для того, чтобы проверить GPG подпись необходимо вызвать rpm с ключом --check-sig.
  
-<code>+<cli>
 # mount /​media/​cdrom # mount /​media/​cdrom
 # cd /​media/​cdrom/​CentOS/​RPMS/​ # cd /​media/​cdrom/​CentOS/​RPMS/​
Строка 244: Строка 244:
 squid-2.5.STABLE6-3.4E.3.i386.rpm:​ (SHA1) DSA sha1 md5 (GPG) НЕ ОК squid-2.5.STABLE6-3.4E.3.i386.rpm:​ (SHA1) DSA sha1 md5 (GPG) НЕ ОК
 (ОТСУТСТВУЮТ КЛЮЧИ: GPG#​443e1821) (ОТСУТСТВУЮТ КЛЮЧИ: GPG#​443e1821)
-</code>+</cli>
  
 Как видно из сообщения,​ у нас отсутствует открытый ключ GPG, и соответственно мы не можем проверить подпись. Для исправления этой ситуации необходимо импортировать ключ GPG в нашу базу данных с помощью следующей команды Как видно из сообщения,​ у нас отсутствует открытый ключ GPG, и соответственно мы не можем проверить подпись. Для исправления этой ситуации необходимо импортировать ключ GPG в нашу базу данных с помощью следующей команды
  
-<code>+<cli>
 # rpm --import /​media/​cdrom/​RPM-GPG-KEY # rpm --import /​media/​cdrom/​RPM-GPG-KEY
-</code>+</cli>
  
 На всех дисках с дистрибутивами должен идти GPG ключ, с помощью которого мы можем проверить все пакеты входящие в этот дистрибутив. После импорта ключа повторим проверку rpm пакета. На всех дисках с дистрибутивами должен идти GPG ключ, с помощью которого мы можем проверить все пакеты входящие в этот дистрибутив. После импорта ключа повторим проверку rpm пакета.
  
-<code>+<cli>
 # rpm --checksig squid-2.5.STABLE6-3.4E.3.i386.rpm # rpm --checksig squid-2.5.STABLE6-3.4E.3.i386.rpm
 squid-2.5.STABLE6-3.4E.3.i386.rpm:​ (sha1) dsa sha1 md5 gpg ОК squid-2.5.STABLE6-3.4E.3.i386.rpm:​ (sha1) dsa sha1 md5 gpg ОК
-</code>+</cli>
  
 Как видно, из сообщения,​ у нас действительно оригинальный (не измененный) пакет и его можно безопасно устанавливать. Но что делать,​ если вы скачиваете пакет с сайта производителя ПО? Очень часто производители также выкладывают открытые GPG ключи на сайтах. В данном случае необходимо выполнить аналогичную процедуру,​ т.е. импортировать ключ в базу данных,​ а затем проверить соответствующий пакет. Как видно, из сообщения,​ у нас действительно оригинальный (не измененный) пакет и его можно безопасно устанавливать. Но что делать,​ если вы скачиваете пакет с сайта производителя ПО? Очень часто производители также выкладывают открытые GPG ключи на сайтах. В данном случае необходимо выполнить аналогичную процедуру,​ т.е. импортировать ключ в базу данных,​ а затем проверить соответствующий пакет.
Строка 263: Строка 263:
 Если все-таки нет GPG ключа, то проверить сохранность пакета можно по т.н. контрольной сумме. Перед установкой пакета,​ следует сравнить текущую сумму с указанной на сайте, откуда вы скачивали данный rpm пакет. Узнать контрольную сумму можно с помощью следующей команды Если все-таки нет GPG ключа, то проверить сохранность пакета можно по т.н. контрольной сумме. Перед установкой пакета,​ следует сравнить текущую сумму с указанной на сайте, откуда вы скачивали данный rpm пакет. Узнать контрольную сумму можно с помощью следующей команды
  
-<code>+<cli>
 # md5sum postfix-2.2.8-1.2.src.rpm # md5sum postfix-2.2.8-1.2.src.rpm
 985be6c349f062c5245a5a3272c2ac2c ​ postfix-2.2.8-1.2.src.rpm 985be6c349f062c5245a5a3272c2ac2c ​ postfix-2.2.8-1.2.src.rpm
-</code>+</cli>
  
 Если md5 сумма совпадает,​ значит у вас действительно оригинальный пакет и теперь можно приступить к его непосредственной установке. Если сумма не совпадает,​ то возможно при закачке файл был поврежден или это совсем не тот файл, который вам нужен ;). В данном случае лучше не устанавливать файл. Если у вас вообще нет никакой возможности проверить подлинность того или иного пакета,​ то я рекомендовал бы не устанавливать данный пакет вообще. Иначе при установке такого пакета вы можете установить себе в систему т.н. rootkit о последствиях я думаю говорить не надо :). Если md5 сумма совпадает,​ значит у вас действительно оригинальный пакет и теперь можно приступить к его непосредственной установке. Если сумма не совпадает,​ то возможно при закачке файл был поврежден или это совсем не тот файл, который вам нужен ;). В данном случае лучше не устанавливать файл. Если у вас вообще нет никакой возможности проверить подлинность того или иного пакета,​ то я рекомендовал бы не устанавливать данный пакет вообще. Иначе при установке такого пакета вы можете установить себе в систему т.н. rootkit о последствиях я думаю говорить не надо :).
Строка 288: Строка 288:
   * [[http://​dag.wieers.com|dag wieers]] ​   * [[http://​dag.wieers.com|dag wieers]] ​
   * [[http://​www.rpmseek.com|rpmseek]]   * [[http://​www.rpmseek.com|rpmseek]]
- 
- 
system/rpm.txt · Последние изменения: 2016/02/10 16:31 — root