How To Install odcs on Fedora 36

In this tutorial we learn how to install odcs in Fedora 36. odcs is The On Demand Compose Service

Introduction

In this tutorial we learn how to install odcs on Fedora 36.

What is odcs

The On Demand Compose Service (ODCS) creates temporary composes using Pungi tool and manages their lifetime. The composes can be requested by external services or users using the REST API provided by Flask frontend.

We can use yum or dnf to install odcs on Fedora 36. In this tutorial we discuss both methods but you only need to choose one of method to install odcs.

Install odcs on Fedora 36 Using dnf

Update yum database with dnf using the following command.

sudo dnf makecache --refresh

After updating yum database, We can install odcs using dnf by running the following command:

sudo dnf -y install odcs

Install odcs on Fedora 36 Using yum

Update yum database with yum using the following command.

sudo yum makecache --refresh

After updating yum database, We can install odcs using yum by running the following command:

sudo yum -y install odcs

How To Uninstall odcs on Fedora 36

To uninstall only the odcs package we can use the following command:

sudo dnf remove odcs

odcs Package Contents on Fedora 36

/etc/odcs
/etc/odcs/config.py
/etc/odcs/pungi.conf
/etc/odcs/raw_config_wrapper.conf
/usr/bin/odcs-frontend
/usr/bin/odcs-gencert
/usr/bin/odcs-manager
/usr/bin/odcs-mock-runroot
/usr/bin/odcs-promote-compose
/usr/lib/python3.10/site-packages/odcs/server
/usr/lib/python3.10/site-packages/odcs/server/__init__.py
/usr/lib/python3.10/site-packages/odcs/server/__pycache__
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/__init__.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/__init__.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/api_utils.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/api_utils.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/auth.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/auth.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/backend.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/backend.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/cache.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/cache.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/celery_tasks.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/celery_tasks.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/comps.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/comps.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/config.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/config.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/errors.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/errors.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/events.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/events.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/logger.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/logger.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/manage.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/manage.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/mbs.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/mbs.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/mergerepo.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/mergerepo.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/messaging.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/messaging.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/metrics.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/metrics.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/mock_runroot.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/mock_runroot.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/models.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/models.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/proxy.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/proxy.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/pulp.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/pulp.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/pungi.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/pungi.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/pungi_compose.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/pungi_compose.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/utils.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/utils.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/views.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/__pycache__/views.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/api_utils.py
/usr/lib/python3.10/site-packages/odcs/server/auth.py
/usr/lib/python3.10/site-packages/odcs/server/backend.py
/usr/lib/python3.10/site-packages/odcs/server/cache.py
/usr/lib/python3.10/site-packages/odcs/server/celery_tasks.py
/usr/lib/python3.10/site-packages/odcs/server/comps.py
/usr/lib/python3.10/site-packages/odcs/server/config.py
/usr/lib/python3.10/site-packages/odcs/server/errors.py
/usr/lib/python3.10/site-packages/odcs/server/events.py
/usr/lib/python3.10/site-packages/odcs/server/logger.py
/usr/lib/python3.10/site-packages/odcs/server/manage.py
/usr/lib/python3.10/site-packages/odcs/server/mbs.py
/usr/lib/python3.10/site-packages/odcs/server/mergerepo.py
/usr/lib/python3.10/site-packages/odcs/server/messaging.py
/usr/lib/python3.10/site-packages/odcs/server/metrics.py
/usr/lib/python3.10/site-packages/odcs/server/migrations
/usr/lib/python3.10/site-packages/odcs/server/migrations/README
/usr/lib/python3.10/site-packages/odcs/server/migrations/__pycache__
/usr/lib/python3.10/site-packages/odcs/server/migrations/__pycache__/env.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/__pycache__/env.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/alembic.ini
/usr/lib/python3.10/site-packages/odcs/server/migrations/env.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/script.py.mako
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/0571a5ca58a0_add_index_to_compose_state.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/0d4d8e1cfe29_create_user_model.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/11b350234051_.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/16e08da18b49_add_compose_base_module_stream_version.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/3b92820da295_add_index_to_compose_time_to_expire.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/4514febd31fa_add_builds.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/512890e6864d_add_compose_scratch_modules.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/566733ac3811_.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/59baece89746_add_compose_base_module_br_name_stream.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/7b143656694f_.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/812f2745248f_.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/82172e6a3154_.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/0571a5ca58a0_add_index_to_compose_state.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/0571a5ca58a0_add_index_to_compose_state.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/0d4d8e1cfe29_create_user_model.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/0d4d8e1cfe29_create_user_model.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/11b350234051_.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/11b350234051_.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/16e08da18b49_add_compose_base_module_stream_version.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/16e08da18b49_add_compose_base_module_stream_version.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/3b92820da295_add_index_to_compose_time_to_expire.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/3b92820da295_add_index_to_compose_time_to_expire.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/4514febd31fa_add_builds.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/4514febd31fa_add_builds.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/512890e6864d_add_compose_scratch_modules.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/512890e6864d_add_compose_scratch_modules.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/566733ac3811_.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/566733ac3811_.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/59baece89746_add_compose_base_module_br_name_stream.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/59baece89746_add_compose_base_module_br_name_stream.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/7b143656694f_.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/7b143656694f_.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/812f2745248f_.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/812f2745248f_.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/82172e6a3154_.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/82172e6a3154_.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/a855c39e2a0f_store_celery_task_id.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/a855c39e2a0f_store_celery_task_id.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/a8e259e0208c_add_compose_state_reason.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/a8e259e0208c_add_compose_state_reason.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/b00f3b6efaed_.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/b00f3b6efaed_.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/b2725d046624_.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/b2725d046624_.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/b75ad2afc207_.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/b75ad2afc207_.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/c1b7e84ff39b_.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/c1b7e84ff39b_.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/c370b90de998_add_index_on_compose_source_type_and_.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/c370b90de998_add_index_on_compose_source_type_and_.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/ca08065687c4_.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/ca08065687c4_.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/cd0781bbdab1_.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/cd0781bbdab1_.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/d1da07e15c54_.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/d1da07e15c54_.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/de0a86d7de49_.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/de0a86d7de49_.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/e186faabdafe_.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/e186faabdafe_.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/e2163db7b15d_.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/e2163db7b15d_.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/f24a36cc8a16_add_index_on_compose_reused_id.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/f24a36cc8a16_add_index_on_compose_reused_id.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/f4bc999818d7_add_compose_removed_by.cpython-310.opt-1.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/__pycache__/f4bc999818d7_add_compose_removed_by.cpython-310.pyc
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/a855c39e2a0f_store_celery_task_id.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/a8e259e0208c_add_compose_state_reason.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/b00f3b6efaed_.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/b2725d046624_.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/b75ad2afc207_.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/c1b7e84ff39b_.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/c370b90de998_add_index_on_compose_source_type_and_.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/ca08065687c4_.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/cd0781bbdab1_.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/d1da07e15c54_.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/de0a86d7de49_.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/e186faabdafe_.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/e2163db7b15d_.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/f24a36cc8a16_add_index_on_compose_reused_id.py
/usr/lib/python3.10/site-packages/odcs/server/migrations/versions/f4bc999818d7_add_compose_removed_by.py
/usr/lib/python3.10/site-packages/odcs/server/mock_runroot.py
/usr/lib/python3.10/site-packages/odcs/server/models.py
/usr/lib/python3.10/site-packages/odcs/server/proxy.py
/usr/lib/python3.10/site-packages/odcs/server/pulp.py
/usr/lib/python3.10/site-packages/odcs/server/pungi.py
/usr/lib/python3.10/site-packages/odcs/server/pungi_compose.py
/usr/lib/python3.10/site-packages/odcs/server/templates
/usr/lib/python3.10/site-packages/odcs/server/templates/index.html
/usr/lib/python3.10/site-packages/odcs/server/utils.py
/usr/lib/python3.10/site-packages/odcs/server/views.py
/usr/lib/systemd/system/odcs-backend.service
/usr/share/doc/odcs
/usr/share/doc/odcs/README.md
/usr/share/licenses/odcs
/usr/share/licenses/odcs/LICENSE
/usr/share/man/man1/odcs-frontend.1.gz
/usr/share/man/man1/odcs-gencert.1.gz
/usr/share/man/man1/odcs-manager.1.gz
/usr/share/odcs
/usr/share/odcs/odcs.wsgi

References

Summary

In this tutorial we learn how to install odcs on Fedora 36 using yum and [dnf]((/fedora/36/dnf/).