irods installation on centos7: # rpm --import https://packages.irods.org/irods-signing-key.asc # wget -qO - https://packages.irods.org/renci-irods.yum.repo | sudo tee /etc/yum.repos.d/renci-irods.yum.repo # yum install irods-server irods-database-plugin-postgres # yum install postgresql-server # postgresql-setup initdb Initializing database ... OK # systemctl start postgresql # su - postgres Last login: Fri Oct 26 11:30:44 CEST 2018 on pts/0 $ psql psql (9.2.24) Type "help" for help. postgres=# CREATE USER irods WITH PASSWORD 'ir0ds'; CREATE ROLE postgres=# CREATE DATABASE "ICAT"; CREATE DATABASE postgres=# GRANT ALL PRIVILEGES ON DATABASE "ICAT" TO irods; GRANT postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- ICAT | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres + | | | | | postgres=CTc/postgres+ | | | | | irods=CTc/postgres postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) # python /var/lib/irods/scripts/setup_irods.py The iRODS service account name needs to be defined. iRODS user [irods]: iRODS group [irods]: +--------------------------------+ | Setting up the service account | +--------------------------------+ Existing Group Detected: irods Existing Account Detected: irods Setting owner of /var/lib/irods to irods:irods Setting owner of /etc/irods to irods:irods iRODS server's role: 1. provider 2. consumer Please select a number or choose 0 to enter a new value [1]: Updating /etc/irods/server_config.json... +-----------------------------------------+ | Configuring the database communications | +-----------------------------------------+ You are configuring an iRODS database plugin. The iRODS server cannot be started until its database has been properly configured. ODBC driver for postgres [PostgreSQL]: Database server's hostname or IP address [localhost]: Database server's port [5432]: Database name [ICAT]: Database username [irods]: ------------------------------------------- Database Type: postgres ODBC Driver: PostgreSQL Database Host: localhost Database Port: 5432 Database Name: ICAT Database User: irods ------------------------------------------- Please confirm [yes]: Database password: Updating /etc/irods/server_config.json... Error encountered running setup_irods: Traceback (most recent call last): File "/var/lib/irods/scripts/setup_irods.py", line 437, in main setup_server(irods_config, json_configuration_file=options.json_configuration_file) File "/var/lib/irods/scripts/setup_irods.py", line 116, in setup_server database_interface.setup_database_config(irods_config) File "/var/lib/irods/scripts/irods/database_interface.py", line 176, in setup_database_config if database_already_in_use_by_irods(irods_config): File "/var/lib/irods/scripts/irods/database_interface.py", line 73, in database_already_in_use_by_irods with contextlib.closing(database_connect.get_database_connection(irods_config)) as connection: File "/var/lib/irods/scripts/irods/database_connect.py", line 218, in get_database_connection sys.exc_info()[2]) File "/var/lib/irods/scripts/irods/database_connect.py", line 201, in get_database_connection return pypyodbc.connect(connection_string.encode('ascii'), ansi=True) File "/var/lib/irods/scripts/irods/pypyodbc.py", line 2452, in __init__ self.connect(connectString, autocommit, ansi, timeout, unicode_results, readonly) File "/var/lib/irods/scripts/irods/pypyodbc.py", line 2501, in connect check_success(self, ret) File "/var/lib/irods/scripts/irods/pypyodbc.py", line 988, in check_success ctrl_err(SQL_HANDLE_DBC, ODBC_obj.dbc_h, ret, ODBC_obj.ansi) File "/var/lib/irods/scripts/irods/pypyodbc.py", line 966, in ctrl_err raise DatabaseError(state,err_text) IrodsError: pypyodbc encountered an error connecting to the database: ('28000', '[28000] [unixODBC]FATAL: Ident authentication failed for user "irods"') Exiting... # vi /var/lib/pgsql/data/pg_hba.conf: host all all 127.0.0.1/32 md5 # systemctl restart postgresql # python /var/lib/irods/scripts/setup_irods.py The iRODS service account name needs to be defined. iRODS user [irods]: iRODS group [irods]: +--------------------------------+ | Setting up the service account | +--------------------------------+ Existing Group Detected: irods Existing Account Detected: irods Setting owner of /var/lib/irods to irods:irods Setting owner of /etc/irods to irods:irods iRODS server's role: 1. provider 2. consumer Please select a number or choose 0 to enter a new value [1]: Updating /etc/irods/server_config.json... +-----------------------------------------+ | Configuring the database communications | +-----------------------------------------+ You are configuring an iRODS database plugin. The iRODS server cannot be started until its database has been properly configured. ODBC driver for postgres [PostgreSQL]: Database server's hostname or IP address [localhost]: Database server's port [5432]: Database name [ICAT]: Database username [irods]: ------------------------------------------- Database Type: postgres ODBC Driver: PostgreSQL Database Host: localhost Database Port: 5432 Database Name: ICAT Database User: irods ------------------------------------------- Please confirm [yes]: Database password: Updating /etc/irods/server_config.json... Listing database tables... Salt for passwords stored in the database: Updating /etc/irods/server_config.json... +--------------------------------+ | Configuring the server options | +--------------------------------+ iRODS server's zone name [tempZone]: testZone iRODS server's port [1247]: iRODS port range (begin) [20000]: iRODS port range (end) [20199]: Control Plane port [1248]: Schema Validation Base URI (or off) [file:///var/lib/irods/configuration_schemas]: iRODS server's administrator username [rods]: irods ------------------------------------------- Zone name: testZone iRODS server port: 1247 iRODS port range (begin): 20000 iRODS port range (end): 20199 Control plane port: 1248 Schema validation base URI: file:///var/lib/irods/configuration_schemas iRODS server administrator: irods ------------------------------------------- Please confirm [yes]: yes iRODS server's zone key: Zone key must be at least 1 character in length. iRODS server's zone key: iRODS server's negotiation key (32 characters): Negotiation key must be exactly 32 characters in length. iRODS server's negotiation key (32 characters): Control Plane key (32 characters): Updating /etc/irods/server_config.json... +-----------------------------------+ | Setting up the client environment | +-----------------------------------+ iRODS server's administrator password: Updating /var/lib/irods/.irods/irods_environment.json... +--------------------------+ | Setting up default vault | +--------------------------+ iRODS Vault directory [/var/lib/irods/Vault]: +-------------------------+ | Setting up the database | +-------------------------+ Listing database tables... Creating database tables... +-------------------+ | Starting iRODS... | +-------------------+ Validating [/var/lib/irods/.irods/irods_environment.json]... Success Validating [/var/lib/irods/VERSION.json]... Success Validating [/etc/irods/server_config.json]... Success Validating [/etc/irods/host_access_control_config.json]... Success Validating [/etc/irods/hosts_config.json]... Success Ensuring catalog schema is up-to-date... Updating to schema version 2... Updating to schema version 3... Updating to schema version 4... Updating to schema version 5... Catalog schema is up-to-date. Starting iRODS server... Success +---------------------+ | Attempting test put | +---------------------+ Putting the test file into iRODS... Getting the test file from iRODS... Removing the test file from iRODS... Success. +--------------------------------+ | iRODS is installed and running | +--------------------------------+