zypper, как установить пакет в локальный каталог ~ / bin

Как установить пакет в каталог ~/bin с помощью zypper ? Сначала я загрузил пакет как root, а затем попытался установить его как не root, но тем самым он столкнулся с проблемами зависимостей.

 # zypper in --download-only wireshark ... $ zypper -R /home/ec2-user/bin in /var/cache/zypp/packages/SMT-http_smt-ec2_susecloud_net:SLE11-SDK-SP3-Updates/rpm/x86_64/wireshark-1.10.11-0.2.1.x86_64.rpm Loading repository data... Reading installed packages... Resolving package dependencies... Problem: nothing provides libadns.so.1()(64bit) needed by wireshark-1.10.11-0.2.1.x86_64 Solution 1: do not install wireshark-1.10.11-0.2.1.x86_64 Solution 2: break wireshark-1.10.11-0.2.1.x86_64 by ignoring some of its dependencies 

Есть ли какой-то параметр zypper, похожий на -prefix? BTW Мне нужна только функция анализа tshark . Благодарю.

Короткий ответ: нет. Я не нашел способ прочитать страницы руководства, раздел справки или веб-сайт.

Что вы можете сделать, это загрузить rpm, а затем установить его в другой каталог.

Вы должны сделать это со следующим:

 zypper in --download-only wireshark rpm --prefix=/home/ec2-user/ -ivh /var/cache/zypp/packages/SMT-http_smt-ec2_susecloud_net:SLE11-SDK-SP3-Updates/rpm/x86_64/wireshark-1.10.11-0.2.1.x86_64.rpm 

Не спрашивайте меня, почему, я думаю, что это связано с собственной внутренней базой данных zypper и с дистрибутивами.

У zypper есть опция --root <dir> которая соответствует --prefix как вас попросил. Тем не менее, также рассмотрите ответ SailorCire

Ссылаясь на руководство, zypper имеет опцию --root :

 -R, --root 
        Работает в другом корневом каталоге.  Этот параметр влияет
        расположение каталога repos.d и кеш метаданных
        и также вызывает запуск rpm с параметром --root
        для фактической установки или удаления пакетов.  Обратите внимание, что
        блокировка ZYpp все еще создается в исходной системе, а также
        как временные файлы.  См. Также раздел ФАЙЛЫ.

который он реализует с использованием опции --root rpm . Согласно этой странице руководства :

 --корневая директория

     Используйте систему, основанную на DIRECTORY для всех операций.  Обратите внимание, что
     это означает, что база данных будет считана или изменена в разделе «СПРАВОЧНИК»
     и любые% pre или% post scriptlet (ы) запускаются после chroot (2) до
     КАТАЛОГ. 

Другими словами, --root изменяет местоположение базы данных RPM, но не влияет на то, где будет установлен пакет.

Поскольку zypper не имеет документальной поддержки для перемещения пакета, подумайте о его загрузке. Вернуться к руководству:

 -d, - только для загрузки
        Загружайте пакеты только для последующей установки.

а также

 / вар / кэш / ZYPP / пакеты
        Если свойство keeppackages установлено для репозитория (см. Modi-
        fyrepo), весь файл RPM, загруженный во время установки
        будет храниться здесь.  См. Также чистую команду для очистки этих
        кэш-каталоги.

В некоторых пакетах используется опция --prefix , что делает их перемещаемыми. Это скорее исключение, чем правило. Большинство пакетов не перемещаются. Если это один из них, вы можете использовать rpm2cpio для распаковки файлов в rpm2cpio каталог.

Дальнейшее чтение:

  • Объясните: Red Hat Linux RPM Перемещение и не перемещаемые пакеты
  • Перемещаемые пакеты
  • Глава 15. Создание перемещаемого пакета (максимальное число оборотов в минуту)
  • Использование rpm2cpio