Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 41

Автор АлСксСй Π‘Ρ‚Π°Ρ…Π½ΠΎΠ²

ΠžΠΏΡ†ΠΈΠΈ пСрСсборки Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

ΠžΠ±Ρ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ пСрСстроСния Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… RPM выглядит Ρ‚Π°ΠΊ:

rpm -rebuilddb

Для построСния Π½ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…:

rpm -initdb

Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π΅ ΠΎΠΏΡ†ΠΈΠΈ: -dbpath ΠΈ -root.

ΠžΠΏΡ†ΠΈΠΈ FTP/HTTP

RPM содСрТит простыС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ FTP ΠΈ HTTP для упрощСния установки ΠΈ изучСния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², доступных Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. Π€Π°ΠΉΠ»Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² для установки, обновлСния ΠΈ запроса ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΠΊΠ°ΠΊ FTP– ΠΈΠ»ΠΈ HTTP-адрСс:

ftp://<user>:<password>@hostname:<port>/path/to/packagee.rpm

Если Ρ‡Π°ΡΡ‚ΡŒ <password> ΠΎΠΏΡƒΡ‰Π΅Π½Π°, ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½ (ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ€Π°Π·Ρƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Ρ€Ρ‹ user/hostname). Если Π½ΠΈ <user>, Π½ΠΈ <password> Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹, Π±ΡƒΠ΄Π΅Ρ‚ использован anonymous ftp. Π’ΠΎ всСх случаях осущСствляСтся пассивная (PASV) пСрСсылка ΠΏΠΎ FTP.

RPM позволяСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ с адрСсом FTP ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ:

β€’ -ftpproxy <hostname> β€“ систСма <hostname> Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ proxy-сСрвСр для всСх пСрСсылок, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ FTP-соСдинСния Ρ‡Π΅Ρ€Π΅Π· firewall, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ прокси для Π²Ρ‹Ρ…ΠΎΠ΄Π° Π²ΠΎ внСшний ΠΌΠΈΡ€. Π­Ρ‚Π° опция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π° Ρ‚Π°ΠΊΠΆΠ΅ настройкой макроса _ftpproxy;

β€’ -ftpport <port> β€“ Π·Π°Π΄Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ TCP-ΠΏΠΎΡ€Ρ‚Π°, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ для FTP-соСдинСний вмСсто ΠΏΠΎΡ€Ρ‚Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π­Ρ‚Π° опция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Π½Π° настройкой макроса _ftpport.

RPM позволяСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ с адрСсом HTTP ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ:

β€’ -httpproxy <hostname> β€“ систСма <hostname> Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ proxy-сСрвСр для всСх пСрСсылок, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ HTTP-соСдинСния Ρ‡Π΅Ρ€Π΅Π· firewall, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ прокси для Π²Ρ‹Ρ…ΠΎΠ΄Π° Π²ΠΎ внСшний ΠΌΠΈΡ€. Π­Ρ‚Π° опция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π° Ρ‚Π°ΠΊΠΆΠ΅ настройкой макроса _httpproxy;

β€’ β€“ httpport <port> β€“ Π·Π°Π΄Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ TCP-ΠΏΠΎΡ€Ρ‚Π°, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ для HTTP-соСдинСний вмСсто ΠΏΠΎΡ€Ρ‚Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π­Ρ‚Π° опция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Π½Π° настройкой макроса _httpport.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ RPM:

β€’ /usr/lib/rpm/rpmrc;

β€’ /etc/rpmrc;

β€’ ~/.rpmrc;

β€’ /var/state/rpm/packages;

β€’ /var/state/rpm/pathidx;

β€’ /var/state/ipm/nameidx;

β€’ /tmp/rpm*.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования консольного ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² RPM

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ познакомились с опциями ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° RPM. Π‘ Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ установки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Windows Π½Π΅ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ вряд Π»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ Π΄Π°ΠΆΠ΅ Π΄Π΅ΡΡΡ‚ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ ΠΎΠΏΡ†ΠΈΠΉ, поэтому ΠΈ Π½Π΅ слСдуСт Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ ΠΈΡ… всС. Рассмотрим, Ρ‡Ρ‚ΠΎ практичСски ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ.

