вкусная установка в пользователе размещает для неадминистраторов

Ответ зависит много от типа и формата файлов, которые Вы сравниваете.

Если файлы, которые Вы сравниваете, являются отсортированными текстовыми файлами, то инструмент GNU, записанный Richard Stallman и позвонившим Davide McKenzie comm может выполнить фильтрацию, Вы после. Это - часть coreutils.

Пример

Скажите, что у Вас есть следующие 2 файла:

$ cat a
1
2
3
4
5

$ cat b
1
2
3
4
5
6

Строки в файле b это не находится в файле a:

$ comm <(sort a) <(sort b) -3
    6

55
14.01.2013, 19:25
2 ответа

Большинство двоичных файлов компилируется, чтобы быть установленным в определенные местоположения под /.

Существуют некорневые диспетчеры пакетов как хинду Префикс и Беспочвенный GoboLinux и возможно 0install.

Поскольку Вы сказали, что компиляция себя облегчит ту проблему или использование chroot. Однако Ваше самое большое препятствие с chrooting будет предпосылками и соединением с общими объектами ядра.

8
27.01.2020, 19:33
  • 1
    Chroot не является опцией здесь. Необходимо быть корнем к chroot. –  Marco 14.01.2013, 20:34

Вместо того, чтобы использовать yum, найдите rpms, Вы хотите и загружаете их. Вы все еще не можете установить их непосредственно, не будучи корнем, но RPM-пакеты являются на самом деле необычными .cpio файлами, и можно распаковать их содержание. Самый легкий способ сделать это, вероятно, через mc ("полуночный командующий") файловый браузер (одна из самых больших частей программного обеспечения когда-либо), который позволяет Вам просматривать содержание .rpm и файлы копии прямо из него.

Без этого можно использовать rpm2cpio преобразовать его в .cpio, затем cpio извлечь файлы внутри и поместить их в правильные места. Оба из них будут уже установлены в фетровой системе или Redhat. Вот пример, устанавливающий "xsnow" (Вы, вероятно, хотите сделать это в пустом каталоге):

»rpm2cpio xsnow-1.42-17.fc17.x86_64.rpm > xsnow.cpio

Заметьте, что я нашел .rpm соответствующее своей системе, fc17 x86_64. Это важно, потому что это предварительно скомпилированные двоичные файлы, которые связаны против других компонентов. Теперь извлеките .cpio:

»cpio -idv < xsnow.cpio 
./usr/bin/xsnow
./usr/share/doc/xsnow-1.42
./usr/share/doc/xsnow-1.42/README
./usr/share/man/man6/xsnow.6.gz
212 blocks
Press any key to continue...

Если я просматриваю это дерево каталогов, все, в чем я нуждаюсь, там, кроме части метаинформации, которая могла бы помочь мне разрешить зависимости. Это может быть найдено с помощью rpm -q -p [package] --[query]:

»rpm -q -p xsnow-1.42-17.fc17.x86_64.rpm --requires
warning: xsnow-1.42-17.fc17.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID d2382b83: NOKEY
libX11.so.6()(64bit)  
libXext.so.6()(64bit)  
libXpm.so.4()(64bit)  
libc.so.6()(64bit)  
libc.so.6(GLIBC_2.2.5)(64bit)  
libc.so.6(GLIBC_2.3.4)(64bit)  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)  
rpmlib(PayloadIsXz) <= 5.2-1

Вполне уверенный у меня уже есть весь этот материал. Таким образом, теперь все, что я должен сделать, помещается xsnow исполняемый файл в моем $PATH, который уже включает мусорное ведро в мой корневой каталог:

»cp ./usr/bin/xsnow ~/bin

Viola! Теперь я могу ввести xsnow и ничего не наблюдайте, так как как оказалось, xsnow не играет хорошо с KDE :( но надо надеяться jist процесса ясен. Я ничего не должен был делать вне своего корневого каталога.

Если необходимо установить библиотеки, необходимо будет создать каталог в доме для них также и добавить к ~/.bashrc:

export LD_LIBRARY_PATH=/home/you/lib
41
27.01.2020, 19:33
  • 1
    @siamii ну, у Вас есть лучший ответ? –  Marcin 10.08.2013, 23:59
  • 2
    хорошо, таким образом, как насчет кого-то сделают инструмент, чтобы сделать cpio файлы, и затем скопировать все в некорневую папку, как./usr/bin к $PREFIX/usr/bin и т.д., и также рекурсивно проверить и установить зависимости. –  highBandWidth 10.09.2014, 22:29
  • 3
    Два с половиной года спустя, спасибо за полезный ответ. Можно сделать это в одной строке with:mkdir xsnow; CD xsnow; wget-O - 195.220.108.108/linux/rpmfusion/nonfree/fedora/releases/17 / … | rpm2cpio - | cpio-idv –  Larry Engholm 27.05.2015, 02:49
  • 4
    я использовал это больше 2 лет на моем офисном компьютере и он работает как очарование каждый раз. Я хочу выразить свою искреннюю благодарность Вам. Я желаю, чтобы IT моего университета был так же компетентен. номер –   08.08.2016, 21:50
  • 5
    Каждый однажды и некоторое время при выполнении этого я сталкиваюсь с банкой не символьная ссылка на '...': Разрешение отклонено или cpio:....: не Может открыться: отклоненное Разрешение, является там способом зафиксировать это? Обратите внимание, что я создаю эти файлы без sudo, но затем по некоторым причинам я должен использовать sudo для удаления их –  Phylliida 20.09.2016, 19:37

Теги

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