Установка пакета локально пользователю - лучшие практики?

Как Вы сказали выше, создавание каталога для присоединения точки монтирования к устранит эту проблему.

18
22.07.2017, 04:47
3 ответа

Существуют способы установить rpms в пользовательском использовании каталога rpm, но я не полагаю, что это просто. Я не полагаю, что существует путь с yum.

Моя общепринятая практика стала для компиляции от источника до a local каталог в моем доме

$ mkdir ~/local
$ mkdir ~/local/bin
$ mkdir ~/local/lib
$ mkdir ~/local/include

Я загружаю источник, как я был бы к /usr/local когда у меня есть корень, например, в ~/local/git.

При компиляции я установил префикс на local каталог

$ configure --prefix=/home/user_name/local
$ make
$ make install

Я затем добавляю ~/local/bin к моему $PATH в .bash_profile.

Конечно, боль с установкой из источника - то, что Вы не получаете автоматическое разрешение зависимости. Если Вы находите, что необходимо установить зависимости, скомпилируйте и установите их как выше. Затем, когда Вы компилируете git, необходимо обновить флаги компиляции, таким образом, они смотрят в корректном месте для библиотек зависимости и включают файлы:

./configure --prefix=/home/user_name/local LDFLAG='-L/home/user_name/local/lib' CFLAGS='-I/home/user_name/local/include' CPPFLAGS='-I/home/user_name/local/include' CXXFLAGS='-I/home/user_name/local/include'
17
27.01.2020, 19:46
  • 1
    Это работало отлично, спасибо за совет! –  wiredin 25.04.2013, 23:15

.rpm файл является на самом деле формой cpio архив, который много похож на простую форму tar. rpm2cpio утилита, вероятно, установлена в системе и не требует полномочий использовать; это пишет в стандарт, так для преобразования:

rpm2cpio whatever.rpm > whatever.cpio

Существует a man cpio можно посмотреть на себя, но что Вы теперь хотите сделать, подать архив к cpio в "копии в" режиме:

cat whatever.cpio | cpio -i

Очень вероятно материал организован в дерево каталогов так, чтобы файлы вошли в соответствующие местоположения (мусорное ведро, и т.д., и т.д.). Если они не будут существовать в Вашем pwd, то Вы получите ошибку, но это перечислит файлы в архиве (можно получить то же самое с -t/--list переключатель). Если Вы хотите создать каталоги автоматически, использовать -d. Так быстрый способ распаковать об/мин:

rpm2cpio whatever.rpm | cpio -i -d

Можно использовать это для установки в $HOME. Единственная проблема будет состоять в том, если программа будет ожидать находить материал в /etc, и т.д., так как много вещей имеют свое расположение установки, трудно кодированное в для любой цели, когда они компилируются.

Здание из источника является, вероятно, более оптимальным вариантом (так как можно обеспечить корректное местоположение), но если можно заставить это работать в любом случае затем, это быстро и просто.

Кроме того, полуночный командующий файловый браузер (mc), и вероятно другие файловые браузеры кроме того, позволят Вам перемещаться по об/мин или cpio (или сжатый tar или zip) иерархия и копировать отдельные файлы, как будто архив был распакован (он создает временную файловую систему для просмотра с содержанием архива в нем).

13
27.01.2020, 19:46

Это альтернатива (без использования yum), и разрешение будет дурацким, но вы можете chown после этого целевому пользователю: - также это попадание или промах :-(

#-## Download all dependency for the RPM -- 
#sudo yum install yum-utils
#sudo yumdownloader --resolve --destdir ~/download bash

#-## Install all downloaded to an alternate root 
#sudo rpm --initdb --root <user_home_dir>
#sudo rpm --root <user_home_dir> -Uvh --nodeps ~/download/*

Затем добавьте соответствующие местоположения в свой путь.

0
27.01.2020, 19:46

Теги

Похожие вопросы