Установка ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

rpm -i <ΠΏΠΎΠ»Π½ΠΎΠ΅_имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π°>

Или

rpm -i <ΠΏΠΎΠ»Π½ΠΎΠ΅_имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π°> <ΠΏΠΎΠ»Π½ΠΎΠ΅_имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π°> <ΠΏΠΎΠ»Π½ΠΎΠ΅_имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π°> …

НапримСр: rpm -i срр-2. 96–85. i386.rpm Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сразу нСсколько ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Помимо удобства (сразу указываСтся список ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΈ ΠΎΠ½ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ сами) ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π½Π΅ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½Π½Ρ‹Π΅ зависимости. ΠŸΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, зависящиС Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. Π‘Π΅Π· Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ устанавливаСтся – Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ установки ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ. ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ – ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

rpm -i <ΠΏΠΎΠ»Π½ΠΎΠ΅_имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π°_1> <ΠΏΠΎΠ»Π½ΠΎΠ΅_имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π°_2>

Команда простая, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ Ссли Π² систСмС ΡƒΠΆΠ΅ установлСн ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΏΡƒΡΡ‚ΡŒ ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½Π΅ΠΉ вСрсии, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π° сам ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π΅ установится. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

rpm -U <ΠΏΠΎΠ»Π½ΠΎΠ΅_имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π°>

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ссли ΠΎΠ½ ΡƒΠΆΠ΅ установлСн, ΠΈΠ»ΠΈ установку, Ссли Π½Π΅ установлСн. Однако Π½Π΅ всСгда ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

rpm -F <ΠΏΠΎΠ»Π½ΠΎΠ΅_имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π°>

Команда ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚, Π΅ΡΡ‚ΡŒ Π»ΠΈ Π² систСмС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΈ Ссли Π΅ΡΡ‚ΡŒ – ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Ρ‚ Π΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ установку ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ прямо с сСрвСра FTP. НапримСр, Π² локальной сСти Π΅ΡΡ‚ΡŒ FTP-сСрвСр с ΠΈΠΌΠ΅Π½Π΅ΠΌ bluewater. Π’Π°Ρˆ администратор рСгулярно скачиваСт с FTP-сСрвСра Red Hat обновлСния RPM ΠΈ Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡ… Π½Π° FTP-сСрвСр локальной сСти. Π’ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π°, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ свои ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ (для опрСдСлСнности возьмСм компилятор Π‘++):

rpm -F ftp://bluewater/pub/linux/updates/redhat-7.l/cpp-2.96–85.i386.rpm

Однако Ρƒ консольного ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° RPM Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° нСприятная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ – Π² случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡΡ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠ½ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ сообщаСт Π½Π° консоль. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, это Π½Π΅ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ – h, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ выполнСния ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. НапримСр:

rpm -ih срр-2.96–85.i386.rpm

Или

rpm -ivh cpp-2.96–85.i386.rpm

