Centos 在服务器上使用/安装库,不使用sudo

Centos 在服务器上使用/安装库,不使用sudo,centos,shared-libraries,phantomjs,freetype,fontconfig,Centos,Shared Libraries,Phantomjs,Freetype,Fontconfig,我的帐户允许我访问ssh,但没有sudo,因此我无法使用yum(它是CentOS服务器) 我想运行一个依赖于的脚本,但它失败了,显然是因为我没有访问freetype和fontconfig的权限。联系他们,他们告诉我了 听起来我们需要两个字体库,但因为这不是我们为您提供的软件,所以对它的支持是有限的 当问到是否没有办法时,他们回答说 这是可能的,但我们不会为您提供任何支持或设置它 因此,我的问题是如何独立安装这些库(最好是已经编译/准备好的库),并让phantomjs使用它们?如果您自己无法运行Y

我的帐户允许我访问
ssh
,但没有
sudo
,因此我无法使用
yum
(它是CentOS服务器)

我想运行一个依赖于的脚本,但它失败了,显然是因为我没有访问
freetype
fontconfig
的权限。联系他们,他们告诉我了

听起来我们需要两个字体库,但因为这不是我们为您提供的软件,所以对它的支持是有限的

当问到是否没有办法时,他们回答说

这是可能的,但我们不会为您提供任何支持或设置它


因此,我的问题是如何独立安装这些库(最好是已经编译/准备好的库),并让phantomjs使用它们?

如果您自己无法运行YUM来安装软件包,听起来您需要宿主公司的帮助。在Linux中,除非您可以sudo或成为root用户,否则无法安装任何东西。如果他们不帮你(听上去),那么我会转向VPS而不是共享主机。这将使您能够灵活地运行YUM并在管理级别对服务器进行所需的更改

*他们不会给你在共享机器上的sudo或root级别访问权限的原因是因为你在这一点上拥有管理权限,可以访问该服务器上任何人的数据,甚至可以更改配置,比如说。。。网卡、存储器等


来源:在一家大型托管公司工作多年,一种可能是将所需的辅助库加载到一个“私有”位置,然后更改程序的标题以搜索该位置

模拟您的目标环境
  • 在运行与托管公司相同的CentOS构建的您自己的计算机上安装VM。这意味着相同的CentOS版本和相同的CPU体系结构。(
    cat/etc/*-release
    应该为您提供一条信息;
    uname-a
    将为您提供另一条信息。具体地说,您希望确保您有一个类似/相同的C库版本;
    /lib/libc.so.?
    应该是可执行的,并为您提供有关正在使用的C库的一些详细信息。)
  • 在虚拟主机上使用YUM安装必要的软件包
  • 确保二进制可执行文件工作正常
找出目标环境缺少什么
  • 运行
    ldd/usr/bin/your app
    以获取它所引用的库的列表。 具体而言,要清理该列表: ldd/usr/bin/your app | cut-d'('-f1 | cut-d'>'-f2 | sed-e's、[\t]、g'| sort | uniq>my required libs

  • 登录到远程服务器并复制文件;然后运行类似以下操作:

      mv ~/my-app/bin/my-app ~/my-app/bin/my-app.real
    
    #!/bin/sh

    缺少LIB 对于美元的lib(<我的所需lib) 做 如果[-f“$lib”] 然后 回显“OK$lib” 其他的 回应“没有$lib” echo“$lib”>>缺少lib fi 完成


  • 缺少的libs
    复制回您的虚拟主机和
    mkdir
    一个名为
    ~/my app/lib
    的文件夹;然后
    cp$(我当然理解他们为什么不这么做,但这并不意味着不能这么做。通过
    yum
    提供的软件可以在没有root访问权限的情况下手动安装,它们只是锁定到单个用户(这里没有问题)。我不需要
    yum
    ,我只需要那些库-我要问的是如何安装它们。您是否尝试过从源代码构建它?它可能会让您这样做,这取决于有什么安全设置。下一个问题是,如果他们说它存在,它是否会显示在phpinfo中?例如:FreeType支持=>启用FreeType Linkage=>with freetype freetype Version=>2.3.7是的,freetype显示在phpinfo中。我没有尝试从源代码处编译,主要是因为我不知道以后该怎么处理它们(如何/在哪里设置它们,以便phantomjs看到和使用它们)。我已经多年没有使用虚拟机了,甚至那时只有VMWare(简单地说)还有Virtualbox。虚拟机不会使用很多资源吗?可能有一些我不知道的虚拟机解决方案。我在想一些类似的东西,但似乎它也需要sudo。为什么你说
    chroot
    对此不友好(除了它也需要sudo,所以无论如何它都不会工作)?我成功地使用了此解决方案的一个变体,这确实帮助我实现了目标。谢谢抱歉,澄清一下,虚拟机是本地计算机上的临时设备,假设您没有备用计算机可用于模拟系统。是的,
    sudo
    chroot
    在这里很难使用的原因,以及g有时在监狱外运行
    chroot
    ed应用程序
      #!/bin/sh
      export LD_LIBRARY_PATH=/home/myself/my-app/lib
      exec /home/myself/my-app/bin/my-app.real