Angenommen, ich habe als Benutzer SSH-Zugriff auf einen Ubuntu-Server und muss der Einfachheit halber einige nicht systembezogene Tools installieren (mc, rtorrent, mcedit). Ich möchte Administratoren nicht mit diesen kleinen Programmen belästigen.
Gibt es eine Möglichkeit, sie zu installieren (auszuführen), ohne etwas wie zu verwenden sudo apt-get install
?
Antwort1
Sie müssen diese aus dem Quellcode kompilieren. Es sollte nur eine Frage von
apt-get source PACKAGE
./configure --prefix=$HOME/myapps
make
make install
Die Binärdatei würde sich dann in befinden ~/myapps/bin
. Fügen Sie also export PATH="$HOME/myapps/bin:$PATH"
zu Ihrer .bashrc
Datei hinzu und laden Sie die .bashrc
Datei mit neu source ~/.bashrc
. Dies setzt natürlich voraus, dass gcc auf dem System installiert ist.
Antwort2
Kompilieren und installieren Sie in
~/bin
(und bearbeiten Sie Ihre ,.bashrc
um festzulegen,PATH
dass es eingeschlossen wird). Bibliotheken können auf ähnliche Weise kompiliert und in installiert werden~/lib
(so eingestellt,LD_LIBRARY_PATH
dass sie darauf verweisen), und Entwicklungsheader können z. B. in installiert werden~/includes
.Abhängig von den spezifischen Details der Programme, die Sie installieren möchten, und den Bibliotheken, von denen sie abhängen, können Sie die .deb-Dateien herunterladen und
dpkg-deb -x
sie mit ' ' in Ihrem Home-Verzeichnis extrahieren. Sie werden dann viel „Spaß“ beim Einstellen derPATH
,LD_LIBRARY_PATH
, und anderen habenvariables
. Je komplexer das Programm oder die App ist, die Sie installieren, desto mehr Spaß werden Sie haben :)Natürlich können Sie
setuid
auf diese Weise keine Binärdateien installieren. Diese werden zwar installiert, aber (da Sie keine Berechtigung haben, sie mit chown auf Root umzuleiten oder dassetuid
Bit darauf zu setzen) handelt es sich lediglich um normale Binärdateien, die Ihnen gehören.Ebenso ist es unwahrscheinlich, dass Daemons und Systemdienste, die unter einer bestimmten Adresse ausgeführt werden sollen , die Möglichkeit haben, die UID zu ändern oder Dateien in einer bestimmten
UID
Adresse zu speichern usw., gut oder gar nicht funktionieren./etc
~/etc
Die meisten Systemadministratoren würden
mc
esmcedit
als „weitgehend harmlose“, unschädliche Programme betrachten.Nur sehr wenige würden jedoch die Installation eines Torrent-Clients als harmlos betrachten, insbesondere wenn sie für die Bandbreite bezahlen müssen oder rechtlich haftbar gemacht werden. Die meisten Systemadministratoren wären wahrscheinlich nicht ganz glücklich, wenn Endbenutzer solche Software ohne Erlaubnis installieren würden. Sie sagen vielleicht „klar, mach weiter, tob dich aus“ oder auch nicht … aber Sie sollten nach allem fragen, was den Besitzern/Administratoren des Computers Probleme bereiten könnte.
Antwort3
Sie könnenJuNest, das einen kleinen Linux-Container im Benutzerverzeichnis erstellt, in dem Sie beliebige Pakete installieren können.
Antwort4
Es gibt tatsächlich ein Werkzeug dafür, das ich heute gemacht habe
https://github.com/z3r0n3t/pkget
Alles was Sie brauchen ist Zugriff auf Bash, kein Root ist erforderlich. Sie können whet verwenden, um es als Zip-Datei herunterzuladen, oder verwenden Sie git clone