https://github.com/irods/irods_client_icommands
https://github.com/irods/irods_client_icommands
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/irods/irods_client_icommands
- Owner: irods
- Created: 2016-03-25T17:32:43.000Z (over 10 years ago)
- Default Branch: main
- Last Pushed: 2025-04-10T16:55:43.000Z (over 1 year ago)
- Last Synced: 2025-04-12T03:15:04.286Z (over 1 year ago)
- Language: C++
- Size: 773 KB
- Stars: 11
- Watchers: 13
- Forks: 30
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# iRODS Client - iCommands
This repository hosts the client iCommands, the default command line interface to iRODS.
The client iCommands are released as a single package called `irods-icommands` in the repository at https://packages.irods.org/
Once the repository is configured, the `irods-icommands` package can be installed via the package manager on any supported OS.
## Build
To build the iCommands, you will need the `irods-dev` and `irods-runtime` packages.
This is a CMake project and can be built with:
```
cd irods_client_icommands
mkdir build
cd build
cmake -GNinja ../
ninja package
```
## Install
The packages produced by CMake will install the ~50 iCommands, by default, into `/usr/bin`.
## Build without any Package Repositories
If you need to build the iRODS iCommands without the use of any APT/YUM repositories, it will be necessary
to build all the dependencies yourself. The steps include:
1. Download, build, and install packages from https://github.com/irods/externals
2. Update your `PATH` to include the newly built CMake
3. Download, build, and install `irods-dev(el)` and `irods-runtime` from https://github.com/irods/irods
4. Download, build, and install `irods-icommands` from https://github.com/irods/irods_client_icommands
Our dependency chain will shorten as older distributions age out.
The current setup supports new C++ features on those older distributions.
## Userspace Packaging
A `userspace-tarball` buildsystem target is provided to generate a userspace tarball package. This package
will contain the iCommands and all required library dependencies.
See `packaging/userspace/build_and_package.example.sh` for an example of how to build and package the
iCommands for userspace deployment.
### Build Dependencies
The userspace packager needs a few extra packages to work properly:
- Required: Python 3.6+.
- Required: `setuptools` Python 3 package.
- Available as `python3-setuptools` via yum/apt on Centos 7/Ubuntu.
- Available as `setuptools` on PyPI.
- Recommended: `distro` Python 3 module.
- Required for Python 3.8+.
- Available as `python3-distro` via apt on Ubuntu 18.04+.
- Available as `python36-distro` via yum on Centos 7.
- Available as `distro` on PyPI.
- Recommended: `lief` Python 3 module, version 0.10.0+ (preferably 0.11.0+).
- Available as `lief` on PyPI.
- Recommended: `chrpath` tool
- Available as `chrpath` via yum/apt on Centos/Ubuntu.
If you've got `pip`, the following one-liner should get all the Python dependencies installed:
```sh
python3 -m pip install lief setuptools distro
```