Если ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, RPM выдаст ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ дСйствиС. ΠŸΡ€ΠΈ установкС ΠΏΠ°ΠΊΠ΅Ρ‚Π° – это, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΡƒΠΆΠ΅ упомянутыС Π½Π΅ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½Π½Ρ‹Π΅ зависимости Π»ΠΈΠ±ΠΎ отсутствиС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠ»ΠΈ установлСнных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (ΠΈΠ»ΠΈ ΠΎΠ½ΠΈ Π² систСмС Π΅ΡΡ‚ΡŒ, Π½ΠΎ Π½Π΅ Ρ‚ΠΎΠΉ вСрсии). Π­Ρ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ просто – установитС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΈΡ… Π΄ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ вСрсии. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΈ здСсь свои трудности. Рассмотрим Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π£ Π°Π²Ρ‚ΠΎΡ€Π° Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ стоит Red Hat 7.1, Π° Π² Π½Π΅ΠΌ удобная систСма GNOME, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΎΠΊΠΎΠ½ Sawfish. ВсС Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° – ΠΏΡ€ΠΈ сборкС ΠΏΠ°ΠΊΠ΅Ρ‚Π° Sawfish сборщики (Π°ΠΌΠ΅Ρ€ΠΈΠΊΠ°Π½Ρ†Ρ‹, ΠΈΠΌ ΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ) Π½Π°ΠΏΡƒΡ‚Π°Π»ΠΈ с кирилличСскими ΡˆΡ€ΠΈΡ„Ρ‚Π°ΠΌΠΈ – систСмноС мСню вмСсто ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π·Π½Π°ΠΊΠΈ вопроса. Π‘Ρ‹Π» Π½Π°ΠΉΠ΄Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ‚ посвСТСС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ эта ΠΎΠΏΠ»ΠΎΡˆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ±Ρ€Π°Π½Π°, Π΄Π° Π΅Ρ‰Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ. ΠŸΠ°ΠΊΠ΅Ρ‚ содСрТал исходныС ΠΊΠΎΠ΄Ρ‹, поэтому ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ сначала ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

rpm -rebuild Sawfish-1.0–1.src.rpm

ПослС ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ пяти ΠΌΠΈΠ½ΡƒΡ‚ компиляции Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /usr/src/redhat/RPMS/i386/ образовался ΠΏΠ°ΠΊΠ΅Ρ‚ Sawfish, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

rpm -F Sawfish

А Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ сообщСниС: «ОбновлСниС ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² систСмС ΡƒΠΆΠ΅ установлСн ΠΏΠ°ΠΊΠ΅Ρ‚ вСрсии 0.36, которая большС, Ρ‡Π΅ΠΌ вСрсия 1.02Β». По всСй видимости, сборщики ΠΏΠ°ΠΊΠ΅Ρ‚Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Π»ΠΈ Π² Π΅Π³ΠΎ описании. ΠŸΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

rpm -U -force Sawfish-1.0–1.i386.rpm

которая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π½Π΅ провСряя зависимостСй. ΠšΠ»ΡŽΡ‡ΠΎΠΌ -force, ΠΎΠ΄Π½Π°ΠΊΠΎ, слСдуСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ достаточно остороТно, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅Π½Π°Ρ€ΠΎΠΊΠΎΠΌ Ρ€Π°Π·Π²Π°Π»ΠΈΡ‚ΡŒ всю систСму.

Π’ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ ΠΈΠ½ΠΎΠ³Π΄Π° сообщСния ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π°. ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ°ΠΊΠ΅Ρ‚Π° с исходным ΠΊΠΎΠ΄ΠΎΠΌ ядра Linux вСрсии 2.4.2 ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ, содСрТащим исходный ΠΊΠΎΠ΄ ядра Linux вСрсии 2.4.3, Π±Ρ‹Π»ΠΎ Π²Ρ‹Π΄Π°Π½ΠΎ сообщСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ Π½Π° русский язык Π·Π²ΡƒΡ‡ΠΈΡ‚ Ρ‚Π°ΠΊ: "НС ΠΌΠΎΠ³Ρƒ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρ‚Π°ΠΊΠΎΠΉ-Ρ‚ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ пуст". Однако ΠΏΠ°ΠΊΠ΅Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ обновился, Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π² сообщСнии, Π½Π° самом Π΄Π΅Π»Π΅ Π±Ρ‹Π» пуст. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π΅ стоит сразу Ρ€Π°ΡΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ, достаточно часто сообщСния, Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ RPM, вСсьма Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½Ρ‹.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈΠ· систСмы осущСствляСтся элСмСнтарно, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

