{"id":451,"date":"2026-10-14T11:51:26","date_gmt":"2026-10-14T11:51:26","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/2015\/10\/27\/how-to-install-chefdk-in-rhel-ubantu-mac-and-windows\/"},"modified":"2026-10-14T11:51:26","modified_gmt":"2026-10-14T11:51:26","slug":"how-to-install-chefdk-in-rhel-ubantu-mac-and-windows","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/how-to-install-chefdk-in-rhel-ubantu-mac-and-windows\/","title":{"rendered":"How to Install ChefDK on RHEL, Ubuntu, macOS, and Windows (Legacy-Friendly Guide)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">This guide shows a practical way to install ChefDK on RHEL\/CentOS, Ubuntu, macOS, and Windows, then verify that your shell is using the expected Chef binaries. It is aimed at DevOps engineers maintaining legacy ChefDK-based automation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Originally published on 2015-10-27; fully revised and updated.<\/em><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2015\/10\/how-to-install-chefdk-in-rh.png\" alt=\"chefdk installation process rhel ubuntu mac windows\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Before you install: confirm whether you need ChefDK<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">ChefDK is still used in some older pipelines, but many teams now standardize on Chef Workstation for new setups. If you must stay on ChefDK for compatibility, start from the official download index at <a href=\"https:\/\/downloads.chef.io\/chef-dk\/\">downloads.chef.io\/chef-dk<\/a> and select the exact package for your OS and architecture.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Use an account with administrator or sudo permissions.<\/li><li>Pick the package that matches your platform (RPM, DEB, PKG, or MSI).<\/li><li>Plan to open a new terminal session after install so PATH changes are loaded.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Installation workflow across operating systems<\/h2>\n\n\n\n<pre class=\"mermaid\">\nflowchart TD\n    A[Choose target OS] --> B[Open ChefDK download page]\n    B --> C{Select platform package}\n    C --> D[RHEL or CentOS RPM]\n    C --> E[Ubuntu DEB]\n    C --> F[macOS PKG]\n    C --> G[Windows MSI]\n    D --> H[Install package]\n    E --> H\n    F --> H\n    G --> H\n    H --> I[Verify chef and knife versions]\n    I --> J[Start cookbook and policy work]\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">OS installer and command comparison<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Operating system<\/th><th>Installer type<\/th><th>Install command pattern<\/th><th>Basic verification<\/th><\/tr><\/thead><tbody><tr><td>RHEL or CentOS<\/td><td>.rpm<\/td><td>sudo rpm -ivh chefdk-*.rpm<\/td><td>chef -v<\/td><\/tr><tr><td>Ubuntu<\/td><td>.deb<\/td><td>sudo dpkg -i chefdk_*.deb<\/td><td>chef -v<\/td><\/tr><tr><td>macOS<\/td><td>.pkg<\/td><td>sudo installer -pkg chefdk-*.pkg -target \/<\/td><td>chef -v<\/td><\/tr><tr><td>Windows<\/td><td>.msi<\/td><td>msiexec \/i chefdk-setup.msi<\/td><td>chef -v<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">RHEL or CentOS installation example (from the original post)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The original article used an EL6 package and this direct URL: <a href=\"https:\/\/opscode-omnibus-packages.s3.amazonaws.com\/el\/6\/x86_64\/chefdk-0.9.0-1.el6.x86_64.rpm\">chefdk-0.9.0-1.el6.x86_64.rpm<\/a>. Keep in mind this is a historical build.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-bash\">wget https:<span class=\"hljs-comment\">\/\/opscode-omnibus-packages.s3.amazonaws.com\/el\/6\/x86_64\/chefdk-0.9.0-1.el6.x86_64.rpm<\/span>\n<span class=\"hljs-comment\"># or<\/span>\ncurl -O https:<span class=\"hljs-comment\">\/\/opscode-omnibus-packages.s3.amazonaws.com\/el\/6\/x86_64\/chefdk-0.9.0-1.el6.x86_64.rpm<\/span>\n\nchmod <span class=\"hljs-number\">755<\/span> chefdk<span class=\"hljs-number\">-0.9<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">-1.<\/span>el6.x86_64.rpm\nsudo rpm -ivh chefdk<span class=\"hljs-number\">-0.9<\/span><span class=\"hljs-number\">.0<\/span><span class=\"hljs-number\">-1.<\/span>el6.x86_64.rpm<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs language-bash\">which chef\nchef -v\nknife -v<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">On Linux systems, ChefDK binaries are commonly installed under <code>\/opt\/chefdk<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ubuntu installation example (DEB package)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">After downloading the appropriate <code>.deb<\/code> package from the ChefDK downloads page, install it with:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs language-bash\">cd ~\/Downloads\nsudo dpkg -i chefdk_*.deb\nsudo apt-get -f install<\/code><\/span><\/pre>\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs language-bash\">which chef\nchef -v\nknife -v<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">macOS and Windows installation examples<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">macOS<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript language-bash\">sudo installer -pkg ~<span class=\"hljs-regexp\">\/Downloads\/<\/span>chefdk-*.pkg -target \/\nchef -v\nknife -v<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Windows (PowerShell or Command Prompt)<\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs language-powershell\">msiexec \/i C:\\path\\to\\chefdk-setup.msi \/qn\nchef -v\nknife -v<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If <code>chef<\/code> is not recognized immediately on Windows, open a new terminal session (or log out and back in) to refresh PATH.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">ChefDK vs Chef Workstation: quick decision guide<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Option<\/th><th>Best for<\/th><th>Trade-off<\/th><\/tr><\/thead><tbody><tr><td>ChefDK<\/td><td>Legacy pipelines that already depend on ChefDK behavior<\/td><td>Older packaging and ecosystem assumptions<\/td><\/tr><tr><td>Chef Workstation<\/td><td>New installations and current team standards<\/td><td>May require migration testing for older cookbooks and scripts<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Common pitfalls and best practices<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Avoid hardcoding outdated package URLs<\/strong>; prefer selecting current artifacts from the official downloads page.<\/li><li><strong>Pin and document the exact package version<\/strong> used by each environment for repeatability.<\/li><li><strong>Verify binaries after install<\/strong> with <code>chef -v<\/code> and <code>knife -v<\/code> before running automation.<\/li><li><strong>Plan migration work<\/strong> if your organization is moving from ChefDK to Chef Workstation.<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Learn a practical, cross-platform process to install ChefDK and verify it correctly on RHEL\/CentOS, Ubuntu, macOS, and Windows. This guide also helps you decide when ChefDK is still appropriate versus Chef Workstation.<\/p>\n","protected":false},"author":1,"featured_media":3111,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[88,68],"tags":[946,1409,1408,1410,1122,545,1407,1413,1411,1412,1414,469,947,593,465,732,1415,213,1341,182],"class_list":["post-451","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chef","category-operating-systems","tag-chefdk","tag-chefdk-installation-guide","tag-chefdk-installation-process","tag-chefdk-installation-tutorial","tag-guide","tag-how","tag-how-to-install-chefdk","tag-how-to-install-chefdk-in-mac","tag-how-to-install-chefdk-in-rhel","tag-how-to-install-chefdk-in-ubantu","tag-how-to-install-chefdk-in-windows","tag-mac","tag-operating-systems","tag-process","tag-rhel","tag-steps","tag-steps-to-install-chefdk","tag-tutorial","tag-ubantu","tag-windows"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/451","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=451"}],"version-history":[{"count":4,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/451\/revisions"}],"predecessor-version":[{"id":79327,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/451\/revisions\/79327"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/3111"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=451"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=451"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=451"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}