Существуют способы установки rpms в пользовательский каталог с использованием rpm
, но я не верю, что это просто. Я не верю, что есть способ yum
.
Моя стандартная практика стала собирать из источника в local
каталог в моем доме
$ mkdir ~/local
$ mkdir ~/local/bin
$ mkdir ~/local/lib
$ mkdir ~/local/include
Я загружаю исходный код, как если бы у /usr/local
меня был root, например, в ~/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'
Файл .rpm на самом деле является формой
cpio
архива, который во многом похож на простую формуtar
.rpm2cpio
Утилита, вероятно , установлен в системе и не требует привилегий использования; он пишет в стандарт, чтобы преобразовать:Там это
man cpio
вы можете посмотреть на себя, но и то , что теперь вы хотите сделать , это кормить архив в CPIO в «экземпляре» режиме:Весьма вероятно, что материал организован в дерево каталогов, поэтому файлы помещаются в соответствующие места (bin и т. Д. И т. Д.). Если их нет в вашем pwd, вы получите сообщение об ошибке, но в нем будут перечислены файлы в архиве (вы можете получить то же самое с ключом
-t
/--list
). Если вы хотите создать каталоги автоматически, используйте-d
. Итак, быстрый способ распаковать об / мин:Вы можете использовать это для установки в $ HOME. Единственная проблема будет в том, что программа ожидает что-то найти
/etc
и т. Д., Поскольку многие вещи имеют жестко запрограммированное место установки для любой цели, когда они компилируются.Построение из исходного кода, вероятно, является лучшим вариантом (поскольку вы можете указать правильное местоположение), но если вы можете заставить это работать в любом случае, тогда это быстро и просто.
Кроме того, файловый браузер midnight commander (
mc
) и, возможно, другие файловые браузеры, кроме того, позволят вам перемещаться по иерархии rpm или cpio (или сжатого tar, или zip) и копировать отдельные файлы, как если бы архив был распакован (он создает временная файловая система для просмотра содержимого архива).источник
Это альтернатива (не использующая yum), и разрешение будет дурацким, но
chown
впоследствии вы можете обратиться к целевому пользователю: - также это удар или промах :-(Затем добавьте соответствующие места на вашем пути.
источник