this post was submitted on 01 Oct 2024
64 points (91.0% liked)

Linux

48008 readers
1847 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I know there choice of distro is really meaningless as you can install almost any program on almost any distro. But I have been playing with kali which is for security people and pen testers. Is there a similar distro for programmers? Like a few ides installed some profiling tools some virtual environment tools etc?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 6 points 1 month ago (8 children)

In my view, you need a distro that has up-to-date packages. It also helps to have repos that have all the obscure tools you are going to want to ensure compatibility with everything.

Those two criteria eliminate a lot of distros. Arch or an Arch derivative like EndeavourOS are my picks for these reasons.

[–] ouch 6 points 1 month ago (7 children)

Distro packages don't really matter much in my experience. You either use project-specific package management or install stuff with Homebrew or Nix package manager. Sometimes maybe even containers.

One problem with distro packages is that you can only install one version. And in practise a lot of software projects have outdated dependencies. Sometimes you have multiple projects with conflicting version dependencies.

[–] [email protected] 3 points 1 month ago (1 children)

One problem with distro packages is that you can only install one version.

This isn't technically true for all distros—Gentoo has a mechanism that will allow multiple package versions to be installed in parallel. I have multiple distro-packaged Python and Lua interpreter versions on my system, for instance. But it does require some extra work by the packager, so it isn't done universally for all packages.

[–] ouch 1 points 1 month ago (1 children)

Are these made similarly to how Debian handles python2 and python3 for instance?

I'm not sure that anything short of a package manager that would compile everything from sources would be able to provide capability to pick and mix specific package versions.

[–] [email protected] 2 points 1 month ago (1 children)

I don't know how Debian's solution works, so I couldn't say for certain. Gentoo usually installs the different package versions to their own directories, and there are methods for selecting a "system python" (or lua, etc) which is the target of the /usr/bin/python symlink. Other versions have to be called with qualifiers (for instance, python3.10). Python libraries installed through the package manager may install to one or several versions depending on the content of a couple of environment variables, and applications that need python can request a specific version if they need to, or accept the system python if they don't care. (Note that python2 is no longer eligible to be the system python—you need at least one python3, although 2.7.18 remains in the package repository and can be installed as well if you really need it.)

Of course, if you're not a programmer, you can leave the defaults for everything alone, and most of the time it should Just Work.

[–] ouch 1 points 1 month ago (1 children)

Sounds pretty close to Debian as far as I remember. In Debian those symlinks are called alternatives, and can be configured with update-alternatives. Not sure about the Python libraries though.

load more comments (5 replies)
load more comments (5 replies)