标签: software-collections

scl启用python27 bash

我遇到了一个shell脚本,它打算在Redhat 6服务器上每隔30分钟在cron上运行一次.shell脚本基本上只是一个运行python脚本的命令.

服务器上的本机版本python是2.6.6,但是这个特定脚本所需的python版本是python 2.7+.我可以使用"scl"命令在命令行上轻松运行它(此示例包含用于显示版本更改的python -V命令):

$ python -V
Python 2.6.6
$ scl enable python27 bash
$ python -V
Python 2.7.3
Run Code Online (Sandbox Code Playgroud)

此时我可以在命令行上运行python 2.7.3脚本没问题.

这是障碍.

当您发出scl enable python27 bash命令时,它会启动一个新的bash shell会话,该会话(再次)适用于交互式命令行工作.但是当在shell脚本中执行此操作时,只要它运行bash命令,脚本就会因新会话而退出.

这是失败的shell脚本:

#!/bin/bash
cd /var/www/python/scripts/
scl enable python27 bash
python runAllUpserts.py >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

它只是在它到达第4行时就会停止,因为"bash"将它从脚本中弹出并进入一个新的bash shell.所以它永远不会看到我需要它运行的实际python命令.

另外,如果每30分钟运行一次,这将每次添加一个新的bash,这是另一个问题.

由于几个原因,我不愿意立即将服务器上的本机python版本更新为2.7.3.Redhat yum repos还没有python 2.7.3,手动安装将在yum更新系统之外.根据我的理解,yum本身运行在python 2.6.x上.

这是我找到使用scl的方法的地方

http://developerblog.redhat.com/2013/02/14/setting-up-django-and-python-2-7-on-red-hat-enterprise-6-the-easy-way/

bash cron software-collections

23
推荐指数
4
解决办法
3万
查看次数

永久启用RHEL scl

有没有办法永久启用RedHat的自定义软件集合?

我已经安装了一个scl来在RHEL6中提供python27,并且不希望每次都必须启用自定义scl.

redhat rhel rhel-scl software-collections

19
推荐指数
2
解决办法
1万
查看次数

如何强制httpd使用红帽软件集合中的rh-php56

任何人都有运气从红帽软件收藏中使用rh-php56吗?

我看到有关如何在CLI中启用较新版本的php的文档...但不是为了让Apache使用通过rh-php56软件包安装的新版PHP.

(我应该澄清 - 这是RHEL 7.x盒子)

apache rhel7 software-collections

10
推荐指数
1
解决办法
2万
查看次数

(如何)我可以在Centos/RHEL上使用带有devtoolset-7的新C++ 11 ABI吗?

我的目标是在Centos 7上使用gcc 7.2(和clang 6)构建与Centos 7目标兼容的可执行文件,而不安装devtoolset,但*使用较新的C++ ABI*.

较新的ABI修复了lib中的一些缺陷,这些缺陷在没有ABI更改的情况下无法修复.例如list :: size O(1)Vs O(n),字符串没有COW.

我猜测为什么在以下问题中可能无法实现这一点. -D_GLIBCXX_USE_CXX11_ABI = 1对CentOS 7上的devtoolset-7无效

c++ c++11 devtoolset centos7 software-collections

8
推荐指数
1
解决办法
1891
查看次数

devtoolset-6 正在使用系统 libstdc++ 并且无法链接

我有一个用 gcc6 编译的第 3 方库,我需要链接它。所以我卸载了标准的 GCC 包并安装了 Software Collections devtoolset-6 包(Centos 7.4)

$ g++ -v

Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-6/root/usr/libexec/gcc/x86_64-redhat-linux/6.3.1/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-6/root/usr --mandir=/opt/rh/devtoolset-6/root/usr/share/man --infodir=/opt/rh/devtoolset-6/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --disable-libgcj --with-default-libstdcxx-abi=gcc4-compatible --with-isl=/builddir/build/BUILD/gcc-6.3.1-20170216/obj-x86_64-redhat-linux/isl-install --enable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 6.3.1 20170216 (Red Hat 6.3.1-3) (GCC)
Run Code Online (Sandbox Code Playgroud)

