DEV Community

Cover image for Setting up a new dev machine

Setting up a new dev machine

As developers we have had to set up our development environment from scratch at least once.

Whether it's after getting a new machine or switching your operating system (as I have done a couple if times πŸ˜‚) could you share

  • The first tool/software you setup?

  • your must-have tools and environment variables?

Latest comments (63)

Collapse
 
luiz0x29a profile image
Real AI • Edited

Linux Xen Server.
I only use VMs as my desktop, if the hardware crashes or I need to set up another, I just move 10TB of file while I sleep.

I never reinstall things, I only update them, but I keep snapshoots of the images.
Its years since I had a full blown reinstall.

Sometimes I install new tools, but I keep images isolated from each other usually by project.

Collapse
 
darthbob88 profile image
Raymond Price

The first thing I setup is OneDrive, because I have a folder with all the applications I need to get a computer back to full operation. Then I run a Ninite installer with most of the stuff I need, install VSCode and Settings Sync to download my extensions there.

I also install Git, NodeJS/.NET runtimes, and some other fun stuff because this is also my personal machine, but those are the notable ones.

Collapse
 
hijoe profile image
HiJoe • Edited

I use dotfiles and run a script.

Collapse
 
mkultra329 profile image
Matt Kokidko

This should be easy since I am doing it now. Also, I’m a Linux command line junkie that usually work on windows for work so that should explain the first few: Git bash with my custom .bashrc and .bash_alias for quicker commands and some functions to pretty print remote branch commit and log details. Download tmux, the libs to enable it in the git bash shell, and my tmux.conf. Keepass to pull in my 10+ year old password file. WSL with Debian. Gvim, EMacs, and Notepad++. Winmerge. Firefox and chrome, logging in and pulling all my synced bookmarks and extensions. Firefox containers, tweak them and add new container or set of containers for new work environment. Vscode. Possibly squirrel sql client. Move mouse from the windows store to keep the computer from going to sleep when I’m looking at my other computer or stepping away for a few minutes.

Collapse
 
cednore profile image
cednore

I am a big fan of ubuntu as well. Here's a gist I use whenever I have fresh install of OS.
gist.github.com/cednore/65a11bef1f...

Collapse
 
dgosza profile image
Diego Souza

I’m on ubuntu… I got a shell script to install all softwares that I need in my device. Some things i cant install, such as zsh theme and some configurations in terminal…
in the same shell script, there’s a little step by step, in comment section, who has the links and β€œhow-do” to do X and Y stuff

Collapse
 
faaktap profile image
Fakie Tap

I discovered choco late in my life... but i do love it!

Collapse
 
ahmetcetin profile image
Ahmet Cetin

Or keep your repos in GitHub, open the repo in browser, and press dot in your keyboard (β€œ.”). VoilΓ , you start edit your code in vscode using your settings and plugins even if you keep your settings in GitHub as well.

Collapse
 
peterwitham profile image
Peter Witham

Over time I have started to think more about remote machines or containers to help with this. The problem with that for me is remote is great until you loose Internet (hey it happens more often than we think).

Right now I try to keep my automated script up to date for all the big things, but here's my starter.

  • I start with Xcode to get the command line tools.
  • Next is brew and run my script.
  • I recently started using this great script (paid version) Ruby on Mac Prime. It keeps Ruby and other vitals unto date without me chasing them all the time.
  • Then it's 1Password so I can access accounts easily.
  • JetBrains tool suite.

And that's my basic starter, doesn't sound like much but it gets all the things I need in place to start with the other things.

Collapse
 
unsungnovelty profile image
Nikhil • Edited

I have been playing with Nix package manager which provides reproducibility. And Nix package manager can be installed on most Linux distros and MacOS. This means you don't necessarily need to use NixOS to take advantage of Nix package manager. Just install Ubuntu, Debian, Arch or in MacOS and install Nix package manager. Another thing is that once you have setup nix and have a nix configuration file, all you have to do is run a command to reproduce the same result in a system. No more starting from scratch.

Another cool thing I am yet to play with is that you can use multiple versions of a package and use each version independently with nix package manager. This means AFAIK, I can have two versions of nginx and use both versions independently at the same time.

Nix repo have most of the apps necessary for a developer. IMO lesser packages than Arch repos including AUR and larger than a lot of the Linux distros.I can get latest stable packages like other rolling distros with unstable channel of nix. This will be my future. I would recommend checking it out -> nixos.org/learn.html.