OP said they were not looking for Ubuntu or Arch derivatives, and that they were not afraid to get their hands dirty to figure things out. Slackware + Flatpaks can give a stable base while giving you up-to-date applications when SBo doesnt have the build files. This would give OP a system that just works OOTB. Tho it is KDE OOTB, one can put gnome or cinnamon on it.
If you go with kubuntu you’ll be using snaps by default (which can be removed entirely with some tweaking) and they aren’t actually good (as with the recent steam issues)
What’s up with the ux design of nix? I get it’s made for advanced users but still. I’m reading through this guide and man it’s convoluted.
The different ways of installing packages. Either through editing the configuration.nix or running a command. The weird inconsistency of nix commands. nix-env -iA to install and nix-env --uninstall to uninstall. Then updating uses nix-channel --update but upgrade uses nixos-rebuild switch --upgrade. All this to use the package manager. Also haven’t even mentioned flakes or home manager.
It’s a cool OS, but the UX really needs work imo.
[Edit] I do wanna add something else too because I feel like my point isn’t getting across.
It’s okay to have a complicated ui. Especially if your target audience are tech-savvy. But even tech-savvy people have to start as new users. A tech-savvy new user isn’t going to know what the best practices are. Being able to anticipate the steps for installing a package is important for ux. If the commands for installing packages isn’t cohesive/intuitive, then the user has to spend more time looking for guides and learning how to use the software.
People also mentioned a new command in the works. This is great! However, these current commands are being recommended through blogs and nix. New users won’t know about this new command.
After trying out Nix as a package manager I realized I have a pretty different world view than the makers of Nix. I agree with the end goal but how they are trying achieve it is just alien to me. The nix command line is just downright user hostile.
I am personally hoping that someone else takes a stab at the Nix concept but have accepted Nix isn’t for me.
Yeah because when you make an error it causes a snowball affect and it shows you too little information but when you look at the trace its a wall of errors.
i had a syntax error in my dotfiles that took me two hours to solve.
it was a missing semicolon that was wayyy above where the error said it was. it didn’t even say missing semicolon, instead saying unexpected ‘}’ on line …
Imho I wouldn’t bother with nix-env or nix profile. It just creates a secondary list of packages that needs to be maintained and it’s cumbersome to do so. There’s nix-shell or nix shell if you need a package temporarily and there’s your configuration.nix or flake for everything else.
Side note: nix profile at least has consistent commands: install/remove/upgrade
They have resolved this exact problem. There is an “experimental” cli tool that fixes a lot of your complaints about nix-env, nix-channel, etc. Itcs wrapped together with “flakes”. This newer feature is a little different, and working with or without flakes segments the community AND the types of articles about nix, like this one.
As far as I know though, nixos related thing still have a bizarre set of commands, and even with flakes “nixos-rebuild switch --upgrade” is still how you switch configs.
And as far as installation goes, using nix-env -iA really is a bad practice. Thats installing something ad hoc like you would in any other package manager. That defeats the point of nixos, where your configuration file explicitly defines all the packages you need installed, and nothing else. Nix will remove any packages you didnt specify.
Oh that’s good that they are addressing those issues with a new command. Hopefully it gets into stable soon.
Might be that nix-env -iA is bad practice! I’m strictly talking about ux design here and nix-env -iA is being recommend by blogs and nix themselves. (Nixpkgs tells you how to install using nix-env -iA)
A new user isn’t going to know what bad practice is.
It actually recommends using nix-env -i, which is even worse because with that command it searches the whole repository instead of just getting the correct attribute on nixpkgs. It takes half a minute to run the command, it’s insane.
I do think it’s important to emphasize the difference between installing software in user environments and system wide, which is why the tool is named nix-env. System packages must be installed via the nixos configuration file and a rebuild.
To me the biggest missing piece for new users is a tool to help manage your system configuration and reduce the frustration of having to constantly look up nix syntax or nixpkgs quirks. Maybe thinking of it as a nixos/nix IDE? Also a polished distribution built on nixos would be a good starting point (and easy to do, I didn’t realize I could just copy someone else’s configuration until well after I had my system working well enough)
The other thing that got me starting out is the need to garbage collect old packages. It’s not strictly necessary if you have a large enough disk, but it took me several iterations of filling my root partition before I figured out how to properly clean up old generations.
Is my go-to command. For a while I was looking at generations manually, but now I just wait a while (days, a few reboots, or until I need more space) to run this after changing things in case the new stuff is broken.
I think running this as my normal user cleans out old env generations… But I’m not 100% sure.
There is controversy in the nix world because nix flakes were (some say) merged without proper vetting first. OG nix diehards don’t want to taint nix documentation with ‘experimental’ flakes. But probably the majority of nix users are all in on flakes. So you have documentation from the OG camp that doesn’t include flakes, and you have innumerable unofficial guides for the flakes way. This on top of the quirkiness of nix the language and the multiple ways to do things. Unfortunate.
IMO nix-env was a mistake. It feels like an imperative package manager which may be comfortable to new users who are used to apt or similar. But really what you should be doing on nix is maintaining *.nix files which document/specify your system setup, and nixos-rebuild to update your system to that configuration. Similarly, nix channels are an imperative holdover, which can be done away with if you use flakes, which results in your current nixpkgs version being documented in a system level flake.lock file.
I think both nix-env and flakes are designed with making package management easier. Nix-env tries to make it intuitive and familiar for new users. Flakes improve package management by simplifying the configuration.
Personally I would love to see syntax highlighting, language server, code completion. Maybe all in a dedicated application which is configured to give the easiest experience for new users. If nix is intended to be managed through config files, then the experience of writing a config should be as easy as possible.
The intent of nix-env was to make it easier, but the effect was to push some of your system state into a shadowy ‘env’ realm that is not managed by your *nix files. Same with channels - its state that isn’t in your configuration.nix.
To me the whole point is to have all your state in some files you can check in to version control, and use to reproduce your system.
Agree it would be cool to have a way to edit nix files that would give you all the args to functions, code completion etc. You do get some of that with the nix repl. Would be nice to even have a GUI for selecting packages for those that don’t “do” text editing.
I’m using nixd for a nix language server, but haven’t seen a lot of benefit so far to be honest. I think part of the reason is nixpkgs isn’t pulled in until runtime, so most things are undefined as far as the lsp is concerned. Haven’t put a lot of time into it, there may be ways to make it more useful.
If your setup allows you to be a productive member of society, you’re golden mental health wise. /s
You may want to get your eyes checked if watching HD video on a tiny screen seems preferable unless all your content fits your displays native resolution; I am fairly certain my eyes are terrible. Maybe that’s why I love that dark themes are becoming more popular.
Transparency is nice, but Windows Vista is partially what converted me to Linux. I dislike rounded corners too, since content is always rectangular.
I don’t know why no mainstream desktop OS really has a good mouse driven tiling setup out of the box. I have a dual screen setup, so I mostly just full screen apps and alt tab if needed which reduces distraction. If I’m trying to focus on a single thing, the second screen gets turned off.
I find myself becoming more minimalist over time as well. Society seems to be more distraction driven by the day, so having an OS that stays out of the way is a boon.
When I’m in a GUI, I like the Win95 UI paradigm. That’s one of the few good things that came out of Microsoft: I like the classic Windows look-and-feel. That’s why I run Mint / Cinnamon. I’ve tried minimalistic tiling window managers and I can’t stand them.
However - and that’s the weird thing - most of what I do in Cinnamon is open terminals with tmux that I… tile. And within one tmux pane or window, there’s a very good chance I’ll run vim with several files edited in split screens 🙂
I spend 75% of my time working in a terminal - sometimes in a real Linux console, but most of the time in a Cinnamon terminal. And I’ll do the minimalistic thing within the terminal because that’s how I’ve been rolling since the early eighties and it’s just how my workflow is most efficient. But I really like the Windows-like graphical environment around the terminals. Call me weird…
Ooh, I might actually be able to help here. Try disabling screen sleep in your power options and see if that fixes it. It took me a long time to narrow my issues down to that. I still don’t know why it happens.
And definitely let me know if that fixes the issue for you. I’d love to know it’s not just me and my laptop.
I was running dnf update when the system was shut down, and I rebooted when the power was back. The system apparently booted normally, and I tried to complete the upgrade process, to avoid issued. Now, the “dnf update” command shows the error message I posted.
In the original post, the error was in portuguese. Now I changed system language to english and posted the entire output of dnf update in the original post, to make it more readable for the community.
SATA III is gigabit, so the max speed is actually 600MB/s.
What filesystem? For example, on my ZFS pool I had to let ZFS use a good chunk of my RAM for it to be able to cache things enough that rsync would max out the throughput.
Rsync doesn’t do the files in parallel so at such speeds, the process of open files, read chunks, write chunks, close files, repeat can add up. So you want the kernel to buffer as much of it as possible.
If you look at the disk graphs of both disks, you probably see a read spike, followed by a write spike on the target, instead of a smooth maxed out curve. Then the solution is increasing buffers and caching. Depending on the distro there’s a sysctl that may be on by default that limits the size of caches to prevent the “I wrote a 4GB file to my USB stick and now there’s 4GB of RAM used for it and it takes hours after finishing the transfer before it’s flushed to the stick”.
SATA III is gigabit, so the max speed is actually 600MB/s.
My mistake, though still, a 4tb transfer should take less than 2hr at 5Gb/s (IN THEORY) Thank you @Max_P for pointing this out a second time elsewhere: 6Gb/s is what the sata 3 interface is capable of, NOT what the DRIVE is capable of. The marketing material for this drive has clearly psyched me out, the actual transfer speed is 210Mb/s
The filesystem is EXT4 and shared as a SMB… OMV has a fair amount of ram allocated to it, like 16gb or something gratuitous. I’m guessing the way rsync does it’s transfers is the culprit, and I honestly can’t complain because the integrity of the transfer is crucial.
I’m interested in ksmbd… I chose SMB simply because I was using it across lunix/windows/mac devices and I was using OMV for managing it, but that doesn’t mean I couldn’t switch to something better.
Honestly though, I don’t need faster transfers typically, I just happen to be switching out a drive right now. SMB through OMV has been perfectly sufficient otherwise.
ksmbd is still SMB, except it’s implemented within the Linux kernel. As a result, file transfers speeds are improved greatly compared to pure-Samba which runs only in userspace.
The second thing is, you need to check which SMB protocol you’re using, ideally you’d want to use at least SMB 3, anything older than that will be painfully slow.
Finally, I read in your other comment that you’re using spinning disks and a USB dock. That adds significant overheads.
The Ironwolf drive benchmarks starting at 250MB/s and slows down to 100MB/s as it reaches the end of the drive. (spinning disks gradually become slower the more full it becomes.) Now add file fragmentation + filesystem overheads (buffers, cluster size allocation etc) and the speeds could go down considerably.
Then there’s your SATA > USB dock - no dock would ever reach 5Gbps, that’s just false advertising - it’s only mentioning the theoretical protocol speed. In reality, you’d be seeing something like below 100MB/s write speeds for 128k sequential writes, but if your block size is smaller, expect far slower writes.
Combine all of the above and you can imagine just how much slower this whole thing can be.
For reference, see this benchmark as an example, to see what’s “normal” for a simple file transfer to a blank drive with no fragmentation: www.anandtech.com/show/6014/…/3
As someone on the edge of making the change myself, I have been enjoying these posts because I have been getting to learn some of the different distros and there pros and cons. Lemmy isn’t insanely active right now, so you get a different group of perspectives with each iteration of the question.
Maybe once lemmy gets bigger we can break off these sorts of questions into their own catalog but for now I think they are doing more good than harm here.
Just my two cents tho, obviously you have the right to disagree :)
yes, the last 2 mentioned commands throw the error below and won’t continue the operation:
<span style="color:#323232;">Error:
</span><span style="color:#323232;"> Problem: The operation would result in removing the following protected packages: systemd, systemd-udev
</span><span style="color:#323232;">
</span>
It seems that the consensus from all the comments is that you do in fact need a firewall. So my question is how does that look exactly? A hardware firewall device directly between modem and router? I using the software firewall on the router enough? Or, additionally having software firewall installed on all capable devices on the network? A combination of the above?
Depends on your setup. I got a network-level firewall+router setup between my modem and my LAN. But also, got firewalld (friendly wrapper on iptables) on every Linux device I care about because I don’t want to unintentionally expose something to the network.
hm, guess maybe I should find something for Android and my Windows boxes.
And like most things related to Linux on the internet, the consensus is generally incorrect. For a typical home user who isn’t opening ports or taking a development laptop to places with unsecure wifi networks, you don’t really need a firewall. It’s completely superflous. Anything you do to your PC that causes you genuine discomfort will more than likely be your own fault rather than an explicit vulnerability. And if you’re opening ports on your home network to do self-hosting, you’re already inviting trouble and a firewall is, in that scenario, a bandaid on a sucking chest wound you self-inflicted.
linux
Active
This magazine is from a federated server and may be incomplete. Browse more on the original instance.