Как установить программу локально без привилегий sudo?

Как установить программу локально без привилегий sudo?

Предположим, у меня есть доступ по 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

  1. Скомпилируйте и установите в ~/bin(и отредактируйте свой , .bashrcчтобы PATHвключить его). Библиотеки можно аналогичным образом скомпилировать и установить в ~/lib(установить LD_LIBRARY_PATHуказатель на него), а заголовочные файлы разработки можно установить, например, в ~/includes.

  2. В зависимости от конкретных деталей программ, которые вы хотите установить, и библиотек, от которых они зависят, вы можете загрузить файлы .deb и использовать ' dpkg-deb -x' для их извлечения в ваш домашний каталог. Затем вы получите массу "удовольствия" от настройки PATH, LD_LIBRARY_PATH, и других variables. Чем сложнее программа или приложение, которые вы устанавливаете, тем больше удовольствия вы получите :)

    Конечно, вы не сможете установить setuidдвоичные файлы таким образом — они установятся, но (поскольку у вас нет прав на их изменение пользователем root или установку бита setuid) это будут просто обычные двоичные файлы, владельцем которых вы являетесь.

    Аналогично, демоны и системные службы, которые должны работать под определенным именем UIDили иметь возможность изменять uid, или ожидать, что файлы будут находиться в /etcнужном месте ~/etcи т. д., вряд ли будут работать хорошо, если вообще будут.

  3. Большинство системных администраторов посчитали бы mcи mcedit«в основном безвредными», безвредными программами.

    Однако очень немногие посчитают установку торрент-клиента безвредной, особенно если им придется платить за пропускную способность или в конечном итоге нести юридическую ответственность. Большинство системных администраторов, вероятно, не будут полностью рады, если конечные пользователи будут устанавливать такое программное обеспечение без разрешения. Они могут сказать: «Конечно, идите вперед, вырубитесь», а могут и нет... но вы должны спросить обо всем, что может вызвать проблемы у владельцев/администраторов машины.

решение3

Вы можете использоватьJuNest, который создает небольшой контейнер Linux в каталоге пользователя, куда можно установить любые пакеты.

решение4

На самом деле, для этого есть инструмент, который я сделал сегодня.
https://github.com/z3r0n3t/pkget Все, что вам нужно, это доступ к bash, без прав root, ничего особенного. Вы можете использовать whet, чтобы загрузить его в виде zip-файла, или использовать git clone.

Связанный контент