rpm -Π΅ <имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π°>

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ – указываСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Если Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ‚ΠΎ RPM выдаст сообщСниС: Β«Π’Π°ΠΊΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ Π² систСмС Π½Π΅ установлСн». НСмного Π½Π΅Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Π½ΠΎ Ρ‚Π°ΠΊ ΡƒΠΆ историчСски слоТилось: ΠΏΡ€ΠΈ установкС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ – Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π±Π΅Π· упоминания вСрсии, Ρ€Π΅Π»ΠΈΠ·Π° ΠΈ Ρ‚. ΠΏ.

ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ спСрва ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ зависимости, ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ удаляСтся, Ссли ΠΎΡ‚ Π½Π΅Π³ΠΎ Π½Π΅ зависит Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ установлСнный Π² систСмС ΠΏΠ°ΠΊΠ΅Ρ‚. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π½Π° экран Π²Ρ‹Π΄Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², для функционирования ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΡƒΠΆΠ΅Π½ удаляСмый ΠΏΠ°ΠΊΠ΅Ρ‚. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ссли Π²Ρ‹ всС-Ρ‚Π°ΠΊΠΈ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ -nodeps ΠΈΠ»ΠΈ -force, ΠΎΠ΄Π½Π°ΠΊΠΎ рСкомСндуСтся ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ… с большой ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, какая вСрсия ΠΏΠ°ΠΊΠ΅Ρ‚Π° установлСна Π² систСмС, ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

rpm -q <имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π°>

НапримСр, Π½Π° запрос rpm -q срр ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ Ρ‚Π°ΠΊΠΎΠΉ ΠΎΡ‚Π²Π΅Ρ‚: срр-2.96–85. Для получСния Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

rpm -qi <ΠΏΠΎΠ»Π½ΠΎΠ΅_имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π°>

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rpm -qi срр-2.96–85 Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½ΠΈΠΆΠ΅:

Name: срр Relocations: (not relocateable)

Version: 2.96 Vendor: Red Hat, Inc.

Release: 85 Build Date: Π‘Ρ€Π΄ 09 Май 2001 21:04:50

Install date: ΠŸΡ‚Π½ 31 Авг 2001 07:38:10 Build Host: porky.devel.redhat.com

Group: Development/Languages Source RPM: gcc-2.96–85.src.rpm

Size: 292618 License: GPL

Packager: Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>

URL: http://gcc.gnu.org

Summary: The Π‘ Preprocessor.

Description:

Cpp is the GNU C–Compatible Compiler Preprocessor. Cpp is a macro processor which is used automatically by the Π‘ compiler to transform your program before actual compilation. It is called a macro processor because it allows you to define macros, abbreviations for longer constructs.

The Π‘ preprocessor provides four separate functionalities: the inclusion of header files (files of declarations that can be substituted into your program); macro expansion (you can define macros, and the Π‘ preprocessor will replace the macros with their definitions throughout the program); conditional compilation (using special preprocessing directives, you can include or exclude parts of the program according to various conditions); and line control (if you use a program to combine or rearrange source files into an intermediate file which is then compiled, you can use line control to inform the compiler about where each source line originated).

You should install this package if you are Π° Π‘ programmer and you use macros.

Для получСния списка Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠ°ΠΊΠ΅Ρ‚Π° (ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΡƒΠ΄Π° ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ установлСны) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°:

rpm -ql <ΠΏΠΎΠ»Π½ΠΎΠ΅_имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π°>

НапримСр, rpm -qi срр-2.96–85 Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π½Π° экран ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ список Ρ„Π°ΠΉΠ»ΠΎΠ²:

/lib/cpp

/usr/bin/cpp

/usr/lib/gcc-lib

/usr/lib/gcc-lib/i386-redhat-linux

/usr/lib/gcc-lib/i386-redhat-linux/2.96

/usr/lib/gcc-lib/i386-redhat-linux/2.96/cpp0

/usr/lib/gcc-lib/i386-redhat-linux/2.96/tradcpp0

/usr/share/info/cpp.info-1.gz

/usr/share/info/cpp.info-2.gz

/usr/share/info/cpp.info-3.gz

/usr/share/info/cpp.info.gz

/usr/share/man/manl/cpp.1.gz

А Ссли Π½Π°Π΄ΠΎ произвСсти ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ – ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ ΠΎΠ½ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚? Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ: