Linux complaints

Why is the linux filesystem so retarded?

binaries:
/bin
/usr/bin
/usr/share/bin
/sbin
/usr/local/bin
/usr/share/local/bin
/opt
/home/user/bin

config files:
/usr/share
/etc
/usr/lib
/usr/lib64
/usr/include
/usr/etc
/opt
/home/user/.

I can imagine at most two locations, one for package manager installed applications and one for user installed applications (or just put them in ~/bin).

Also general linux complaint thread.

Other urls found in this thread:

en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
tldp.org/LDP/Linux-Filesystem-Hierarchy/html/index.html
gobolinux.org/?page=doc/articles/gobohide
github.com/gobolinux/GoboHide
news.ycombinator.com/item?id=3519952
news.ycombinator.com/item?id=9554134
news.ycombinator.com/item?id=13011594
man.openbsd.org/hier
twitter.com/AnonBabble

Why are you even messing around in there?

>config files
>/usr/share
>/usr/lib/
>/usr/include
you're retarded

Because matlab was not installing correctly with the right execution permissions so I had to go in and change them manually

>pic related

I've had to edit cmake files in there to get certain programs to build correctly

>/home/user/bin
>/home/user
kek

I try to store everything I build from source in ~/bin and 95% of my configs are dotfiles in ~/ so I don't really know what you are getting at here

install gobolinux

It is made by retards for retards with no proper standard of doing things.

so fucking comfy

can lennart make this the default for all distros?

also /usr/sbin

probably a few others

do not get me started on python site-packages and pip

Why there are no drives in linux

Daily reminder that /usr was meant for user's files

>do not get me started on python site-packages and pip

FUCK PIP

I can never figure out where the fuck it stores anything or when it chooses to conflict with my package manager, EVEN WHEN I AM USING VIRTUALENV

>Also general linux complaint thread.
>usr
>not where the user directories are

Is this bait?

donot get me wrong it is better than nothing

I reccomend using pip install --user though, and let the package manager install what you have packages for

pip3.5 install etc for different python versions

>.cmake
that's not a configuration file

>not having /bin/laden

>automatically comes up upon system boot
>automatically created at boot if it doesn't exist
>tiny app lets you nuke it...GRAPHICALLY
>then recreate it and nuke it AGAIN AND AGAIN AND AGAIN ad infinitum

Yeah, the directory tree always struck me as a mess.

Who knew backwards compatibility with 1970s operating systems would be so messy?

>using a secret club OS

It's your own damn fault, my friend.

en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

The /usr level directories were added because ancient Unix systems had very limited storage so the devs just mounted more storage volumes under /usr.

Linux has these redundant directories because it's unfortunate enough to compatible with Unix which also has them.

>no drives in linux
what?

educate yourself
tldp.org/LDP/Linux-Filesystem-Hierarchy/html/index.html

Some of the directories make sense like
Second party stuff goes in $prefix
While third party stuff goes in $prefix/local

But user/share is a fucking mess

it used to be, senpai

There is a package called gobohide which let you do the same thing on non gobolinux distros

gobolinux.org/?page=doc/articles/gobohide

github.com/gobolinux/GoboHide

news.ycombinator.com/item?id=3519952
news.ycombinator.com/item?id=9554134
news.ycombinator.com/item?id=13011594

thats beautiful. it looks like those """"linux"""" systems showed in csi shows

>distro solves annoyance in a beautiful way
>will never become mainstream
>can't use snowflake distro because snowflake
linux is such a curse

in arch, all binaries are in /usr/bin
tell me, which one folder holds all your binaries in windows?

you shouldn't be using pythons' package manager in linux, linux already has a package manager
it's useful on things like windows, but just messy on linux

a lot of python packages do not exist for the distributions package manager
sometimes you also do not want it globally installed

writing say an ebuild is a bit more effort than doing pip install --user

do whatever you want, just don't complain about something you chose to do

Pip install --user helps

Microsoft Windows doesn't have this problem.

> GNU + Linux
> backwards compatible

I think he's asking about drive letters like D: E: etc.

Well Unix is backwards and it's compatible with that so it seems to add up.

How did apple manage to make BSD so user friendly?

They bought NeXT and touched up NeXTSTEP's UI

"drive letters" are just mountpoints
the device and partition nodes are not exposed to the visible filesystem like they are in linux

basically;
windows device node: \\.\PhysicalDrive0
linux device node: /dev/sda
windows mountpoint: C:\
linux mountpoint: / (or any directory under it)

