我在这台机器上没有root访问权限。
我想知道是否有一种方法可以下载Ubuntu软件包并以非root用户的身份安装它们?
可能是在我的~/bin或~/usr/share之类的地方?那样行吗?
我想知道是否有一种方法可以下载Ubuntu软件包并以非root用户的身份安装它们?
可能是在我的~/bin或~/usr/share之类的地方?那样行吗?
.deb
方法apt-get download package_name # replace `package_name` with the name of the package.
dpkg -x package.deb dir
apt-get source package
cd package
./configure --prefix=$HOME
make
make install
dpkg -i package.deb --force-not-root --root=$HOME
dpkg
的这种方法的缺点是错误消息可能会很晦涩,dpkg不会自动解决依赖关系或创建预期的目录结构。sudo apt-get build-dep package
命令来安装构建软件包所需的所有组件(在使用apt-get source
获取源代码之后)。 - Vladimir Panteleev--force-not-root --root=$HOME
或类似的变体都不起作用。Debian二进制软件包并不是设计用来安装在主目录中的,这是毋庸置疑的事实。或者换句话说,“下面的例子将把package.deb安装到你的主目录中。”不,它不会这样做。 - Faheem Mitha--force-not-root --root=/your/custom/path
。 - Viettouch status
,mkdir updates
,可能还有一两个。根据出现的错误信息来指导你。 - JellicleCatdpkg -x <package.deb> <dir>
这个方法对我有效。<dir>
,而是导出包含该软件包二进制文件的路径,例如我使用以下命令导出了路径 /path/to/dir/usr/bin/
:export PATH="/path/to/dir/usr/bin:$PATH"
。 - Ahwardpkg -x package.deb dir
命令是如何工作的? - Charlie Parkerdpkg -x package.deb <dir>
只是解压缩软件包,系统并不知道它的位置。这就是为什么你需要执行export PATH=$PATH:<dir>
的原因。 - Jake Stevens-Haasmkdir /tmp/jedit && cd /tmp/jedit
-- 在 tmp
中创建一个新的目录并切换到该目录。wget http://mirrors.kernel.org/ubuntu/pool/universe/j/jedit/jedit_4.3.1.dfsg-0ubuntu1_all.deb
-- 下载软件包ar x jedit_4.3.1.dfsg-0ubuntu1_all.deb
或者更简单地,ar x *.deb
-- 这将解压文件内容tar xvzf data.tar.gz
-- 文件 data.tar.gz
包含了执行该软件所需的所有内容usr/bin/jedit
打开编辑器您可以将这些文件移动到家目录中的某个位置,并从那里执行它们。
$>junest -f
(junest)$> pacman -S jedit
(junest)> jedit
# - opam (snap, no sudo)
# ref: https://askubuntu.com/questions/339/how-can-i-install-a-package-without-root-access
apt-get download opam
#apt-get download opam_1.2.2-4_amd64
#ls | less
mkdir -p ~/.local
dpkg -x opam_1.2.2-4_amd64.deb ~/.local/bin
export PATH="$HOME/.local/bin:$PATH"
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc.user
tr ':' '\n' <<< "$PATH"
opam --version
# - install the bin then put it in path and restart your bash
mkdir ~/.rbenv
cd ~/.rbenv
git clone https://github.com/rbenv/rbenv.git .
export PATH="$HOME/.rbenv/bin:$PATH"
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
# exec $SHELL
#bash
rbenv -v
dpk -x
和mv
的组合对我很有效。或者,如果没有dpk
可用,使用ar
并与tar
进行管道/组合在非常受限制的系统上也对我有用,参见这里。 - iolsmit