I use Ansible with Brew and Brew Cask. I've found using Brew for everything makes it easier to upgrade all applications for security reasons and it also gives a high level view of my system. Here's the relevant config file of the things I install: https://github.com/arianitu/setup-my-environment/blob/master... The ansible script also links to my dotfiles, which can be found at: https://github.com/arianitu/dotfiles
Ask HN: How do you install developer tools on a fresh system?
101–110 of 129 posts
Re: Ask HN: How do you install developer tools on a fresh system?
#102Setting up a new system is where NixOS really shines. Once you have one system working it is trivial to duplicate it on new metal. 1. Install NixOS 2. Copy configuration.nix* 3. Copy dotfiles 4. # nixos-rebuild switch 5. Enjoy your old setup on new hardware--no secret sauce needed! *A hardware-configuration.nix should have been generated by the installer. By default this is sourced by configuration.nix, in which case…
I've been interested in Nix and Guix for some time; would you be able to comment on the two?
I have never used Guix/GuixSD but have heard good things about it. Behind the scenes it uses the Nix package manager and offers a subset of Nix packages licensed as free software. Whereas Nix/NixOS uses the Nix expression language, Guix/GuixSD uses a Guile Scheme front-end. I've heard the Guix CLI is quite nice and a bit more polished than Nix's but Nix is currently in the process of overhauling the CLI. See [1] for a more detailed comparison.
Both of these projects have very active development but don't have the volume of listings as you would find in e.g. AUR or the Debian repos. That said, I've been pleased and actually surprised at just how many packages exist. If you can't find what you want, contributing new packages isn't too hard (often just a case of finding something similar in the repos and changing the relevant values). You can check the current Nix [2] and Guix [3] packages here to see if enough of your needs are covered before giving one of them a try.
[0] http://grosskurth.ca/bib/2006/dolstra-thesis.pdf
[1] http://sandervanderburg.blogspot.com/2012/11/on-nix-and-gnu-...
Re: Ask HN: How do you install developer tools on a fresh system?
#103Not directly related, but this seems like the right thread to ask: I've been trying to move from Linux to OS recently, and the one thing I can't stand is the .DS_Store and other files which OSX just throws all over the place, in every directory whether local, network or external drive. Is there a way to stop it? (installable on a fresh system? I've been experimenting with reformatting, so that's not a problem)
This might have what you're looking for, anyway it's a good starting point for a lot of commands to customize an OS X instance. https://github.com/mathiasbynens/dotfiles Edit: AFAIK .DS_Store is only created when you use Finder. In the past couple of years I've only used the Finders to drag'n drop stuff between ~/Desktop and ~/Downloads, terminal for the rest, so .DS_Store files might not be a problem in practice. Ed…
I find it so surprising that there's no way to disable this.
Re: Ask HN: How do you install developer tools on a fresh system?
#104If you consistently use the same Linux distribution, consider building metapackages for that distribution. I 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 b…
Or I have to install the PPAs before I can use the metapackage (which kind of defeats the idea of using a metapackage instead of a script)?
Re: Ask HN: How do you install developer tools on a fresh system?
#105I'm using a shell script together with the nix package manager for that. The shell script just ensures that all packages are there (e.g. doing `nix-env -i fpp wget iterm2 jekyll ghc ruby nodejs composer php`). I can pin the version of all packages by configuring `NIX_PATH` to point to a specific `nixpkgs` (the package repository) commit. So that all people have exact the same versions of everything. Package customiza…
# ~/.nixpkgs/config.nix
{
packageOverrides = defaultPkgs: with defaultPkgs; {
# To install below "pseudo-package", run:
# $ nix-env -i all
# or:
# $ nix-env -iA nixos.all
all = with pkgs; buildEnv {
name = "all";
paths = [
fpp wget iterm2 jekyll
ghc ruby nodejs composer php
];
};
};
}
and then keep only this one file in git. (Though still working on how to possibly also keep .inputrc, .bashrc, .profile, etc. in it.)Re: Ask HN: How do you install developer tools on a fresh system?
#106Re: Ask HN: How do you install developer tools on a fresh system?
#107It's about an even split between installers from an MSDN account, and a ninite bundled installer for the rest.
Re: Ask HN: How do you install developer tools on a fresh system?
#108Earlier quoted context omitted.
I've been interested in Nix and Guix for some time; would you be able to comment on the two?
Probably the definitive document making the case for Nix (and Guix by extension) is Eelco Dolstra's PhD thesis [0] . The introduction is a good read by itself. I have never used Guix/GuixSD but have heard good things about it. Behind the scenes it uses the Nix package manager and offers a subset of Nix packages licensed as free software. Whereas Nix/NixOS uses the Nix expression language, Guix/GuixSD uses a Guile Sch…
Re: Ask HN: How do you install developer tools on a fresh system?
#109The question asks only about *nix systems, I assume, but it worth mentioning that there is a great tool for Windows too, just in case if someone needs it - https://chocolatey.org/
Automating from-scratch setup with chocolatey: http://www.boxstarter.org/
Re: Ask HN: How do you install developer tools on a fresh system?
#110I recently reinstalled my NixOS laptop. I just installed the distribution, added my SSH keys, cloned a repository, made a handful of symlinks, and then told NixOS to set everything up. It's actually a collaborative repository, so that both of us in our company can improve the computer configuration, install new tools or language runtimes, etc etc. The shared configuration has stuff like: our user accounts and public…