{"id":17867,"date":"2022-07-18T08:27:24","date_gmt":"2022-07-18T06:27:24","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=17867"},"modified":"2022-11-28T09:12:35","modified_gmt":"2022-11-28T08:12:35","slug":"setup-a-rhel-8-repository-server","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/","title":{"rendered":"Setup a RHEL 8 Repository Server"},"content":{"rendered":"\n<p>This Blog is about a own Repository server for RHEL 8, Blogs for Repository Server for AlmaLinux, Oracle Linux, Rocky Linux, OpenSuse LEAP, SLES 15 and Debian 11 will follow.<\/p>\n\n\n\n<p>The base is a minimal installation.<br>I have added EPEL and RPMFusion, may be that Desktpp systems also needed to be updated or systems with packages from EPEL.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ &#91;root@rhel-8-repo ~]# cat \/etc\/os-release \n$ NAME=\"Red Hat Enterprise Linux\"\n$ VERSION=\"8.6 (Ootpa)\"\n$ ID=\"rhel\"\n$ ID_LIKE=\"fedora\"\n$ VERSION_ID=\"8.6\"\n$ PLATFORM_ID=\"platform:el8\"\n$ PRETTY_NAME=\"Red Hat Enterprise Linux 8.6 (Ootpa)\"\n$ ANSI_COLOR=\"0;31\"\n$ CPE_NAME=\"cpe:\/o:redhat:enterprise_linux:8::baseos\"\n$ HOME_URL=\"https:\/\/www.redhat.com\/\"\n$ DOCUMENTATION_URL=\"https:\/\/access.redhat.com\/documentation\/red_hat_enterprise_linux\/8\/\"\n$ BUG_REPORT_URL=\"https:\/\/bugzilla.redhat.com\/\"\n$ \n$ REDHAT_BUGZILLA_PRODUCT=\"Red Hat Enterprise Linux 8\"\n$ REDHAT_BUGZILLA_PRODUCT_VERSION=8.6\n$ REDHAT_SUPPORT_PRODUCT=\"Red Hat Enterprise Linux\"\n$ REDHAT_SUPPORT_PRODUCT_VERSION=\"8.6\"\n&#91;$ root@rhel-8-repo ~]# <\/code><\/pre>\n\n\n\n<p>As any RHEL Systems that this will work it is madatory that the system is attached to a subscription.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@rhel-8-repo ~]# subscription-manager register\nRegistering to: subscription.rhsm.redhat.com:443\/subscription\nUsername: XXXXXXXXXXXXXXXXXX\nPassword: \nThe system has been registered with ID: XXXXXXXXXXX\nThe registered system name is: rhel-8-repo.localdomain\n&#91;root@rhel-8-repo ~]# <\/code><\/pre>\n\n\n\n<p>Now we can add EPEL and RPMFusion, first ist EPEL, it is required for RPMFusion.<br>For EPEL we need to enable codeready-builder first.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@rhel-8-repo ~]# subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms\nRepository 'codeready-builder-for-rhel-8-x86_64-rpms' is enabled for this system.\n&#91;root@rhel-8-repo ~]# dnf install https:\/\/dl.fedoraproject.org\/pub\/epel\/epel-release-latest-8.noarch.rpm<\/code><\/pre>\n\n\n\n<p>Now we can add RPMFusion.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@rhel-8-repo ~]# dnf install --nogpgcheck https:\/\/dl.fedoraproject.org\/pub\/epel\/epel-release-latest-$(rpm -E %rhel).noarch.rpm\nroot@rhel-8-repo ~]# dnf install --nogpgcheck https:\/\/mirrors.rpmfusion.org\/free\/el\/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm https:\/\/mirrors.rpmfusion.org\/nonfree\/el\/rpmfusion-nonfree-release-$(rpm -root@rhel-8-repo ~]# E %rhel).noarch.rpm<\/code><\/pre>\n\n\n\n<p>I&#8217;m using NGINX as HTTP service, and we need yum-utils createrepo_c for the sync functionality, so we need to install them.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@rhel-8-repo ~]# dnf install nginx yum-utils createrepo_c<\/code><\/pre>\n\n\n\n<p>For synchronizig repositories I have written a script where the Relase number can be given as parameter.<br>The reason is that sometimes it is required having more than one Release availiable. We alo need to know which repositories are active.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@rhel-8-repo \/]# dnf repolist\nUpdating Subscription Management repositories.\nrepo id                                                                                                                              repo name\ncodeready-builder-for-rhel-8-x86_64-rpms                                                                                             Red Hat CodeReady Linux Builder for RHEL 8 x86_64 (RPMs)\nepel                                                                                                                                 Extra Packages for Enterprise Linux 8 - x86_64\nepel-modular                                                                                                                         Extra Packages for Enterprise Linux Modular 8 - x86_64\nrhel-8-for-x86_64-appstream-rpms                                                                                                     Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)\nrhel-8-for-x86_64-baseos-rpms                                                                                                        Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)\nrpmfusion-free-updates                                                                                                               RPM Fusion for EL 8 - Free - Updates\nrpmfusion-nonfree-updates                                                                                                            RPM Fusion for EL 8 - Nonfree - Updates\n&#91;root@rhel-8-repo \/]#<\/code><\/pre>\n\n\n\n<p>With this information we can write a sync sript.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@rhel-8-repo \/]# cat \/opt\/reposync\/reposync.sh \n##############################################\n# Synchronisation of RHEL Repositories       #\n# By Karsten Lenz dbi-services sa 2022.06.29 #\n##############################################\n\n#!\/bin\/bash\n\necho \"Synchronisation of RHEL Repositores\"\necho \"\"\n\n# Help\nfunction printHelp() {\n  printf \"Usage:\\n\"\n  printf \"${progName} &#91;OPTION]\\n\\n\"\n  printf \"Options:\\n\"\n  printf \"\\t -v &lt;RHEL Version&gt;\\t\\tRHEL Release (required)\\n\"\n  printf \"\\t -h &lt;Help&gt;\\t\\t\\tprints this help\\n\"\n}\n\n# Select Options\nwhile getopts v:h option 2&gt;\/dev\/null\ndo\n  case \"${option}\"\n  in\n  v) VERSION=${OPTARG};;\n  h) printHelp; exit 2;;\n  *) printf \"Unsupported option or parameter value missing '$*'\\n\";\n     printf \"Run ${progName} -h to print help\\n\"; exit 1;;\n  esac\ndone\n# Extract Major Release\nMAJOR=${VERSION:0:1}\n\n# Set RHEL RELEASE to sync\nprintf \"Set Release to sync\"\nsubscription-manager release --set=$VERSION &amp;&amp; rm -rf \/var\/cache\/dnf\n\n# SYNC BASE-OS, APPSTREAM, Codeready, EPEL and rpmfusion\nif &#91; $MAJOR == '8' ]\nthen\n    \tprintf \"Sync Base OS \"\n        reposync -p \/usr\/share\/nginx\/html\/$MAJOR\/$VERSION --download-metadata --newest-only --delete --repoid=rhel-8-for-x86_64-baseos-rpms \n        printf \"Sync Appstream \"\n        reposync -p \/usr\/share\/nginx\/html\/$MAJOR\/$VERSION --download-metadata --newest-only --delete --repoid=rhel-8-for-x86_64-appstream-rpms\n        printf \"Sync Codeready \"\n        reposync -p \/usr\/share\/nginx\/html\/$MAJOR\/$VERSION --download-metadata --newest-only --delete --repoid=codeready-builder-for-rhel-8-x86_64-rpms\n        printf \"Sync EPEL 8 \"\n        reposync -p \/usr\/share\/nginx\/html\/$MAJOR --download-metadata --newest-only --delete --repo=epel \n        printf \"Sync EPEL 8 Modular \"\n        reposync -p \/usr\/share\/nginx\/html\/$MAJOR --download-metadata --newest-only --delete --repoid=epel-modular \n        printf \"Sync rpmfusion-free \"\n        reposync -p \/usr\/share\/nginx\/html\/$MAJOR --download-metadata --newest-only --delete --repoid=rpmfusion-free-updates\n        printf \"Sync rpmfusion-nonfree \"\n        reposync -p \/usr\/share\/nginx\/html\/$MAJOR --download-metadata --newest-only --delete --repoid=rpmfusion-nonfree-updates\nfi\n&#91;root@rhel-8-repo \/]# \n<\/code><\/pre>\n\n\n\n<p>EPEL and RPMFusion doesn&#8217;t know Minor Realeases, so there is only one Repository for all RHEL 8 Versions.<br>That is the reason to store the Repositories only under the extracted Major Release number.<\/p>\n\n\n\n<p>Some explanations, &#8211;newest-only dowloads only the newest packages per-repo, &#8211;delete will delete local packages no longer present in the repository.<br>The switch -v means the version for which the local repository should be created, so it is 8.5 for 8.5 or 8.6 for 8.6, so there can be a local repository for each release which is locally used with only one script.<\/p>\n\n\n\n<p>The shell script has a help function.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@rhel-8-repo reposync]# sh reposync.sh -h\nSynchronisation of RHEL Repositores\n\nUsage:\n &#91;OPTION]\n\nOptions:\n\t -v &lt;RHEL Version&gt;\t\tRHEL Release (required)\n\t -h &lt;Help&gt;\t\t\tprints this help\n&#91;root@rhel-8-repo reposync]# <\/code><\/pre>\n\n\n\n<p>Running for RHEL 8.6, the subscriptionmanager relaese command will set the Release to sync.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@rhel-8-repo reposync]# sh reposync.sh -v 8.6<\/code><\/pre>\n\n\n\n<p>The sync requires about 66GB with the parameters &#8211;newest-only and &#8211;delete, 21GB for RHEL 8.6, 18GB for RHEL 8.5, 13GB for RHEL 8.4, 13GB for EPEL and 1.4GB for RPMFusion.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@rhel-8-repo 8]# du -sh *\n13G\t8.4\n18G\t8.5\n21G\t8.6\n13G\tepel\n1.1G\tepel-modular\n297M\trpmfusion-free-updates\n1.1G\trpmfusion-nonfree-updates\n&#91;root@rhel-8-repo 8]# <\/code><\/pre>\n\n\n\n<p>For configuration of NGINX we need to open the firewall port 80 and 443 first (http and https).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@rhel-8-repo \/]# firewall-cmd --zone=public --permanent --add-service=http\nsuccess\n&#91;root@rhel-8-repo \/]# firewall-cmd --zone=public --permanent --add-service=https\nsuccess\n&#91;root@rhel-8-repo \/]# firewall-cmd --reload\nsuccess<\/code><\/pre>\n\n\n\n<p>I have adapted the originally nginx.conf, I have replaced the server section with my settings:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@rhel-8-repo ~]# cat \/etc\/nginx\/nginx.conf\n# For more information on configuration, see:\n#   * Official English Documentation: http:\/\/nginx.org\/en\/docs\/\n#   * Official Russian Documentation: http:\/\/nginx.org\/ru\/docs\/\n\nuser nginx;\nworker_processes auto;\nerror_log \/var\/log\/nginx\/error.log;\npid \/run\/nginx.pid;\n\n# Load dynamic modules. See \/usr\/share\/doc\/nginx\/README.dynamic.\ninclude \/usr\/share\/nginx\/modules\/*.conf;\n\nevents {\n    worker_connections 1024;\n}\n\nhttp {\n    log_format  main  '$remote_addr - $remote_user &#91;$time_local] \"$request\" '\n                      '$status $body_bytes_sent \"$http_referer\" '\n                      '\"$http_user_agent\" \"$http_x_forwarded_for\"';\n\n    access_log  \/var\/log\/nginx\/access.log  main;\n\n    sendfile            on;\n    tcp_nopush          on;\n    tcp_nodelay         on;\n    keepalive_timeout   65;\n    types_hash_max_size 2048;\n\n    include             \/etc\/nginx\/mime.types;\n    default_type        application\/octet-stream;\n\n    # Load modular configuration files from the \/etc\/nginx\/conf.d directory.\n    # See http:\/\/nginx.org\/en\/docs\/ngx_core_module.html#include\n    # for more information.\n    include \/etc\/nginx\/conf.d\/*.conf;\n\n    server {\n\tlisten       80 default_server;\n        listen       &#91;::]:80 default_server;\n        server_name  _;\n        root         \/usr\/share\/nginx\/html\/;\n\n        # Load configuration files for the default server block.\n        include \/etc\/nginx\/default.d\/*.conf;\n\n        location \/ {\n                allow all;\n                sendfile on;\n                sendfile_max_chunk 1m;\n                autoindex on;\n                autoindex_exact_size off;\n                autoindex_format html;\n                autoindex_localtime on;\n        }\n\t  error_page 404 \/404.html;\n            location = \/40x.html {\n        }\n\n\t  error_page 500 502 503 504 \/50x.html;\n            location = \/50x.html {\n        }\n    }\n\n\n#    server {\n#        listen       80 default_server;\n#        listen       &#91;::]:80 default_server;\n#        server_name  _;\n#        root         \/usr\/share\/nginx\/html;\n#\n#        # Load configuration files for the default server block.\n#        include \/etc\/nginx\/default.d\/*.conf;\n#\n#        location \/ {\n#        }\n#\n#        error_page 404 \/404.html;\n#            location = \/40x.html {\n#        }\n#\n#        error_page 500 502 503 504 \/50x.html;\n#            location = \/50x.html {\n#        }\n#    }\n\n# Settings for a TLS enabled server.\n#\n#    server {\n#        listen       443 ssl http2 default_server;\n#        listen       &#91;::]:443 ssl http2 default_server;\n#        server_name  _;\n#        root         \/usr\/share\/nginx\/html;\n#\n#        ssl_certificate \"\/etc\/pki\/nginx\/server.crt\";\n#        ssl_certificate_key \"\/etc\/pki\/nginx\/private\/server.key\";\n#        ssl_session_cache shared:SSL:1m;\n#        ssl_session_timeout  10m;\n#        ssl_ciphers PROFILE=SYSTEM;\n#        ssl_prefer_server_ciphers on;\n#\n#        # Load configuration files for the default server block.\n#        include \/etc\/nginx\/default.d\/*.conf;\n#\n#        location \/ {\n#        }\n#\n#        error_page 404 \/404.html;\n#            location = \/40x.html {\n#        }\n#\n#        error_page 500 502 503 504 \/50x.html;\n#            location = \/50x.html {\n#        }\n#    }\n\n}\n\n&#91;root@rhel-8-repo ~]# \n<\/code><\/pre>\n\n\n\n<p>The next topic is SE Linux, when it is set to enforcing we need to set permissions and restart nginx.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;root@rhel-8-repo \/]# chcon -Rt httpd_sys_content_t \/usr\/share\/nginx\/html\/repo\/\n&#91;root@rhel-8-repo \/]# setfacl -R -m u:nginx:rwx \/usr\/share\/nginx\/html\/repo\/\n&#91;root@rhel-8-repo \/]# systemctl restart nginx<\/code><\/pre>\n\n\n\n<p>A Repository Server for three RHEL 8 Releases including EPEL and RPMFusion.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"251\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Bildschirmfoto-vom-2022-07-18-00-39-24-1024x251.png\" alt=\"\" class=\"wp-image-18014\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Bildschirmfoto-vom-2022-07-18-00-39-24-1024x251.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Bildschirmfoto-vom-2022-07-18-00-39-24-300x74.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Bildschirmfoto-vom-2022-07-18-00-39-24-768x188.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Bildschirmfoto-vom-2022-07-18-00-39-24.png 1309w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>This Blog is about a own Repository server for RHEL 8, Blogs for Repository Server for AlmaLinux, Oracle Linux, Rocky Linux, OpenSuse LEAP, SLES 15 and Debian 11 will follow. The base is a minimal installation.I have added EPEL and RPMFusion, may be that Desktpp systems also needed to be updated or systems with packages [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[42],"tags":[1501,1760,1502],"type_dbi":[],"class_list":["post-17867","post","type-post","status-publish","format-standard","hentry","category-operating-systems","tag-red-hat-linux","tag-repository","tag-rhel-8"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Setup a RHEL 8 Repository Server - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Setup a RHEL 8 Repository Server\" \/>\n<meta property=\"og:description\" content=\"This Blog is about a own Repository server for RHEL 8, Blogs for Repository Server for AlmaLinux, Oracle Linux, Rocky Linux, OpenSuse LEAP, SLES 15 and Debian 11 will follow. The base is a minimal installation.I have added EPEL and RPMFusion, may be that Desktpp systems also needed to be updated or systems with packages [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-18T06:27:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-28T08:12:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Bildschirmfoto-vom-2022-07-18-00-39-24-1024x251.png\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Setup a RHEL 8 Repository Server\",\"datePublished\":\"2022-07-18T06:27:24+00:00\",\"dateModified\":\"2022-11-28T08:12:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/\"},\"wordCount\":380,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Bildschirmfoto-vom-2022-07-18-00-39-24-1024x251.png\",\"keywords\":[\"Red Hat Linux\",\"repository\",\"RHEL 8\"],\"articleSection\":[\"Operating systems\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/\",\"name\":\"Setup a RHEL 8 Repository Server - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Bildschirmfoto-vom-2022-07-18-00-39-24-1024x251.png\",\"datePublished\":\"2022-07-18T06:27:24+00:00\",\"dateModified\":\"2022-11-28T08:12:35+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Bildschirmfoto-vom-2022-07-18-00-39-24.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Bildschirmfoto-vom-2022-07-18-00-39-24.png\",\"width\":1309,\"height\":321},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Setup a RHEL 8 Repository Server\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Setup a RHEL 8 Repository Server - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/","og_locale":"en_US","og_type":"article","og_title":"Setup a RHEL 8 Repository Server","og_description":"This Blog is about a own Repository server for RHEL 8, Blogs for Repository Server for AlmaLinux, Oracle Linux, Rocky Linux, OpenSuse LEAP, SLES 15 and Debian 11 will follow. The base is a minimal installation.I have added EPEL and RPMFusion, may be that Desktpp systems also needed to be updated or systems with packages [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/","og_site_name":"dbi Blog","article_published_time":"2022-07-18T06:27:24+00:00","article_modified_time":"2022-11-28T08:12:35+00:00","og_image":[{"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Bildschirmfoto-vom-2022-07-18-00-39-24-1024x251.png","type":"","width":"","height":""}],"author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Setup a RHEL 8 Repository Server","datePublished":"2022-07-18T06:27:24+00:00","dateModified":"2022-11-28T08:12:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/"},"wordCount":380,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Bildschirmfoto-vom-2022-07-18-00-39-24-1024x251.png","keywords":["Red Hat Linux","repository","RHEL 8"],"articleSection":["Operating systems"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/","url":"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/","name":"Setup a RHEL 8 Repository Server - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Bildschirmfoto-vom-2022-07-18-00-39-24-1024x251.png","datePublished":"2022-07-18T06:27:24+00:00","dateModified":"2022-11-28T08:12:35+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Bildschirmfoto-vom-2022-07-18-00-39-24.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Bildschirmfoto-vom-2022-07-18-00-39-24.png","width":1309,"height":321},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/setup-a-rhel-8-repository-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Setup a RHEL 8 Repository Server"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/17867","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=17867"}],"version-history":[{"count":9,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/17867\/revisions"}],"predecessor-version":[{"id":20673,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/17867\/revisions\/20673"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=17867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=17867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=17867"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=17867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}