![Как составить список [доступных] версий пакета в Arch Linux?](https://rvso.com/image/95517/%D0%9A%D0%B0%D0%BA%20%D1%81%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA%20%5B%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BD%D1%8B%D1%85%5D%20%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B9%20%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0%20%D0%B2%20Arch%20Linux%3F.png)
Я хотел бы знать, как я могу составить списоквседоступные версии (как установленные, так и не установленные) данного пакета в Arch Linux, а не только последняя версия. Я знаю Gentoo ( eix <package>
), CentOS/Suse/Redhat/... ( yum list <package>
) и Debian ( apt-cache policy <package>
). Я знаю, что я когда-то делал это в Arch, но не могу вспомнить как. Предполагается, что пакет, который мне нужен, этонетв кэше pacman.
С Arch у меня вот это:
$ pacman -Ss gcc
core/gcc 6.2.1-1 (base-devel)
The GNU Compiler Collection - C and C++ frontends
core/gcc-ada 6.2.1-1
Ada front-end for GCC (GNAT)
core/gcc-fortran 6.2.1-1
...
Вот пример того, что у вас есть в Gentoo:
eix gcc
...
[I] sys-devel/gcc
Available versions:
(2.95.3) ~*2.95.3-r10^s
(3.3.6) ~3.3.6-r1^s
(3.4.6) 3.4.6-r2^s
(4.0.4) **4.0.4^s
(4.1.2) 4.1.2^s
(4.2.4) ~4.2.4-r1^s
(4.3.6) 4.3.6-r1^s
(4.4.7) 4.4.7^s
(4.5.4) 4.5.4^s
(4.6.4) 4.6.4^s
(4.7) 4.7.4^s
(4.8) ~4.8.0^s ~4.8.1-r1^s ~4.8.2^s 4.8.3^s 4.8.4^s 4.8.5^s
(4.9) ~*4.9.0^s ~*4.9.1^s ~4.9.2^s ~4.9.3^s
(5.1) **5.1.0^s
(5.2) **5.2.0^s
{altivec awt boundschecking cilk +cxx d debug doc fixed-point +fortran gcj go graphite hardened libssp mudflap multilib multislot +nls nopie nossp +nptl objc objc++ objc-gc +openmp regression-test +sanitize vanilla}
Installed versions: 4.8.5(4.8)^s(10:57:39 02/09/15)(cxx fortran multilib nls nptl openmp sanitize -altivec -awt -debug -doc -fixed-point -gcj -go -graphite -hardened -libssp -mudflap -multislot -nopie -nossp -objc -objc++ -objc-gc -regression-test -vanilla)
Homepage: http://gcc.gnu.org/
Description: The GNU Compiler Collection
...
Здесь у вас есть все доступные версии GCC, с установленной, выделенной (здесь ее не видно) в инверсном видео. В системе, где я это запустил, установленная версия GCC — 4.8.5.
Так как же сделать это снова в Arch Linux?
РЕДАКТИРОВАТЬ: Хотя у меня больше нет Arch на машине, я думаю, что мне нужно добавить некоторые детали для точности. В то время я не хотел [как]понижениепакет. Мне нужно было узнать список доступных версий пакета, который я хочуобновление, не толькопоследнийверсия. Это полезно, например, когда я знаю, что последняя версия (на момент обновления) пакета содержит ошибки, и я хочу попробовать предыдущую версию, если она также является обновлением текущей установленной версии в моей системе.
решение1
Простой пример pacman -Ss <package>
покажет вам эту информацию:
↪ LC_ALL=en_US.utf8 pacman -Ss evince
testing/evince 3.22.0+1+gc1dd9eb-1 (gnome) [installed: 3.20.1-2]
Document viewer (PDF, Postscript, djvu, tiff, dvi, XPS, SyncTex support with gedit, comics books (cbr,cbz,cb7 and cbt))
extra/evince 3.20.1-2 (gnome) [installed]
Document viewer (PDF, Postscript, djvu, tiff, dvi, XPS, SyncTex support with gedit, comics books (cbr,cbz,cb7 and cbt))
Обновление после примера в вашем вопросе:
В Arch Linux (если вы не используете неофициальные репозитории) могут быть доступны только две версии пакета: стабильная версия в одном из репозиториев core/extra/community/multilib и одна в тестировании.
Если вы действительно очень-очень хотите установить старые пакеты, у вас есть несколько вариантов их найти:
ИспользоватьАрхив Arch Linuxдля поиска старых версий пакетов.
Используйте один из инструментов изпонижениестатью в вики, чтобы найти их, например,
agetpkg -l gcc
илиdowngrader gcc
.
Обратите внимание, что пакеты в Arch Linux обычно не указывают ограничения версий для своих зависимостей, посколькучастичные обновления не поддерживаются, поэтому установка старых версий некоторых пакетов — не очень хорошая идея.
решение2
ИзArch Linux вики(выделено мной):
Чтобы увидеть старые и новые версиидоступные пакеты, раскомментируйте
"VerbosePkgLists"
строку в/etc/pacman.conf.
Подробнее об установке определенных версийздесь.
Редактировать:
Вот как это выглядит в моей системе Arch VerbosePkgLists
без комментариев:
sudo pacman -Sy firefox
:: Synkroniserar paketdatabasen...
core är senaste versionen
extra är senaste versionen
community är senaste versionen
löser beroenden...
Söker efter paket med konflikter...
Paket (1) Gammal Version Ny Version Nettoskillnad Hämtningsstorlek
extra/firefox 48.0.2-1 49.0.1-1 -0,35 MiB 39,82 MiB
Total hämtningsstorlek: 39,82 MiB
Total installationsstorlek: 89,81 MiB
Nettouppgraderingsstorlek: -0,35 MiB
:: Fortsätt med installation? [Y/n]
Моя система (очевидно) на шведском языке, но " Gammal Version
" означает Old version
, а " Ny Version
" означает New version
. И как вы видите выше, мне предлагается [Y/n]
установить что-либо.