Yum нужно писать в базу данных, которая принадлежит пользователю root. Из-за этого вы не можете использовать его как обычный пользователь.
Вы можете попробовать распаковать rpm-файлы (rpm2cpio package.rpm | cpio -idmv) в выбранный вами каталог.
Но когда вы будете выполнять свою программу, вам нужно будет позаботиться об изменении LD_LIBRARY_PATH, чтобы загрузить зависимые библиотеки. Также это не позаботится о каких-либо зависимостях.
Пример:
# mkdir new_root
# cd new_root
# wget ftp://mirror.switch.ch/pool/4/mirror/centos/6.7/os/x86_64/Packages/vim-enhanced-7.4.629-5.el6.x86_64.rpm
# rpm2cpio vim-enhanced-7.4.629-5.el6.x86_64.rpm | cpio -idmv
# ./usr/bin/vim -version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jul 24 2015 02:23:23)
Вышеупомянутое не имеет никаких зависимых библиотек, иначе вам пришлось бы использовать что-то вроде:
export LD_LIBRARY_PATH=./usr/lib ./usr/bin/program
Ну, вроде ответил...
/var/www/localhost/htdocs/farmer — базовая докувики
/var/www/localhost/htdocs/barn — это каталог, в котором находится моя ферма
/var/www/localhost/htdocs/barn/cow — первое животное
/var/www/localhost/htdocs/barn/duck — второе животное
farmer/inc/preload.php настроен согласно советам:
if(!defined('DOKU_FARMDIR')) define('DOKU_FARMDIR', '/var/www/localhost/htdocs/barn');
cow/conf/local.protected.php настроен одинаково
$conf['basedir'] = '/barn/cow/';
duck/conf/local.protected.php настроен одинаково
$conf['basedir'] = '/barn/duck/';
теперь nginx localhost.conf настроен так:
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/localhost_access_log main;
error_log /var/log/nginx/localhost_error_log info;
rewrite_log on;
root /var/www/localhost/htdocs;
location ~ /(data/|conf/|bin/|inc/|install.php) { deny all; } # post-install lockdown
location / {
try_files $uri $uri/ doku.php @farmer;
autoindex on;
}
location /cow {
return 301 http://$host/barn/cow/doku.php;
}
location /duck {
return 301 http://$host/barn/duck/doku.php;
}
location ~ /barn {
index doku.php;
autoindex on;
rewrite ^/barn/?([^/]+)/(.*) /farmer/$2?animal=$1;
rewrite ^/barn/?([^/]+)$ /farmer/?animal=$1;
}
location @farmer {
rewrite ^/farmer/_media/(.*) /lib/exe/fetch.php?media=$1;
rewrite ^/farmer/_detail/(.*) /lib/exe/detail.php?media=$1;
rewrite ^/farmer/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2;
rewrite ^/farmer/(.*) /doku.php?id=$1&$args;
}
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
}
}
Я могу перейти наhttp ://localhost/farmerдля базы,http ://localhost/cow(перенаправить на http :/ /localhost/barn/cow/doku.php , внутренне переписано как http ://localhost/farmer/?animal=cow)для 1-го животного и то же самое для 2-го.
Мне не нравится цепочка загрузки nginx, но она работает (tm)