假设我以用户身份可以通过 ssh 访问某些 Ubuntu 服务器,并且为了方便起见,我需要安装一些非系统工具(mc、rtorrent、mcedit)。我不想为这些小程序打扰管理员。
有没有办法在不使用类似的东西的情况下安装它们(让它们运行)sudo apt-get install?
编译和安装软件是我无法克服的痛苦和问题。我只是想通过我对这个过程的理解,与知识渊博的人一起来清理我的思想,以进入下一个层次。
我需要的许多科学软件都不是作为包分发的。我知道“./configure”设置编译变量并检查依赖项“make”是否编译“sudo make install”将所有库和bins放在它们的位置。然而,它永远不会奏效。我很少在不进入依赖关系的情况下退出 a) “./configure” 阶段,如果我这样做,b) “sudo make install”可能会毁了我的盒子。
a) 依赖地狱非常令人沮丧。有时我有图书馆,但它不喜欢它。或者库不想安装。或者“配置”找不到。或者我的发行版把它放在不应该放在的地方。或者我的系统中有两个版本。问题是,我无法理解如何诊断并因此解决这些问题。对于不需要成为程序员的人来说,有哪些好的参考可以学习?
b) 我的理解是“make install”将替换一些库并更改设置,而我的包管理器不知道这一点。因此,有些程序无法运行,有些程序无法更新。所以,如果我不使用“make install”,而只是将编译后的二进制文件保存在我的用户目录中,并在 PATH 中添加一个符号链接,我会清楚吗?
我的盒子是单用户,有大量的免费高清,所以如果能解决我的问题,我真的不在乎拥有多个(几十个)库副本。空间便宜。
是否可以允许非 root 用户使用 apt 或 rpm 在系统范围内安装软件包?
我工作的地方目前在 linux 机器上的设置已经过时,管理员厌倦了必须根据要求为用户进行所有安装,因此他们正在考虑为所有用户提供完全的 sudo 权限。这具有明显的安全缺点。所以我想知道是否有一种方法可以让普通用户安装软件 - 并升级和删除它?
我必须在工作中使用 Ubuntu 10.04,并且无法升级它。我正在使用 Vim/gVim 7.2。
我想将它升级到 7.3(支持 Python 和 Ruby 扩展)。哪种方法最好?添加条目sources.lists并从中安装 7.3 vim/gvim 包,还是从源代码构建?每种方法都有哪些缺点?
我需要在 SuSE 中以非特权用户身份部署、管理和运行软件(即,没有任何 root 访问权限,无法使用系统的包管理等)。
我有哪些选择?
我更喜欢通过以某种方式设置单独的用户本地存储库来重用系统的包管理器 (YaST)。第二个最佳选择是支持用户本地存储库的单独包管理系统。最好它还支持推送式更新(而不是拉)。
我nix在我不是 root 的系统中以“单用户模式”使用(有关我的 nix 设置的描述,请参见下文)。
我想快速运行我的一个二进制文件,它与系统中不存在的库动态链接。
所以,我已经安装了库nix:
$ nix-env -qa 'gmp'
gmp-4.3.2
gmp-5.1.3
$ nix-env -i gmp-5.1.3
Run Code Online (Sandbox Code Playgroud)
但是链接器仍然找不到该库:
$ ldd -r ../valencies
../valencies: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by ../valencies)
../valencies: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ../valencies)
linux-vdso.so.1 => (0x00007fffbbf28000)
/usr/local/lib/libsnoopy.so (0x00007f4dcfbdc000)
libgmp.so.10 => not found
libffi.so.5 => /usr/lib64/libffi.so.5 (0x00007f4dcf9cc000)
libm.so.6 => /lib64/libm.so.6 (0x00007f4dcf748000)
librt.so.1 => /lib64/librt.so.1 (0x00007f4dcf540000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f4dcf33c000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4dcf11f000)
libc.so.6 => /lib64/libc.so.6 (0x00007f4dced8b000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4dcfde7000)
undefined …Run Code Online (Sandbox Code Playgroud) 我的公司使用一个过时的小型集群(CentOS 5.4)来进行数字运算(更具体地说是有限元计算)。他们使用的是商业软件包,对 Linux 一无所知。只要机器运行,他们就不想改变机器上的任何东西,我认为这是一个时间有效的策略。我没有管理权限。
我可以让他们安装较小的包,但不能将例如 python 版本从 2.4 更改为 2.6+,所以我决定编译当前版本 ( ./configure --prefix=/home/mysuser/root2) 并遇到了一些依赖项问题(例如 readline、zlib、curses 的错误版本, bz2 ... 或未找到软件包)。我还需要更新抱怨缺少GMP,MPFR和MPC.
这样做的原因是我想编译其他测试软件来在这些机器上运行。我该怎么做才能有效地安装我需要的软件包以编译我需要使用的软件?我在其他地方使用archlinux并且会发现能够按照这些方式做一些事情非常方便
pacman --root /home/myuser/root2 -S <package>
Run Code Online (Sandbox Code Playgroud)
但我不知道这是否可能或聪明。
其他相关的 SE 问题:gentoo-prefix和pkgsrc似乎并不那么容易(不过我可能错了)。
所以我没有 root 权限,但我一直在将软件包安装到我的(CentOS)系统上的本地目录中,并且运行良好。
但我想知道我是否可以使用 yum 做同样的事情。我想使用 yum 的原因是因为我不想担心依赖关系,并希望 yum 为我解决这个问题。有没有办法做到这一点?
谢谢。