Solaris 开发主机

pet*_*erh 3 solaris

这篇文章旨在记录如何在 Solaris 上获取开发主机。

“开发主机”是您拥有构建和编译 C 或 C++ 应用程序的所有适当工具的主机。

将诸如编译器之类的开发工具放在主机上会显着增加该主机的攻击面,因此在我看来,您不应该将它们放在面向外部世界的主机上。它们还占用一些磁盘空间。

pet*_*erh 8

有两种可能的 C/C++ 编译器可用于 Solaris。

  • GNU C/C++。这是 Linux 上最常用的编译器。它通常被称为“gcc”。它是一流的编译器,可用于 SPARC 上的 Solaris 和 X86 上的 Solaris。安装后,始终使用该gcc命令执行此编译器。

  • 索拉里斯工作室。这是 Oracle 自己的编译器。它以前称为 Sun Studio。有人说它会比 gcc 生成更快的代码,尤其是在 SPARC 上。如果您选择此编译器,请在编译其他人代码时准备一些警告。这是因为如今大多数代码都是使用 gcc 编译器开发的,而 gcc 编译器让 C/C++ 开发人员可以摆脱更多肮脏的技巧,而无需将它们标记为此类。另一方面,Solaris Studio 编译器对于被视为糟糕甚至非标准的编码风格则更加喋喋不休。只需忽略来自 Solaris Studio 编译器的此类警告。很多很多年前,这个编译器会花钱。今天,它可以根据“Oracle Solaris Studio OTN 开发人员许可协议”从 Oracle 中免费下载——虽然不是完全“免费”cc 命令。

在大多数情况下,GNU C/C++ 编译器就足够了,并且是您所需要的。

Solaris 10

GNU C/C++

它已经安装,但它存在于/usr/sfw/bin. 人们最常犯的错误是认为它没有安装,因为他们在他们的 PATH 中找不到它。让/usr/sfw/bin您的路径的一部分后,你的PATH的其他元素。

索拉里斯工作室

默认情况下不安装它。按照此处找到的说明进行操作。你具有root权限才能安装。

其他

GNU化妆也默认情况下,在Solaris 10上它也住在安装/usr/sfw/bin和被调用gmake

Solaris 11

GNU C/C++

默认情况下不安装它。到目前为止,最简单的是使用 IPS 使用以下命令安装它(同时是 root 或其他超级用户):

pkg install pkg://solaris/developer/build/gnu-make
pkg 安装 pkg://solaris/developer/build/make
pkg 安装 pkg://solaris/developer/gcc-45
pkg install pkg://solaris/system/header
pkg 安装 pkg://solaris/developer/build/autoconf
pkg install pkg://solaris/developer/build/automake-110
pkg install pkg://solaris/developer/build/libtool # GNU libtool

这将为您提供构建各种开源软件包通常所需的所有工具。

请注意,某些软件包在软件包名称本身中有一个版本号,例如gcc-45. 您甚至可以在软件包存储库中找到更高版本,例如对于 Solaris 11.2 Beta,您会发现您可以选择 GCC 4.5、4.7 或 4.8。这同样适用于 automake,它现在也在 v1.11 中可用。

索拉里斯工作室

默认情况下不安装它。按照此处找到的说明进行操作。您可以选择通过 IPS 安装(我认为这是最简单的,尽管它确实需要您添加另一个 IPS 存储库和证书……所有这些都记录在链接中)。您也可以通过 tarball 安装,在这种情况下您不必是超级用户。




在 Solaris 上构建软件包时的一般建议

所以您从 Internet 上获取了一个软件包,现在想在 Solaris 上构建它?以下是一些一般性建议:

  • 总是使用GNU tar解压,不要使用 Solaris 自己的tar. 所以做gtar xf foo.tar而不是tar xf foo.tar什么。是的,在 99.99% 的情况下,Solaris 的 tar 对您来说都可以正常工作,但两者之间存在一些细微差别,例如,如果 tar 文件包含软链接。

  • 使用GNU make而不是 Solaris'make例如,当您被告知这样做时:make allthen 改为 do MAKE=gmake gmake all

  • 使用 GNU C/C++ 构建而不是使用 Solaris Studio 通常会少一些麻烦,因为 makefile 和编译选项等可能只用 GNU C/C++ 编译器测试过。

  • 可能更多要添加到此列表中。保持这些评论。