Weboide Asked: 2010-07-30 03:17:13 +0800 CST2010-07-30 03:17:13 +0800 CST 2010-07-30 03:17:13 +0800 CST 如何在没有 root 访问权限的情况下安装软件包? 772 我在这台机器上没有 root 访问权限。 我想知道是否有一种方法可以下载 Ubuntu 软件包并将它们安装为非 root 用户? 可能在我的~/bin或~/usr/share类似的地方?那行得通吗? software-installation 3 个回答 Voted Best Answer jbowtie 2010-07-30T03:56:05+08:002010-07-30T03:56:05+08:00 Apt 不直接支持它,但是有一些方法可以做到: .deb方法 apt-get download package_name # replace `package_name` with the name of the package. dpkg -x package.deb dir 如果deb不在 Ubuntu 存储库中,apt-get package_name将无法使用,但您可以从网站下载它。 这会将.deb包解压缩到dir/. 然后您可以导出PATH二进制文件所在的位置。只要安装了二进制文件的所有依赖项,它就应该正常运行。 schroot方法 另一种方法是使用schroot非root chroot 创建。这是一个有点复杂的过程,但是您应该能够为许多开发人员设置 chroot 环境来编译代码找到社区帮助。 apt-get source方法 最后,您可以使用该apt-get source命令获取包的源并将其配置为在本地安装。通常这看起来像: apt-get source package cd package ./configure --prefix=$HOME make make install 这种方法的缺点是您需要可用于这种方法的开发环境才能工作,并且您可能会发现自己编译了数十个包以解决所有依赖关系。 历史方法 它曾经可以安装package.deb到dpkg一个人的主目录中。 dpkg -i package.deb --force-not-root --root=$HOME 像这样使用的缺点dpkg是错误消息很可能是隐晦的;dpkg 不会自动解析依赖关系或创建它期望的目录结构。 qbi 2010-07-30T03:32:12+08:002010-07-30T03:32:12+08:00 我假设您要安装jedit。首先,您必须找到该软件包并下载它。我只是从某个镜像中获取 deb 文件并打开一个控制台/终端: mkdir /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打开编辑器 完毕 :-) 您可以将文件移动到主目录中的某个位置并从那里执行它们。 user967489 2014-11-03T10:17:58+08:002014-11-03T10:17:58+08:00 我编写了一个名为JuNest的程序,它基本上允许在 $HOME/.junest 目录中拥有一个非常小的 Linux 发行版(仅包含包管理器)。 它允许您通过根目录访问主目录中的自定义系统,因此,您可以安装任何没有根权限的软件包。它可以在所有主要的 Linux 发行版下正常运行,唯一的限制是 JuNest 可以在最低推荐版本 2.6.32 的 Linux 内核上运行。 例如,安装 JuNest 后,要安装 jedit: $>junest -f (junest)$> pacman -S jedit (junest)> jedit
Apt 不直接支持它,但是有一些方法可以做到:
.deb
方法如果
deb
不在 Ubuntu 存储库中,apt-get package_name
将无法使用,但您可以从网站下载它。这会将
.deb
包解压缩到dir/
. 然后您可以导出PATH
二进制文件所在的位置。只要安装了二进制文件的所有依赖项,它就应该正常运行。schroot
方法另一种方法是使用
schroot
非root chroot 创建。这是一个有点复杂的过程,但是您应该能够为许多开发人员设置 chroot 环境来编译代码找到社区帮助。apt-get source
方法最后,您可以使用该
apt-get source
命令获取包的源并将其配置为在本地安装。通常这看起来像:这种方法的缺点是您需要可用于这种方法的开发环境才能工作,并且您可能会发现自己编译了数十个包以解决所有依赖关系。
历史方法
它曾经可以安装
package.deb
到dpkg
一个人的主目录中。像这样使用的缺点
dpkg
是错误消息很可能是隐晦的;dpkg 不会自动解析依赖关系或创建它期望的目录结构。我假设您要安装jedit。首先,您必须找到该软件包并下载它。我只是从某个镜像中获取 deb 文件并打开一个控制台/终端:
mkdir /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的程序,它基本上允许在 $HOME/.junest 目录中拥有一个非常小的 Linux 发行版(仅包含包管理器)。
它允许您通过根目录访问主目录中的自定义系统,因此,您可以安装任何没有根权限的软件包。它可以在所有主要的 Linux 发行版下正常运行,唯一的限制是 JuNest 可以在最低推荐版本 2.6.32 的 Linux 内核上运行。
例如,安装 JuNest 后,要安装 jedit: