bradwilson / ansible-dev-pc Goto Github PK
View Code? Open in Web Editor NEWAnsible script to stand up a new development machine (Ubuntu/Pop!_OS)
License: MIT License
Ansible script to stand up a new development machine (Ubuntu/Pop!_OS)
License: MIT License
It would be nice to be able to disable things individually with environment variables.
For example: set ADP_RUBY=0
to disable installation of rbenv and Ruby.
Then it would be trivial to get something highly customized just by adding a shell script to set all the variables you care about (for example, maybe you only need .NET on the dev machine and don't care about anything else, so you skip Ruby, Node, Python, etc.).
There are several issues and the general recommendation is to hold back libc6 or not use 20.04 at all.
The first error you will find if following the readme in this repo is about a /tmp drive. The real issue there is that the sleep command is broken. See: https://askubuntu.com/questions/1230252/sleep-doesnt-work-on-ubuntu-20-04-wsl
If you sub out the /usr/bin/sleep command you will run into a second issue with the TASK [Add Microsoft APT package key]
See: microsoft/WSL#5125
The general recommendation there is to hold back libc6.
I decided to just avoid 20.04 on wsl for now...
Today, the list of Gnome extensions is outdated, and likely we are often installing the wrong version because it's not cognizant of the shell version that's in use vs. shell compatibility.
TL;DR: Remove dependency on snap so we can remove dependency on systemd in WSL 2 because bad things happen.
The longer version:
I just spent a couple hours puzzling about why I couldn't run a Docker container that was exposing port 5000, because it said port 5000 was already in use. Using all the normal tools (netstat
, lsof
, ss
, etc.) the port was shown as opened but not owned by any specific process.
There were actually three ports in this condition: 22
(for SSH), 53
(for DNS), and 5000
(which ostensibly is for UPnP, though I did not have UPnP enabled in my WSL image. This was very curious.
A second piece of the puzzle: I run multiple WSL distros. The distro where most of the ports were shown with owning processes (but 22, 53, and 5000) weren't we'll call image "A". So I fired up a shell for image "B", which it turns out was already running. I ran sudo ss -plnt
and I saw a very strange thing: three ports were in use with named processes: 22, 53, and 5000; and a whole bunch of ports were active without owning processes.
The lists were identical but inverted.
It turns out WSL not only reflects open ports from WSL images into Windows (so you can run a server in WSL and talk to it from Windows), it also does that between running WSL distros. So the open port 5000 in distro "B" was reflected into distro "A". (Coincidentally, I was running the same service in distro "B", but I've been trying to move myself into the new distro, and forgot that it was still running).
So why should ansible-dev-pc stop depending on snaps? Snaps require systemd. As noted above, enabling systemd means you start running at a minimum ssh & DNS. If you boot up two WSL distros at the same time that have systemd enabled, the second one to "boot" will collide with the first one.
And now you know.
Debian 11 has shipped: https://www.debian.org/News/2021/20210814
PowerShell is currently not functional on Ubuntu 24.04, despite the fact that the dotnet tool install
succeeds. The dependency that's missing is libicu
; 24.04 supports version 74, but the current PowerShell caps out at version 72.
Dependent issue: PowerShell/PowerShell#21385
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.