Live data from Hacker News

Ask HN: How do you install developer tools on a fresh system?

news.ycombinator.com

101–110 of 129 posts

Re: Ask HN: How do you install developer tools on a fresh system?

#101
post #52

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

I use a similar setup and find it quite dependable. I notice your bootstrap script does not automate the XCode installation. Here's how you can automate that in case you're curious: https://github.com/timsutton/osx-vm-templates/blob/ce8df8a74...

Re: Ask HN: How do you install developer tools on a fresh system?

#102
post #77

Setting 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?

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 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-...

[2] https://nixos.org/nixos/packages.html

[3] https://www.gnu.org/software/guix/packages/

Re: Ask HN: How do you install developer tools on a fresh system?

#103
post #88
post #82

Not 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…

Thanks. I was aware of asepsis, not aware of DeathToDSStore, but neither works on El Capitan unless you turn off SIP.

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?

#104

If 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…

Can I use that with external PPAs?

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?

#105
post #2

I'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…

I've recently learned you can put all the packages in one custom Nix expression in ~/.nixpkgs/config.nix, like below, then load (and reload/update/change) it with one `nix-env -i all`, or faster with: `nix-env -iA nixos.all`:

    # ~/.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?

#107

It's about an even split between installers from an MSDN account, and a ninite bundled installer for the rest.

Ninite bundled installer has made setting up new computers for family members so mindlessly easy. So glad it exists.

Re: Ask HN: How do you install developer tools on a fresh system?

#108
post #77

Earlier 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…

Thanks!

Re: Ask HN: How do you install developer tools on a fresh system?

#109
post #96
post #4

The 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/

Looks cool but I would be uncomfortable using this over HTTP, not HTTPS. Don't really want to risk a MITM when installing software on your machine (and giving it UAC _and_ your password).

Re: Ask HN: How do you install developer tools on a fresh system?

#110
post #48

I 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…

How do you keep track of symlinks?
Post reply on HN