i was a bit thrown off by the whole single filesystem (VFS) thing in linux first time i used it as well, but it makes sense in its own way

You can mount drives under directories in windows as well but no one does it.

Okay but seriously why in the fuck does linux have all this /dev/ttyS0 /dev/ttyAT0 nonsense bullshits?

yea, that's true

Ah, so I'm not insane?
I'm new to Linux, and I thought there was something I wasn't understanding. It's just stupid, I get it now.

>/applications
>/library
>/developer
>/support
>/network
>/users
>/volumes
OS X does not have this problem.

One thing that''s always pissed me off about linux is battery life. Why is battery life in linux so shit? I get linux runs on fucking everything from toasters to supercomputers and they can't optimise it for everything but holy shit even winshit with Butt Fuck Telemetry TM has better battery life.

>I get linux runs on fucking everything from toasters to supercomputers
you answered yourself

>~/user/bin

top tier kek

Even with TLP optimisation, it's shit. Plus winshit runs on a ton of devices as well, I get ~2 more hrs battery life in winblows than linux.

Yes it does.

install tlp.
thank me later.

I'd just like to interject for a moment. What you're referring to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.

Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called "Linux", and many of its users are not aware that it is basically the GNU system, developed by the GNU Project.

There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called "Linux" distributions are really distributions of GNU/Linux.

No, you piece of shit. It's just Linux.

No, Richard, it's 'Linux', not 'GNU/Linux'. The most important contributions that the FSF made to Linux were the creation of the GPL and the GCC compiler. Those are fine and inspired products. GCC is a monumental achievement and has earned you, RMS, and the Free Software Foundation countless kudos and much appreciation.

Following are some reasons for you to mull over, including some already answered in your FAQ.

One guy, Linus Torvalds, used GCC to make his operating system (yes, Linux is an OS -- more on this later). He named it 'Linux' with a little help from his friends. Why doesn't he call it GNU/Linux? Because he wrote it, with more help from his friends, not you. You named your stuff, I named my stuff -- including the software I wrote using GCC -- and Linus named his stuff. The proper name is Linux because Linus Torvalds says so. Linus has spoken. Accept his authority. To do otherwise is to become a nag. You don't want to be known as a nag, do you?

I'd like to point out that we Linux and GNU users shouldn't be fighting among ourselves over naming other people's software. But what the heck, I'm in a bad mood now. I think I'm feeling sufficiently obnoxious to make the point that GCC is so very famous and, yes, so very useful only because Linux was developed. In a show of proper respect and gratitude, shouldn't you and everyone refer to GCC as 'the Linux compiler'? Or at least, 'Linux GCC'? Seriously, where would your masterpiece be without Linux? Languishing with the HURD?

>the device and partition nodes are not exposed to the visible filesystem like they are in linux
Not the user you were typing at, but this piqued my interest, so I looked into how to view Windows device nodes; looks like the good stuff is only viewable with a kernel debugger, but you can see some stuff in the Registry: HKLM/SYSTEM/CurrentControlSet/Enum//.

Neat.

BSD's file system isn't as retarded as the one in most linux distros

>dude let's put everything under /usr lmao

yea, windows (NT) is a strange beast, internally, windows is very different, it's just presented the way it is because of legacy support
running win32 software on windows nt is not unlike what wine does, win32 is a layer that runs atop NT, nothing a typical user does ever interacts directly with NT

>tfw you realize your current OS sits atop the desiccated electronic bones of OSes going back to NT, or even DOS

Either you are using resource intensive WMs like GNOME and Unity or your hardware isn't optimized for Linux.

You probably have an older laptop
Anything 15w ulv runs equally on tlp Linux and windows 10

>"going back to NT"
current windows is still NT, it's just not called that "on the box" anymore
but otherwise yea, microsoft can't really drop/replace things completely, lest they risk breaking old software

You think there's any chance they might make a clean break at some point, start from pseudo-scratch?

>lest they risk breaking old software
Which they do anyway. Windows 7 was pretty much a "fuck everything before XP and most stuff after it" release until updates came.

Hierarchical filesystems were a mistake.

What's the alternative?

>Hierarchical filesystems
Leaving everything lying around in the root, like in the old mac days.

they would need to somehow be forced to do so
legacy support is pretty much the reason people still use windows

they try not to, while a lot of stuff does break, it's honestly pretty amazing how much keeps working
it's absolutely not an easy task to make something both "modern" and "runs hacked-together software that uses long-obsolete functions and hasn't been updated in 20 years"

