See saltstack.
Ask HN: How do you install developer tools on a fresh system?
31–40 of 129 posts
Re: Ask HN: How do you install developer tools on a fresh system?
#32Re: Ask HN: How do you install developer tools on a fresh system?
#33Use a configuration management tool (I picked https://saltstack.com/ , mostly because of the docs & community support) but there's lots to choose from - Chef, Puppet, Ansible, and so on. There's a learning curve, and plenty of 'where did my afternoon go?' rabbit holes you can lose yourself in. But the upside is that you can have consistent, repeatable, and rapid builds, with modularity as a bonus. Don't be afraid wit…
I've found with Ansible at least, I was initially tempted to make large complicated roles for things like "application server" or "development desktop" but what ended up working much better was very granular roles such as "nginx server" and "emacs" (often just a single task such as "yum: name=nginx state=installed") that can be combined in playbooks. This makes it easier to avoid duplicating tasks in different roles,…
Also, +1 for using CM to set your workstation back up, I really need to get around to writing some Puppet manifests to do that for mine
Re: Ask HN: How do you install developer tools on a fresh system?
#34Re: Ask HN: How do you install developer tools on a fresh system?
#35I have a repository[0] that holds all my configuration and installs some language-specific tools. Otherwise I just manually install any packages I need. I may consider automating this at some point but I don't use that many tools so it hasn't been particularly onerous. [0] https://github.com/michaelmior/dotfiles
Re: Ask HN: How do you install developer tools on a fresh system?
#36I have a repository[0] that holds all my configuration and installs some language-specific tools. Otherwise I just manually install any packages I need. I may consider automating this at some point but I don't use that many tools so it hasn't been particularly onerous. [0] https://github.com/michaelmior/dotfiles
Re: Ask HN: How do you install developer tools on a fresh system?
#37That's a very good reason to only install apps with a real package installer. On OSX, this is a no-brainer with brew[1] and brew cask[2] # On my old mac $ brew list $ brew cask list => then I save relevant parts for future references brew install npm brew install zsh brew cask install sublime-text brew cask install google-chrome brew cask install intellij-idea [1] http://brew.sh/ [2] https://caskroom.github.io/
Protip: "brew list" will list all installed packages, including dependencies, which you might not want. What you probably want is "brew leaves", where it lists all installed packages that are not dependencies of another installed package.
This makes a difference in cases where a dependency is no longer needed in the latest version.
On a related note, why does the majority of package managers make the common and simple task of "list all manually installed packages" so incredibly hard?
For a fun brain twister, try to list all the manually installed packages on your system by just reading the man pages and no internet. Ubuntu is nightmare mode for this challenge.
Re: Ask HN: How do you install developer tools on a fresh system?
#38This is my Ansible repo for reference: https://gitlab.com/edgard/ansible-ubuntu
And dotfiles: https://gitlab.com/edgard/dotfiles
Re: Ask HN: How do you install developer tools on a fresh system?
#39Question: why are you doing a fresh install? If you install everything through your package manager, you don't need a fresh install to clean things up. My operating system has lived through several different machine upgrades. I just do a `cp -a` to copy the files from one hard drive to another, set up the bootloader and go.
Theoretically that may be the case, but its far from reality.
Re: Ask HN: How do you install developer tools on a fresh system?
#40I created a set of Debian packages that depend on suites of packages I need. I download and install "josh-apt-source", which installs the source in /etc/apt/sources.list.d and the key in /etc/apt/trusted.gpg.d/ , then "apt update" and "apt install josh-core josh-dev josh-gui ...". That same source package also builds configuration packages like "josh-config-sudoers".