об / хв без кореня


Відповіді:


2

Залежно від вмісту пакету, ви можете просто витягнути вміст rpm та використовувати його звідкись із свого домашнього каталогу. Навіть якщо він не позначений як переїзний. Якщо бінарні файли в пакеті мають жорстко закодовані шляхи або якщо програма потребує кореневого доступу, це може бути неможливим.


1
це насправді неправильно, ви фактично не можете запустити rpmкоманду без доступу sudo / root.

8

Є безліч відповідей, які дозволяють запропонувати переселені пакунки. Параметр переміщення призначений для того, щоб адміністратори вибирали місце призначення (наприклад, місце призначення було / opt, а не / usr / local, наприклад), а насправді не для дозволів користувача.

Незважаючи на те, що можливо усунути деякі проблеми дозволів за допомогою цього методу, ОСНОВНА проблема полягає в тому, що при виконанні операцій rpm він змінює бази даних /var/lib/rpm/__db.*, які належать root: root. Так, як сказав JPerkSter "коротка відповідь = ні". Налаштування судо для задоволення конкретних потреб, можливо, було б найкращим варіантом.


8

Враховуючи все вищесказане, що стосується переїздів, що пересуваються, ви можете спробувати, дотримуючись наведених тут інструкцій .

rpm --initdb --root /home/username/local --dbpath /home/username/local/lib/rpm
rpm --root /home/username/local --dbpath /home/username/local/lib/rpm \
 --relocate /usr=/home/username/local --nodeps -ivh package.rpm

3

Специфікація RPM містить опцію під назвою "переїзд". Якщо rpm побудований із увімкненою функцією переміщення, він може бути встановлений у вказаній користувачем каталозі за допомогою параметра '--prefix'. Отже, імовірно, обертовий хід може бути встановлений локально без доступу суперпользователя до тих пір, поки будуть дотримані дві умови:

  1. Спочатку пакет був розроблений для переміщення
  2. Бінарний файл 'rpm' не намагається додати пакет до глобального системного каталогу

Але, загалом, ні, для встановлення RPM вам потрібен надрукований доступ. Хоча варіант переїзду існує, я майже ніколи не бачив пакет, який був створений для його підтримки.


3

Деякі пакети переміщуються, тому вони можуть працювати нормально без кореня, просто встановіть префікс при його встановленні: rpm -i my.rpm --prefix = / my / home / folder

Якщо пакет не переміщується, ви можете витягнути файли з RPM і спробувати запустити його. Ви можете витягти файли RPM, використовуючи, наприклад:

Скопіюйте файли у свою ~ / папку, додайте будь-які додаткові бібліотеки залежностей та сподівайтеся на найкраще. Не гарантується, але ви можете отримати деякі невідмітні пакети, що працюють таким чином.


2

Ви можете змусити його встановлюватись в іншому каталозі, використовуючи інший dbpath. Крім того, вам, ймовірно, не слід запускати будь-які сценарії безпосередньо, не перевіряючи їх.

Це додасть rpm під поточний каталог і витягне скрипти, щоб ви могли редагувати та запускати їх, якщо потрібно.

rpm --install --badreloc --relocate /=`pwd` -dbpath `pwd`/rpm_db --nodeps --noscripts package.rpm

rpm --query --scripts -p package.rpm > scripts.txt

2

Так, але ви цього не хочете. Я використовував власні лялькові маніфести та rpm-пакети для підтримки програмного забезпечення на обчислювальних кластерах, до яких у мене не було кореневого доступу. Теоретично це так просто

rpm --inittb --root /foo 
rpm --dbpath /foo -i bar.rpm

Однак є химерність того, як це поводиться в EL4, EL5 та EL6, тож вам знадобиться різний набір кроків та варіантів для кожного з них. Я вже не маю цієї інформації під рукою. Ці примхи, а також часті проблеми з базами даних RPM (можливо, через NFS) змусили мене пошкодувати про використання rpm.


1

Ви можете створювати RPM без кореневого доступу, просто зробіть це всередині вашого домашнього довідника. Щодо встановлення RPM, я б сказав коротку відповідь = ні.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.