# How to build chef-server from official sources on github to create DEB packages?

**URL:** <https://discourse.chef.io/t/how-to-build-chef-server-from-official-sources-on-github-to-create-deb-packages/16750>\
**Category:** Chef Infra (archive)\
**Created:** [March 2, 2020, 3:18pm UTC](https://discourse.chef.io/t/how-to-build-chef-server-from-official-sources-on-github-to-create-deb-packages/16750 "2020-03-02T15:18:39Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![noodle](https://avatars.discourse-cdn.com/v4/letter/n/ac91a4/32.png) [@noodle](https://discourse.chef.io/u/noodle)\
**Post date:** [March 2, 2020, 3:18pm UTC](https://discourse.chef.io/t/how-to-build-chef-server-from-official-sources-on-github-to-create-deb-packages/16750/1 "2020-03-02T15:18:39Z")

</div>

Hello,

I've been tasked with the job of installing chef infra server to replace our older chef.  
After a considerable amount of time and multiple attempts I still can't create the binaries for chef-server.

I tried searching for this info, but all the resources I find are either really old or are about chef-client.

## make

When using `make` to build chef-server I can't proceed because `bundler` is not being detected (it's installed).:

```auto
===> No upgrade needed for webmachine
===> No upgrade needed for gen_server2
cd src/opscode-expander && bundle install --no-deployment && bundle update $TARGET
Traceback (most recent call last):
	2: from /usr/local/bin/bundle:23:in `<main>'
	1: from /usr/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/usr/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)
Makefile:10: recipe for target 'bundle_opscode-expander' failed
make: *** [bundle_opscode-expander] Error 1

```

I went to the expander folder and tried to do a bundle install there, but I had the same result. I tried poking around, but nothing caught my eye.:

```auto
vagrant@vagrant:~/chef-server/src/opscode-expander$ bundle install
Traceback (most recent call last):
	2: from /usr/local/bin/bundle:23:in `<main>'
	1: from /usr/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/usr/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException)

```

I'm also getting this message:

```auto
===> Plugin rebar3_hex not available. It will not be used.

```

I've read from here: [https://medium.com/erlang-central/building-your-first-erlang-app-using-rebar3-25f40b109aad](https://medium.com/erlang-central/building-your-first-erlang-app-using-rebar3-25f40b109aad)

that this plugin is needed to download packages from the HEX repository. OK, so should I modify `rebar.config`? There are 2 issues with this:

1. Why should I modify anything that I took from upstream?
2. There are dozens of files named `rebar.config` in the repo.

## omnibus

I tried to use omnibus since:

> This project creates full-stack platform-specific packages for chef-server!

After installing all dependencies, ruby, gcc, ruby-dev, bundler etc. I've hit a wall.

Running:

```auto
$ bin/omnibus build chef-server

```

fails to build

```auto
vagrant@vagrant:~/chef-server/omnibus$ sudo bin/omnibus build chef-server
https://github.com/chef/omnibus (at master@f38dcb5) is not yet checked out. Run `bundle install` first.

```

The thing is: I already have those gems:

```auto
Using omnibus 7.0.6 from https://github.com/chef/omnibus (at master@f38dcb5)
Using omnibus-software 4.0.0 from https://github.com/chef/omnibus-software (at master@722d2a8)

```

## others?

Also, is it just me, or is the way of building chef really confusing? Maybe it's me being a n00b when dealing with chef, but there are multiple ways to build chef server. Which one should I use to have deb packages to install on a server?

Omnibus? Kitchen? Makefile? How are they related? Keep in mind, that I have minimal Ruby experience and I'm new to Chef.

Thank you in advance,  
noodle

---

<div class="post-metadata">

