Предположим, у меня есть ssh-доступ к какому-либо серверу Ubuntu как пользователю, и мне для удобства нужно установить некоторые не системные инструменты (mc, rtorrent, mcedit). Я не хочу беспокоить администраторов для этих небольших программ.
Есть ли способ установить их (заставить их работать), не используя что-то подобное sudo apt-get install
?
Ответы:
Компиляция и установить в
~/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
быть « в основном безобидные», безвредные программы.Однако очень немногие считают, что установка торрент-клиента безвредна, особенно если им приходится платить за пропускную способность или в конечном итоге они несут юридическую ответственность. Большинство системных администраторов, вероятно, не будут рады, если конечные пользователи будут устанавливать такое программное обеспечение без разрешения. Они могут сказать: «Конечно, давай, нокаутируй себя», или они не могут ... но вы должны спросить обо всем, что может вызвать проблемы у владельцев / администраторов машины.
источник
LD_LIBRARY_PATH
является злым хаком . Это применимо и здесь, или я неправильно понял?dpkg-deb -x
для локального каталога). Работал как шарм. Мне не нужно было делать никакихLD_LIBRARY_PATH
взломов. Даже если у меня есть, я хотел бы сделать это в той же командной строке , чтобы не влиять на глобальные настройки (например$ LD_LIBRARY_PATH=/home/usr1/zoom/opt/zoom:/home/usr1/zoom/opt/zoom/zoom ZoomLauncher
).Вы должны скомпилировать их из источника. Это должно быть просто вопросом
Двоичный файл будет расположен в
~/myapps/bin
. Итак, добавьтеexport PATH="$HOME/myapps/bin:$PATH"
в ваш.bashrc
файл и перезагрузите.bashrc
файл с помощьюsource ~/.bashrc
. Конечно, это предполагает, что в системе установлен gcc.источник
Вы можете использовать JuNest , который создает небольшой контейнер Linux в каталоге пользователя, где вы можете установить любые пакеты.
источник
Я столкнулся с той же проблемой, вот как я быстро исправил ее, предполагая, что у вас есть сервер Linux той же ОС и архитектуры.
Установите программное обеспечение в системе, которой вы управляете
Найдите исполняемый пример
which python
и скопируйте его в~/
Скопируйте библиотеки с помощью:
Перенесите исполняемый файл и библиотеки в другую систему, где у вас есть только локальные привилегии, а затем выполните следующее:
Это создаст папку
~/lib
для хранения библиотек, добавит ее к вашему пути и скажет LD, чтобы она смотрела на библиотеки там, так что просто добавьте свои исполняемые файлы и библиотеки туда, теперь вы можете запускать ее, как в другом месте.Это может быть очень хакерским, но очень портативным, быстрым, и я пока не нашел чего-то такого, что я не могу запустить таким образом, конечно, программное обеспечение не может пытаться делать то, что требует root-доступа, например привязку к нижнему порту чем 1024 и т. д.
источник
У меня такая же проблема, как и у вас. Я еще не пробовал, но кажется, что Linuxbrew может пригодиться в этом вопросе.
источник