安装没有sudo访问权限的软件包


11

如果您没有超级用户访问权限,是否有一种简单的方法来安装带有大型依赖关系树的软件包?例如,说我想安装Firefox。Firefox有很多依赖关系,每个依赖关系都有自己的依赖关系,依此类推。以“ ./configure; make; make install”的方式安装这些依赖关系将是永远的。

我可以给apt-get使其安装在个人目录中吗?还是有办法破解它来为我完成所有繁重的工作?


尝试在www.superuser.com上询问,或者服务器是否专门询问www.serverfault.com

Answers:


4

您可以使用以下命令在您的主目录中安装单个.deb文件:

dpkg-deb -x /path/to/some.deb $HOME

但这并不能像aptitude或apt-get那样处理依赖项。


我使用这种方法在工作站上为julia安装了atom。另外,我在〜/ .bashrc中为atom设置了别名:alias atom =“ / path / to / the / executable / atom / binary / file”。然后运行:source〜/ .bashrc,您可以在终端中运行atom了。
好意愿

2

NixOsLWN)。软件包是隔离的(有时发行版需要对其进行修补),可以以不同的版本或不同的用户安装几次。

jhbuild可以自动执行大型cmmi进程。但是有人需要编写一个模块集(一个依赖关系图)。

如果要进行手动配置/全部安装过程,则可以使用stow简化在家中的安装过程。存放有助于在多个前缀中安装内容,但只能使用一个前缀来解决依赖项。

可以强制dpkg使用instdir / admindir / root使用不同的前缀安装,但这仅对chroot环境有用。


0

不要从源代码编译Firefox,只需将二进制软件包安装到您的主目录中即可。

Mozilla知识库文章介绍了如何执行此操作。基本上,您只需要提取一个tarballfirefox在其中执行文件即可;所有依赖项已包含在内,因此您无需使用安装任何东西apt

编辑:不,不存在通用方法,至少因为大多数应用程序(尤其是GUI应用程序)需要将其许多关联数据放置在/ usr / share之类的知名位置,并且在其中进行了硬编码(嗯,它可以在编译时进行配置,但是您不想像您所说的那样重新编译所有内容)。因此,您只需要检查预编译的二进制程序包即可在启动目录而不是系统目录中搜索资源。


我认为该问题与包裹管理实践有关。我怀疑Firefox只是一个示例,因此特定于Firefox的方法并不太有用。
quack quixote 2010年

谢谢,编辑了帖子。Firefox信息仍然有用。
whitequark 2010年

0

我认为答案几乎是“不”。首先,只有根用户才能访问软件包数据库,其次,某些/许多软件包具有硬编码的路径,因此无法重新定位它们。使用chroot可能是一个答案,但是您也需要root用户,或者至少需要具有root用户的人才能授予您有限的权限。


0

我相信您必须先执行chroot,然后才能在其中安装软件包。

参考:https : //help.ubuntu.com/6.10/ubuntu/packagingguide/C/appendix-chroot.html https://wiki.ubuntu.com/DebootstrapChroot


root权限无论如何都需要创建一个chroot,那么,为什么不只是安装软件包代替?除此之外,您的系统管理员将为您授予完全root特权(甚至只是与apt相关的特权)的可能性比chroot的机会少得多。对于主机系统来说(几乎)没有危险。
whitequark 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.