检查操作系统是否为Solaris

时间:2014-05-24 01:46:03

标签: r

我需要逻辑检查计算机的操作系统是否为Solaris。换句话说,我需要一种方法来检查操作系统是否是Solaris,如果是,则返回TRUE,如果不返回FALSE。我可以轻松检查操作系统是否是Windows,Mac,Linux,因为我可以访问这些系统type(例如,“unix”,“windows”)来搜索,因为此信息通常是google-able。有点像:

.Platform$OS.type == "unix"
.Platform$OS.type == "windows"

有效且SO上还有其他方法(例如,Sys.info()["sysname"] == "Windows")。在我搜索SO和Google的过程中,我遇到了很多关于Windows,Mac,Linux的问题,但没有办法专门确定操作系统是否是Solaris。例如,这个链接导致了其重复的其他类似问题,它解决了确定操作系统的问题,但不是Solaris的逻辑检查。

How to check the OS within R

如何以编程方式确定计算机的操作系统是否为Solaris?

我可能需要更具体地了解我感兴趣的os Solaris形式(我不确定,因为我对操作系统知之甚少)。特别感兴趣的是CRAN检查中使用的Solaris系统:

  1. R-修补-solaris平台86
  2. R-修补-Solaris的SPARC

1 个答案:

答案 0 :(得分:7)

深入研究Sys.info使用的C代码,最终会调用sys/utsname.h,这应该为大多数类Unix系统(and is indeed part of the standard)定义。

查看this website,似乎Solaris使用 SunOS 作为utsname。这是一个副本,以防链接死亡:

The utsname macro
We've already seen one macro in use on a Solaris 2 system, utsname. 
As a refresher, here is how we called the utsname macro ...
Figure 12-1 Using the utsname macro

...
utsname:        sys  SunOS 

此外,Wikipedia article on uname明确指出所有Solaris系统的系统名称为 SunOS

因此,为了完整起见,您可以在函数中轻松grep

is.solaris<-function()
  grepl('SunOS',Sys.info()['sysname'])