我在Centos7系统上使用singularity,但在无法理解的类似许可问题上却封锁了。
(这是我自己制作的可在Ubuntu系统上完美运行的离心机/离心机容器)
singularity exec /HOMEPATH/Singularity/centrifuge_recentrifuge.simg centrifuge -x /HOMEPATH/Centrifuge/bacteria-database-centrifuge -1 /HOMEPATH/work_directory/centrifuge_recentrifuge/reads/TTOTO_R1_001.fastq.gz -2 /HOMEPATH/work_directory/centrifuge_recentrifuge/reads/TOTO_R2_001.fastq.gz -S /HOMEPATH/work_directory/centrifuge_recentrifuge/classification_result --report-file /HOMEPATH/work_directory/centrifuge_recentrifuge/classification_summary
Error: Could not open alignment output file /HOMEPATH/work_directory/centrifuge_recentrifuge/classification_result
Error: Encountered internal Centrifuge exception (#1)
Command: /usr/local/bin/centrifuge-class --wrapper basic-0 -x /HOMEPATH/Centrifuge/bacteria-database-centrifuge -S /HOMEPATH/work_directory/centrifuge_recentrifuge/classification_result --report-file /HOMEPATH/work_directory/centrifuge_recentrifuge/classification_summary -1 /tmp/229778.inpipe1 -2 /tmp/229778.inpipe2
(ERR): centrifuge-class exited with value 1
似乎奇异性不能写tmp文件或写classification_result
文件,也不能两者都写:/
ls -Z /HOMEPATH/work_directory/centrifuge_recentrifuge/
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 reads
ls -Z /HOMEPATH/work_directory/centrifuge_recentrifuge/reads/
-rw-r--r--. root root system_u:object_r:httpd_sys_content_t:s0 TOTO_R1_001.fastq.gz
-rw-r--r--. root root system_u:object_r:httpd_sys_content_t:s0 TOTO_R2_001.fastq.gz
ls -Z centrifuge_recentrifuge
drwxr-xr-x. apache apache system_u:object_r:httpd_sys_content_t:s0 reads
ls -Z centrifuge_recentrifuge/reads/
-rw-r--r--. apache apache system_u:object_r:httpd_sys_content_t:s0 TOTO_R1_001.fastq.gz
-rw-r--r--. apache apache system_u:object_r:httpd_sys_content_t:s0 TOTO_R2_001.fastq.gz
错误仍然相同...
我在tmp文件夹上制作了一个sudo chown -R apache:apache /tmp
,但没有生效:/
答案 0 :(得分:1)
ls -Z /HOMEPATH/work_directory/centrifuge_recentrifuge/
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 reads
这表示centrifuge_recentrifuge
目录的唯一所有者有权在该目录中创建项目,该目录的所有者为用户root
。因此,只有root
可以在该目录中创建项目。
大概您在以singularity
登录时没有运行root
程序,这就是为什么该程序无法创建classification_result
文件的原因。如果可以做到的话,它也将无法创建classification_summary
文件。
我不知道您是否有特殊的理由将这个目录归root
所有。如果这样做,则该程序能够创建这些文件的唯一方法是以root
用户身份运行该文件。当然,使用root
帐户进行系统管理以外的其他操作通常是一个坏主意。
通常的方法是将HOMEPATH
目录及其下面的所有内容归创建该特定root
的个人(非HOMEPATH
)用户所有。在此模型中,该个人用户将是centrifuge_recentrifuge
目录的所有者,因此,如果以该用户身份登录后运行singularity
程序,它将能够在该目录中创建所需的任何文件。
要从现在的状态开始,要更改HOMEPATH
的所有权及其下的所有内容,可以以root
身份登录(或使用sudo
),然后运行:
chown -R myuser /HOMEPATH
其中myuser
是以HOMEPATH
作为其主目录的帐户的用户名。
这足以让程序运行。但是,为了完整起见,您还应该更改HOMEPATH
的组所有权及其下的所有内容,以匹配单个用户的组。为此,请运行:
chown -R myuser:mygroup /HOMEPATH
其中mygroup
是包含用户myuser
的组。如果您不知道该组名应该是什么,请以myuser
登录并运行id -ng
命令。组名通常与用户名相同,因此,如果该id
命令的结果与myuser
相同,请不要感到惊讶。在某些系统上,您可以运行:
chown -R myuser: /HOMEPATH
,在:
之后只有一个冒号myuser
,该命令将为您找出组名。如果这在您的系统上可行,那么您就不需要进行id -ng
跳舞了。