Предположим, у меня есть доступ по ssh к какому-то серверу Ubuntu как у пользователя, и мне нужно установить некоторые несистемные инструменты для удобства (mc, rtorrent, mcedit). Я не хочу беспокоить администраторов этими маленькими программами.
Есть ли способ установить их (заставить их работать) без использования чего-то вроде sudo apt-get install
?
решение1
Вам нужно скомпилировать их из исходников. Это должно быть просто вопросом
apt-get source PACKAGE
./configure --prefix=$HOME/myapps
make
make install
Двоичный файл тогда будет расположен в ~/myapps/bin
. Поэтому добавьте export PATH="$HOME/myapps/bin:$PATH"
в свой .bashrc
файл и перезагрузите .bashrc
файл с помощью source ~/.bashrc
. Конечно, это предполагает, что gcc установлен в системе.
решение2
Скомпилируйте и установите в
~/bin
(и отредактируйте свой ,.bashrc
чтобыPATH
включить его). Библиотеки можно аналогичным образом скомпилировать и установить в~/lib
(установитьLD_LIBRARY_PATH
указатель на него), а заголовочные файлы разработки можно установить, например, в~/includes
.В зависимости от конкретных деталей программ, которые вы хотите установить, и библиотек, от которых они зависят, вы можете загрузить файлы .deb и использовать '
dpkg-deb -x
' для их извлечения в ваш домашний каталог. Затем вы получите массу "удовольствия" от настройкиPATH
,LD_LIBRARY_PATH
, и другихvariables
. Чем сложнее программа или приложение, которые вы устанавливаете, тем больше удовольствия вы получите :)Конечно, вы не сможете установить
setuid
двоичные файлы таким образом — они установятся, но (поскольку у вас нет прав на их изменение пользователем root или установку битаsetuid
) это будут просто обычные двоичные файлы, владельцем которых вы являетесь.Аналогично, демоны и системные службы, которые должны работать под определенным именем
UID
или иметь возможность изменять uid, или ожидать, что файлы будут находиться в/etc
нужном месте~/etc
и т. д., вряд ли будут работать хорошо, если вообще будут.Большинство системных администраторов посчитали бы
mc
иmcedit
«в основном безвредными», безвредными программами.Однако очень немногие посчитают установку торрент-клиента безвредной, особенно если им придется платить за пропускную способность или в конечном итоге нести юридическую ответственность. Большинство системных администраторов, вероятно, не будут полностью рады, если конечные пользователи будут устанавливать такое программное обеспечение без разрешения. Они могут сказать: «Конечно, идите вперед, вырубитесь», а могут и нет... но вы должны спросить обо всем, что может вызвать проблемы у владельцев/администраторов машины.
решение3
Вы можете использоватьJuNest, который создает небольшой контейнер Linux в каталоге пользователя, куда можно установить любые пакеты.
решение4
На самом деле, для этого есть инструмент, который я сделал сегодня.
https://github.com/z3r0n3t/pkget
Все, что вам нужно, это доступ к bash, без прав root, ничего особенного. Вы можете использовать whet, чтобы загрузить его в виде zip-файла, или использовать git clone.