问题标签 [solaris-10]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
914 浏览

gcc - Solaris 10 上的 gcc 编译错误

我想编译一个源代码,但是关于__sync_xxx函数(__sync_bool_compare_and_swap等)有一些编译错误

机器上的 GCC 版本是 3.4.3(它必须是 gcc 4.1 或更高版本才能支持原子内置),所以我下载了 GCC v4.6,将其复制到另一个目录(我没有删除 v3.4.3)然后更改$PATH路径对于 GCC 但它不起作用(发生相同的错误)。

我想问一下,只是改变 gcc 路径export PATH=...足以用新的 GCC 编译吗?

0 投票
3 回答
1480 浏览

bash - PS1='$PWD $' 在 shell 脚本中不起作用

我不是 Solaris 专家,我正在尝试创建一个 shell 脚本,它将我的提示更改为 PWD,将 ksh 更改为 bash,我有这个:

PS1='$PWD $' exec bash --noprofile --rcfile /dev/null

或者

PS1='\w $' 执行 bash --noprofile --rcfile /dev/null

他们两个都不是从 sh 工作的。如果我从命令行添加它们,那么我的 bash 第一次出现在提示符上,第二次 PS1='$PWD $' 启动并且我的提示符发生变化。

首先,为什么 PS1='$PWD $' 不能从 shell script 工作。以及为什么我必须从命令行运行命令两次才能获得我的结果。

此外,在我的 export/home/syed/ 目录中有三个文件 local.login、local.profile 和 local.cshrc。有什么方法可以使用它们,当我登录时,我不需要运行我的 shell 脚本,登录后我会得到 bash shell 和我想要的提示(我要求太多了,我不喜欢 ksh没有任何功能,如向上箭头召回最后一个命令和选项卡自动完成功能)

谢谢赛义德...

0 投票
1 回答
493 浏览

jruby - 在 Solaris 上使用 JRuby 的 Rails 3.2

有没有人设法让 Rails 3.2 使用 JRuby 在 Solaris-10 上工作?

我们似乎陷入了一个令人讨厌的依赖漩涡。Rails 3.2 需要 JRuby 1.6.6 或更高版本,根据:Using JRuby with Rails 3.2

但是 JRuby 1.6.5 是最后一个可以在 Solaris 上成功安装 gems 的版本:http: //jira.codehaus.org/browse/JRUBY-6494

有没有可能有补丁或者我们没有想到的东西?

0 投票
1 回答
103 浏览

java - 如何在 Oracle VM 上运行命令

我们的 Solaris 机器中安装了 oracle 虚拟机。(我们需要只能安装在 Windows 上的 waptpro 工具)。所以,我们在 oracle 虚拟机上安装了这个工具。

现在我的 solaris 机器上有一个 java 代码。我需要从 solaris 机器上执行 waptpro 工具。如果有任何命令可以在 oracle 虚拟机上从 solaris 运行命令,我可以将其集成到我的 javacode 中

所以,如果有人知道如何在 oracle 虚拟机上从 solaris 执行命令,请告诉我。

0 投票
2 回答
6109 浏览

java - glassfish v3“无法找到请求目标的有效认证路径”

我意识到这个问题可能看起来是重复的,但我浏览过的线程似乎都没有解决或帮助我的情况。

几天来,我一直在尝试创建自签名 SSL 证书。需要该证书才能访问必须通过 HTTPS 提供 WSDL 文件的 glassfish 域。我在 Solaris 10 上使用 Glassfish 3.1.1,它不使用默认的 SSL 端口 (443)。目前,它正在使用 8181。

SSL 证书对用于访问它们的主机名非常特别。证书需要跨多个网络区域有效;因此 glassfish 域具有多个与之关联的不同 IP。据我所知,主机名(我们称之为 foobar)在服务器本身之外是不可访问的。