但是,我收到了很多与此类似的链接错误:

libcomsd.so: undefined reference to `operator delete[](void*, unsigned long)@CXXABI_1.3.9'
Run Code Online (Sandbox Code Playgroud)

这似乎是因为 devtoolset 没有附带使用新编译器编译的 libstd++ 版本,因此链接器在 /usr/lib64 中找到了使用 gcc4 编译的标准版本,因此与编译的 …

g++ software-collections

7
推荐指数
1
解决办法
3169
查看次数

scl 启用 rh-mariadb102 bash 不适用于 Ansible playbook

我是 stackoverflow 的新手...这似乎是一个与非常有趣的社区分享知识和寻找解决方案的好地方。

我对 Ansble 和“scl”“mysql_install_dir”命令有问题。

当我手动执行“scl enable rh-mariadb102 bash && mysql_install_dir ...”时,当我在服务器控制台中正确执行此操作时,它可以完美工作。

但是当我尝试在 Ansible 上构建任务时:

- name: "Execute mysql_install_db to prepare DB"
  shell: |
    scl enable rh-mariadb102 bash
    mysql_install_db --datadir=/data/{{ item.instance_name }}/db/mariadb102
  become_user: root
  with_items: "{{ vars_list }}"
Run Code Online (Sandbox Code Playgroud)

它返回错误:

“使用\“scl启用rh-mariadb102'服务...'\”调用”

这似乎 Ansible 不能很好地执行 scl enable 命令...或类似的命令。

以前有人被这个问题困扰过吗?

感谢您的帮助,并对英语不好表示歉意。

mariadb ansible software-collections

4
推荐指数
1
解决办法
4358
查看次数

如何在登录时从软件集合启用 python35?

我遵循了软件集合快速入门,现在我已经安装了 Python 3.5。如何使它始终在我的中启用~/.bashrc,以便我不必手动启用它scl enable rh-python35 bash

rhel7 software-collections

2
推荐指数
1
解决办法
4470
查看次数

如何在CentOS上安装GCC / G ++ 8

我已经习惯了在Debian / Ubuntu的发行版安装软件包,但现在我需要安装gccg++版本8 *。CentOS资料库中只有4. *版本。手动安装它们的正确方法是什么?

gcc g++ centos redhat-dts software-collections

1
推荐指数
3
解决办法
3032
查看次数

如何在Software Collections环境中控制ruby-devel的存在

我目前正在尝试在Centos 6.6机器上构建一个Ruby应用程序.通过软件集合安装了不同的Ruby堆栈.请注意,我的机器上没有root,我的权限有限,特别是它们不包括软件包安装.

本机扩展不构建.它似乎ruby-devel缺失了,但管理员告诉我它已正确安装两个堆栈:

dnf install rh-ruby22-ruby-devel.x86_64 ruby193-ruby-devel.x86_64 -y
Run Code Online (Sandbox Code Playgroud)

这是我的问题:

bob@server ~> scl enable rh-ruby22 bash
bash-4.1$ ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux-gnu]

bash-4.1$ gem install json Building native extensions.  This could take a while... ERROR:  Error installing json:
        ERROR: Failed to build gem native extension.

    /opt/rh/rh-ruby22/root/usr/bin/ruby -r ./siteconf20150625-17536-saskmd.rb extconf.rb mkmf.rb can't find header files for ruby at /opt/rh/rh-ruby22/root/usr/share/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in ~/.gem/ruby/gems/json-1.8.3 for inspection. Results logged to ~/.gem/ruby/extensions/x86_64-linux/json-1.8.3/gem_make.out …
Run Code Online (Sandbox Code Playgroud)

ruby rubygems centos software-collections

1
推荐指数
1
解决办法
2414
查看次数