Answers:
根据您要完成的工作,可能会有不同的方法来完成这项工作(或者至少要对您想要的功能进行一些粗略的表述)。
以多种方式安装软件归结为使资源可用或允许访问系统上已经存在的内容。
无论您是在谈论授予打印机访问权限,还是允许用户在某个目录中执行程序,都有多种方法可以实现,尽管它们可能是Ubuntu的本机,但这些解决方案通常(当然)将用于在安装.deb之后添加。
这是可以添加的两个一般类的安装后控件。请注意,在适当的环境下(例如,在实施严格控制的组策略时),一旦具备基本系统,这可能会更容易。这类权限甚至可以与LDAP或类似的系统绑定在一起,后者可以为每个用户或组提供身份验证和授权。
可见度控制
我本人也遇到过类似的情况,但就我而言,用户还不是很老练(所有人都在7岁以下)。对我而言,仅隐藏Gnome菜单和/或删除桌面启动器即可。
从目录中删除可执行位将消除进程搜索或遍历它们的能力。它可以有效地使它们不可见,并在用户方面使它们不可用。例如,如果您有一个默认的系统策略可以根据文件访问来创建菜单,则可以使用这种外观解决方案,然后只需很少的工作便可以将其用于后续安装。
执行控制
可以通过Unix权限,apparmor配置文件,SELinux权限等来控制资源。根据应用的不同,可能还会有其他级别的控制过滤起作用。如果没有更具针对性的解决方案,则可能必须围绕某些程序编写包装程序以控制用户或进程的访问。
好 dpkg
,这不是它的设计目标,不会对您有帮助。它希望成为系统上安装的软件包的根拥有的唯一普查。
唯一想到的就是提取包并尝试将文件手动放置在主目录中。
但是,这仅适用于某些情况。大量的程序包被分成多个块(的可执行文件或脚本/usr/bin
,/lib
和其他garb /usr/share
等),并且这些位置由构建脚本硬编码。因此,如果您尝试将这样的东西插入~
,它将损坏。您可能需要花费数小时来消除依赖关系,但是您可能会在时间上做一些有用的事情,例如找到治疗癌症的方法或吸收世界上的某些美丽。
您最好能从编写该软件的任何人那里获取一个非打包版本。几乎所有免费软件都以某种形式的压缩归档文件作为源提供,因此请抓住它并进行构建。您不执行此make install
步骤。您的应用程序已构建,只需将其放置在所需位置即可。
/etc/init
,在中查找配置文件/etc
,或使用其他硬编码路径。
./configure --prefix=$HOME/local
。
我对这个主题不太了解,但是从其他答案来看,您似乎可以将软件包安装到另一个目录中,而不是/
使用dpkg
,使用--root
参数,然后执行chroot
对包为“安装”(当然可以是用户主目录中的目录)。
要为除此以外的用户安装软件包,root
可以使用上面的过程fakechroot
代替chroot
。
免责声明:我没有尝试这一点,并在写作的时候没有太多的经验dpkg
或chroot
,但是从我不知道这些工具,这个过程只是威力工作。
链接中包含的信息可能对那些想要达到chroot
无root
能力效果的人有用:
chroot
fakechroot
)我现在做了一些与该主题有关的事情,并发现了更多...
片段(本地环境构建块):
chroot(1)
完整(完整的本地环境提供程序):
chroot(1)
,mount --bind
,binfmt_misc
,和使用运行与其他架构的二进制文件的qemu-用户空间摘要:通过在本地模拟或实际拥有root特权,可以为本地环境安装DEB软件包。
您可以更改可执行文件的所有权,以便只有一个用户可以运行它。然后,如果需要,您可以从其他用户的菜单中删除该应用程序。
~/bin
。关于Takkat是要限制多用户应用程序的访问/可见性,还是他想安装单用户应用程序,在这个问题上存在歧义。您和安排的问题使用前一种解释,其余问题采用后者。
疑。
deb文件主要是归档文件,安装后会解压缩到文件系统的根目录(加上一些配置)。如果只想为一个用户安装它们,则需要以某种方式将它们安装到/ home / user文件夹中。即使您这样做了,它们也不起作用,因为fe应用程序二进制文件将不会放在/ usr / bin中(或类似的东西),并且如果您尝试启动它们,系统将找不到它们。类似地,库等也将是无用的,因为系统不会知道/ home中的某处。您可以尝试使用蛮力方法,并调整PATH变量以指向从deb存档中提取文件的位置,但这不仅限于此非常 不安全,但是可能会导致兼容性问题(fe菜单项将不起作用,因为GNOME将.desktop文件存储在/ usr / share / applications中)。
此外,如果仅为某些用户安装了一个软件包,则可能会导致疯狂的依赖关系问题,如果其他任何用户安装的软件包与您自己安装的另一个软件包发生冲突,则可能会出现其他与软件包管理相关的大量问题。
所有这些麻烦使为用户单独管理软件包变得极为困难,因此似乎不可能仅为一个用户安装软件包,因为.debs背后的想法不允许这样做。