this post was submitted on 13 Jan 2024
59 points (98.4% liked)

Linux

48012 readers
751 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
top 12 comments
sorted by: hot top controversial new old
[–] [email protected] 16 points 9 months ago

Make is simple, easy, and effective. It's just "configure" that's full of black magic.

[–] [email protected] 4 points 9 months ago (3 children)

Autocrap is a bloated obsolete stuff that is mostly replaced with other tools like cmake or meson. There's no need to learn it today.

[–] [email protected] 6 points 9 months ago (2 children)

Hell maybe I do need to learn some shit, because I was under the impression that you cd into the folder after you untar it, then type ./configure make sudo make install, but the last two packages I attempted to install from source like this just did nothing.

[–] [email protected] 5 points 9 months ago (1 children)

The first step after you untar is always "open the README and look for build instructions."

[–] [email protected] 2 points 9 months ago

Thankfully, none were included lol. I think they assumed I already knew.

[–] [email protected] 4 points 9 months ago (1 children)

Maybe. But maybe they did nothing because there was no ./configure script and you had to use another tool, e. g. one of that I mentioned, so you need to learn another shit.

BTW installing anything from source like this is the right way only in (B)LFS.

But you definitely don't need to learn this if you are a developer and starting a new project in 2024. You can use cmake or write plain makefiles, even shell scripts if you want, but as you value life or your reason keep away from the autotools. It is a nightmare to debug thousands lines of scripts they generate and put into your source tree.

[–] [email protected] 1 points 9 months ago* (last edited 9 months ago)

You assume everyone has root.

On a system I don't administer, I can compile and install software in my home directory (or shared directories that I have write access) by using:

./configure --PREFIX=/home/myuser/software/

make # to compile

make install #without sudo, to install to ~/software/bin

So when you say "only in (B)LFS", you're overlooking a VERY common use case - especially in HPC and other systems NOT running on my desk/lap.

[–] [email protected] 3 points 9 months ago

This. If you're starting a new project, and are not GNU, just use Meson. It's the best widely-used build system.

[–] [email protected] 1 points 9 months ago (1 children)

Indeed - the general configure, build install steps are fairly universal and the configure script doesn't have to cover from autoconf. We still have that and Makefiles as a wrapper around a meson based setup to keep the process familiar.

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

Eww. Just teach meson setup builddir && cd builddir && meson compile

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

There are still some things meson can't do which we need the configure script for. The meson upstream are slowly working through our feature requests 😉

[–] [email protected] 2 points 9 months ago* (last edited 9 months ago)

Really? I supposed that I'm too conservative for still using cmake. But seems there's a reason for that. ☺

Well, seriously, I don't like meson because it does some things another way than more traditional tools for no reason. Sometimes this is painful, especially when cross compiling. Seems that it was originally designed without cross compilation in mind unlike cmake.