**Author:** ![jasonf](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/jasonf/32/2370_2.png) [@jasonf](https://discourse.chef.io/u/jasonf)\
**Post date:** [March 2, 2020, 4:12pm UTC](https://discourse.chef.io/t/how-to-build-chef-server-from-official-sources-on-github-to-create-deb-packages/16750/2 "2020-03-02T16:12:02Z")

</div>

Hey,

why not use the official binaries, [https://downloads.chef.io/chef-server/](https://downloads.chef.io/chef-server/)

---

<div class="post-metadata">

**Author:** ![noodle](https://avatars.discourse-cdn.com/v4/letter/n/ac91a4/32.png) [@noodle](https://discourse.chef.io/u/noodle)\
**Post date:** [March 3, 2020, 9:24am UTC](https://discourse.chef.io/t/how-to-build-chef-server-from-official-sources-on-github-to-create-deb-packages/16750/3 "2020-03-03T09:24:06Z")

</div>

Because those are paid-for:

> IF YOU REPRESENT A CORPORATION, GOVERNMENTAL ORGANIZATION, OR OTHER LEGAL ENTITY, OR YOU INTEND TO USE THE SOFTWARE FOR COMMERCIAL PURPOSES, YOU MUST CONTACT CHEF DIRECTLY TO OBTAIN A COMMERCIAL LICENSE FOR THIS SOFTWARE. PLEASE VISIT [https://www.chef.io/eula-inquiry/](https://www.chef.io/eula-inquiry/) TO INQUIRE.

---

<div class="post-metadata">

**Author:** ![joejoe19](https://avatars.discourse-cdn.com/v4/letter/j/aeb1de/32.png) [@joejoe19](https://discourse.chef.io/u/joejoe19)\
**Post date:** [March 3, 2020, 9:38am UTC](https://discourse.chef.io/t/how-to-build-chef-server-from-official-sources-on-github-to-create-deb-packages/16750/4 "2020-03-03T09:38:15Z")

</div>

Chef 12.x is free. [https://docs.chef.io/versions/](https://docs.chef.io/versions/)

Mail]([https://go.microsoft.com/fwlink/?LinkId=550986](https://go.microsoft.com/fwlink/?LinkId=550986)) for Windows 10

![7A845521E8064BABB52BA37A8A74D4D0.png](https://sea2.discourse-cdn.com/flex016/images/transparent.png)

---

<div class="post-metadata">

**Author:** ![jasonf](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/jasonf/32/2370_2.png) [@jasonf](https://discourse.chef.io/u/jasonf)\
**Post date:** [March 3, 2020, 9:52am UTC](https://discourse.chef.io/t/how-to-build-chef-server-from-official-sources-on-github-to-create-deb-packages/16750/5 "2020-03-03T09:52:07Z")

</div>

Then I would take a look at cinc.sh they will give you some form of compiled binary,

Note: Depending on your use case you may not need to pay for the license, I think POC/Test is fine, also any chef client less than 14 will be unsupported in a couple months time, and 14+ require a license, so it may benefit you to figure out a solution to your licensing issues,

---

<div class="post-metadata">

**Author:** ![noodle](https://avatars.discourse-cdn.com/v4/letter/n/ac91a4/32.png) [@noodle](https://discourse.chef.io/u/noodle)\
**Post date:** [March 3, 2020, 9:56am UTC](https://discourse.chef.io/t/how-to-build-chef-server-from-official-sources-on-github-to-create-deb-packages/16750/6 "2020-03-03T09:56:10Z")

</div>

> Use of the following distributions is governed by the Apache License, version 2.0.

Is this the same CHEF infra server as here: [GitHub - chef/chef-server: Chef Infra Server is a hub for configuration data; storing cookbooks, node policies and metadata of managed nodes.](https://github.com/chef/chef-server) ?

Where are the binaries then? Or, how can I build them? @bobchaos @Tensibai  
Thank you jasonf for the info!

---

<div class="post-metadata">

**Author:** ![Tensibai](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.chef.io/tensibai/32/29_2.png) [@Tensibai](https://discourse.chef.io/u/Tensibai)\
**Post date:** [March 3, 2020, 10:03am UTC](https://discourse.chef.io/t/how-to-build-chef-server-from-official-sources-on-github-to-create-deb-packages/16750/7 "2020-03-03T10:03:05Z")

</div>

Hi,

On cinc side we didn't tackle chef server for now as there's [goiardi](http://goiardi.gl/) existing which match the use case and mimic properly the chef-server.  
Alternatively latest free chef-server binaries is [12.19.31](https://downloads.chef.io/chef-server/stable/12.19.31) and there's not much evolutions in 13 actually.

Depending on your needs that could be enough to run Cinc client 15 against goiardi or latest chef-infra server 12 (from which version are you coming ?)

On cinc side we're working on the workstation part actually and next step should be automate (the web interface), chef-server would come after that.

---

<div class="post-metadata">

**Author:** ![noodle](https://avatars.discourse-cdn.com/v4/letter/n/ac91a4/32.png) [@noodle](https://discourse.chef.io/u/noodle)\
**Post date:** [March 3, 2020, 10:54am UTC](https://discourse.chef.io/t/how-to-build-chef-server-from-official-sources-on-github-to-create-deb-packages/16750/8 "2020-03-03T10:54:01Z")

</div>

Thank you everyone for your answers and links. I'll relay this to my team, since I'm not the only one working with configuration management at my organization.

---

<div class="post-metadata">

**Author:** ![bobchaos](https://avatars.discourse-cdn.com/v4/letter/b/5f8ce5/32.png) [@bobchaos](https://discourse.chef.io/u/bobchaos)\
**Post date:** [March 3, 2020, 12:24pm UTC](https://discourse.chef.io/t/how-to-build-chef-server-from-official-sources-on-github-to-create-deb-packages/16750/9 "2020-03-03T12:24:10Z")

</div>

Worth noting, not only is Chef Server 12 still free, but it also doesn't have an EOL date yet, meaning it should still get updates post may.