I think most of this thread is summarized in 4 letters

RTFM

Unironically, yes.
Files should be identifiable by a unique hash by the filesystem and then sorted through a relation database.

>dragging databases into filesystems
shiggy

as long as I can view my data in some sort of tree-like structure, I'm in!

That is pretty much what a hierarchical filesystem is supposed to do you fucking idiot
Unless you're suggesting something like WinFS which is never going to work, for a lot of reasons.

It started off simple, /bin for binaries, /etc for anything those binaries needed, /var for their output and working files etc, and /home for whatever the user wanted

Then there was /sbin for system binaries, /usr for less essential programs, /usr/share for platform independant stuff, /usr/local for the opposite of that, /usr/lib for shared libraries, /usr/lib64 because 64-bit was unimaginatively bolted on, and /opt to let 3rd party programs do whatever the fuck they want

i thought /sbin was for scripts

So say you download a source and build it, and there's no installer, are you suppose to split up the output binary, resources, libraries into those folders? Or just stick the whole mess in /home/bin and call it a day

I like the Linux filesystem...

Is /var/ like... Temporary files?

>mathlab
I gave up on trying to make it run on Linux

they're stuff that changes a lot mostly

Does it even matter? Just put them all in your $PATH and forget about the actual path of the command.

I could be wrong but I thought it was for system administration
If you can do `sudo make install` just do that, otherwise just build it wherever and put a link to the executable in ~/bin

No, that's /tmp

/sbin are system binaries. Some systems only add it to the $PATH if you are root or using sudo

Amongst other things, like logs, and Apache defaults to serving /var/www

Just don't mess with it. Use your package manager, /opt or your ~/bin.

So what is the difference between var and tmp? I know its a dumb question, I just want a conversation ;_;

So long story short, use BSD and not a retarded cousin of UNIX.

There's hash based filesystems. Used for stuff like CDNs or stuff like that.

Well nothing bad aught to happen should you delete the contents of /tmp, but there's probably more useful stuff in /var. Some systems mount /tmp as ramfs for that reason

Tmp files are deleted on reboot or scheduled. Never expect a file there to last too long. It's usually in a ram filesystem, not your disk.

Var is for files used by the programs, they put them there and they can expect them to be there. You can find stuff from logs to database files to VM filesystems.

man.openbsd.org/hier
ah you're both right

>implying a fs isn't a DB

shiggy

Let's go through those to see what my system actually has:

>/bin
A symlink. Not a directory.
>/usr/bin
Where they should be.
>/usr/share/bin
Don't have this.
>/sbin
Again, symlink.
>/usr/local/bin
Pretty stupid.
>/usr/share/local/bin
Don't have this.
>/opt
This is literally the entire point of opt.
>/home/user/bin
This makes sense, where else would user specific binaries go, not that I've ever met anyone who actually does this.

>/usr/share
I think calling the contents of this "configuration files" is pushing it a bit.
>/etc
Where they should be.
>/usr/lib
Not what you think it is.
>/usr/lib64
Not what you think it is.
>/usr/include
Not what you think it is.
>/usr/etc
Mine's empty. Would be pretty stupid otherwise.
>/opt
This is literally the entire point of opt.
>/home/user/.
This makes sense, where else would user specific config go? I guess you could put them in a /home/user/etc/ folder but that seems like splitting hairs.

In conclusion, two of those are legitimate complaints, at least on Arch, but only one of them is utilized. Maybe other distributions are worse I don't know, but it seems like you're reaching (and don't understand half the shit you're looking at).

>/home/$USER/bin

it's called ~/.local you fucks ~/.local/bin, etc.

it's so retarded

i wish there was a variable so all the freedesktop shit could go under ~/local instead, i use a similar layout myself

>>/home/user/bin
>This makes sense, where else would user specific binaries go, not that I've ever met anyone who actually does this.
I put mine in /home/user/.bin/
they're just scripts and it's added to my $PATH

~/AppData/Local
~/AppData/Roaming
~/AppData/LocalLow
~/Documents/GayProgram.conf
~/ProgramData/GayProgram.conf
HKEY_GAY_PROGRAM
~/Documents/Games/GayProgram.conf
~/Documents/My Games/GayProgram.conf
~/Program Files/GayProgram.exe
~/Program Files(x86)/GayProgram.exe
~/AppData/Roaming/GayProgram.lnk -> ~/AppData/Roaming/GayProgram/dist/1.3409/exec/gayprogram.exe

daily reminder that macOS is the only one that has gotten it right.