经过大量研究后,我决定我需要生成一个自签名证书,其中包含指示这些 IP 的主题备用名称。以下是我采取的步骤。

  1. 使用 SAN 生成证书的最简单方法是下载 Java 7,其中包括具有此功能的 keytool 实用程序。从 Oracle 网站下载 JDK 1.7.0_04 并安装在 foobar 中。

  2. 导航到 glassfish domain1 配置目录,例如 /opt/glassfish3/glassfish/domains/domain1/config

(以下内容根据 Oracle Glassfish 3.1 文档修改: http: //docs.oracle.com/cd/E18930_01/html/821-2435/ablqz.html

  1. 在密钥库中生成证书。注意:每个 glassfish 域都有自己的密钥库;下面的证书是为 domain1 生成的,它与 HTTPS 端口 8181 相关联。

    keytool -genkey -alias foobar -keyalg RSA -dname "CN=foobar, OU=xxxxxxx xxxx, O=xxxxxxxxxx, L=xxxxx xxx, S=xx, C=xx" -ext "SAN=IP:12.34.56.78,IP:99.88.77.66" -keypass changeit -storepass changeit -validity 3650 -keystore keystore.jks

  2. 将生成的证书导出到文件(在本例中为 foobar.cer)

    keytool -export -alias foobar -storepass changeit -file foobar.cer -keystore keystore.jks

  3. 将证书作为可信证书导入 cacerts。执行此操作两次,一次用于 Glassfish cacerts 文件,一次用于 foobar 上的 Java JRE cacerts 文件。

    keytool -import -v -trustcacerts -alias foobar -file foobar.cer -keypass changeit -storepass changeit -keystore cacerts.jks

    在 /usr/java/jre/lib/security 中: keytool -import -v -trustcacerts -alias foobar -file foobar.cer -keypass changeit -storepass changeit -keystore cacerts

  4. 以防万一,我还下载了证书并将其导入到将访问 HTTPS 的 Windows 工作站上的 Java JRE cacerts 文件中(可能没有必要)。

    在 C:\Program Files\Java\jre\lib\security 中: keytool -import -v -trustcacerts -alias foobar -file foobar.cer -keypass changeit -storepass changeit -keystore cacerts

  5. 重新启动 glassfish domain1。

    asadmin restart-domain domain1

  6. 重启完成后,测试连接。在我的情况下,我去我的 Windows 工作站,在那里我在 Netbeans 中加载了 Java 应用程序。我通过 HTTPS 在需要 WSDL 的地方运行测试,并https://12.34.56.78:8181作为源输入。

这给了我以下错误:

如果我改为使用域 1 的默认 Glassfish SSL 证书,则会收到一个错误,指示不存在主题备用名称。这就是为什么我首先遇到了重新生成证书的麻烦。

据我所知,将证书导入为受信任的 CA 证书应该可以解决此“无法找到有效的证书路径”错误。我承认我不是网络专家,但到目前为止我的所有研究都表明情况确实如此。我不确定这里的问题是否是因为我使用的是非标准 SSL 端口(必须添加 :8181 可能会导致与 SAN IP 不匹配)。我还没有尝试过。但是有没有办法在 CN 或 SAN 中为 IP:Port 组合生成自签名证书?

谢谢...帮助将不胜感激!

PS 如果需要,我可以提供应用程序代码。

0 投票
1 回答
1478 浏览

ruby-on-rails - 在 solaris 10 上执行 setuid 脚本时,rails 3.2.1 rails runner 失败

我们需要使用基于大型机的调度程序而不是 cron 来执行实用程序任务。此调度程序与主机上的代理通信,然后执行通用 setuid ksh 脚本,该脚本将实用程序与所需的任何参数一起作为参数执行。setuid ksh 脚本然后调用另一个脚本及其参数。

在我的例子中,下一个脚本 ( execute_something.ksh) 将一些环境变量cds 设置为 Rails 根目录,并rails runner Module.function -e <environment>在 environment 是传递的 arg 的位置执行。

所以那是:

当我像我自己一样直接调用时execute_something.ksh,它工作正常。当我调用 setuid 脚本时,出现以下错误:

/[path]/bin/rails:15:in `force_encoding': 未知编码名称 - 来自 /[path]/bin/rails:15:in main 的 BINARY (ArgumentError)

不是权限问题。所有涉及的文件要么归 setuid 用户所有,要么拥有 setgid 组的完整组权限并属于该组。(是的,矫枉过正,但这就是我得到的。)

setuid 脚本继承了我的环境(除了存在 setuid 用户的 EUID)。

此外,正在执行的 rails 脚本与安装在我的 linux 笔记本电脑上的脚本不同(我确实提到这是一个 solaris 问题)。

rails 脚本是:

这对我有用。我明确删除了对我的主目录沙箱的所有引用PATH-LD_LIBRARY_PATH它仍然适用于我,而不适用于 setuid 用户。

我无权更改全局环境中的内容 - 我必须提出请求并等待。没有办法改变模块必须执行的方式。

请有人 - 给我一些想法?我不认为这适用于很多人,但这不是一个有趣的谜题吗?

TIA。

卡里达

0 投票
2 回答
2153 浏览

c - 警告:不正确的指针/整数组合:op“=”

我在 Solaris 中编译了一个 C 程序并收到此警告。

我的代码包含

第 68 行是

结构 cmsghdr 和 CMSG_FIRSTHDR 在 socket.h 中定义为

我在我的代码中包含了 socket.h。但我仍然收到此错误。

0 投票
3 回答
2009 浏览

java - 获取 Java 中的硬链接计数

我需要一些东西来从java中的solaris10 os中的文件中获取硬链接计数。

解析 ls -l 不是一种选择。

我尝试使用 posix for java http://bmsi.com/java/posix/index.html但无法使其正常工作。

是否有任何其他轻量级 API 或代码来获取此信息?

0 投票
3 回答
1692 浏览

database - 在 Solaris 10 上安装 Oracle11g

我正在本地 sun 机器上的 Solaris 10 上安装 Oravcle 11G。我已遵循 oracle 文档中提供的所有 pre-req 步骤,但毕竟当我尝试使用 oracle 用户运行安装程序时。安装程序检查 pre-reqs 并给我以下错误:

检查监视器:必须配置为以 256 色显示。无法使用命令 /usr/openwin/bin/xdpyinfo 执行自动检查显示颜色。检查是否设置了 dsiplay 变量

设置显示变量我使用了以下命令: $DISPLAY=localhost:0.0 export DISPLAY

如果我忽略此错误继续安装,它会说:

准备从 /tmp/OraInstall2012-07-12_05-57-10PM 启动通用安装程序。请稍候...$ Xlib:服务器拒绝连接到“localhost:0.0” Xlib:客户端无权连接到服务器。

请不要让我在 sun 服务器上本地执行安装。

0 投票
2 回答
756 浏览

bash - Solaris10:如何在 inted-started bash 脚本中获取远程端 IP 地址?

在 Solaris 10 主机上,配置了一个 inetd 服务,以在它获得到预配置端口/服务的传入 TCP 连接时启动 bash 脚本。有没有办法在调用的 bash 脚本中找到远程客户端的 IP 地址?

如果我使用的是 GNU 版本的 inetd,我会使用--environment命令行标志。但是我使用的是默认的 Solaris 版本的 inetd/inetadm,它似乎不支持这个标志。有与此设置等效的 Solaris 吗?

我还假设在0 ( ) 或 1 ( )getpeername(2)上调用会返回所需的信息,但我正在运行一个 bash 脚本,我似乎没有找到一种方法来调用from bash 的等价物。fdstdinstdoutgetpeername(2)

我唯一的选择是调用 C 包装器,将getpeername(2)其存储在环境变量(或命令行参数)中,然后调用主 bash 脚本?

谢谢!