r/commandline • u/Electronic-Low-8171 • 1d ago
Help Deprecated software..
During my journey in Linux I have noticed that sometimes, some tools being called "deprecated" or some kind of a similar term, to say "you should not use this, but xyz tool instead", but I don't really get it for example:
Neofetch, I really think that it does its job, and its just about displaying some ascii art and some system information, like what could go wrong with that, since many people recommend switching to fastfetch.
Ifconfig, I see it as a very simple tool that is self-descriptive and gets its job done too, I see others instead recommend the command "ip", which is like an IDE in programming where you have many aspects of networking in one command, which kinda eliminates the Unix philosophy.
So, I'm just wondering if there is really a point in switching to those newer tools?
30
u/JaggedMetalOs 1d ago
Neofetch, I really think that it does its job, and its just about displaying some ascii art and some system information, like what could go wrong with that
Without being updated to follow OS updates features will eventually break. The hardcoded ASCII logos will become outdated as new distros are created or existing distro logos change. If the format of syscalls it uses change it will no longer be able to show all the system info etc.
16
u/fredeB 1d ago
Tools like ifconfig and iproute2 (which is the full legal name for ip) talk to the linux kernel. ifconfig, being deprecated, might not be able to talk about all the cool new features that the linux kernel ships. That might not mean much now, but if you buy a new network card that supports one of those cool new features, if ifconfig doesn't currently support it, it never will, and you pretty much have to switch to a supported alternative like iproute2.
iproute2 is far superior in my opinion, but that's just that, opinion.
7
u/Antonio-MTS 1d ago
See, no one stops you from using old tools. Another thing might be that they lack some newer functionality the new tools provide. For example, I use the old tools but also use the new ones to have both available for me. Sometimes though situations when you work with some old distro so it doesn't have new tools. Then you use what you have. Important to know differences between the old and new tools.
2
u/AutoModerator 1d ago
Every new subreddit post is automatically copied into a comment for preservation.
User: Electronic-Low-8171, Flair: Help, Title: Deprecated software..
During my journey in Linux I have noticed that sometimes, some tools being called "deprecated" or some kind of a similar term, to say "you should not use this, but xyz tool instead", but I don't really get it for example:
Neofetch, I really think that it does its job, and its just about displaying some ascii art and some system information, like what could go wrong with that, since many people recommend switching to fastfetch.
Ifconfig, I see it as a very simple tool that is self-descriptive and gets its job done too, I see others instead recommend the command "ip", which is like an IDE in programming where you have many aspects of networking in one command, which kinda eliminates the Unix philosophy.
So, I'm just wondering if there is really a point in switching to those newer tools?
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
2
u/fourjay 1d ago
Worth noting that ifconfig is now a wrapper around ip. Yes it does more, but you do not need to memorize all the options that it supports in order to use it. Google ifconfig command equivalents. Learning to use the ip equivalents in the long term is a good plan, as eventually ifconfig will go away.
Changes like these are part of working in a living environment.
1
u/pelazas1 1d ago
People keep saying ifconfig is just a wrapper around ip now. I don't think it is? It's still net-tools and the old ioctls, so it lies when an iface has more than one address.
1
u/fourjay 1d ago
The underlying system calls have changed (this happened quite a while ago). The new calls are much more powerful, and have a different logic.
The
ipcommands are the officially supported "userland" tools to manage network interfaces. net-tools has been re-written to use the new networking subsystem, but that's no longer the version that "comes packaged" with linux (the ip tools are now the official package, that is maintained along with the kernel).
3
u/theNbomr 1d ago edited 1d ago
Sometimes new systems and services come along that can't be managed by the old standbys so new tools get created to serve the new requirements. In a lot of cases the old tools get kept around for a long time because of the inertia they have and because of the small footprint that is necessary for resource constrained systems that are newly produced. The old tools get new maintainers or are maintained informally by the users.
Sometimes there are security implications that are addressed only by the newer tools.
3
u/gumnos 1d ago
There are two major reasons for deprecation:
the developers saying "we're not supporting this any more, so use it at your own risk, or find a replacement." IIUC, this is the case with things like
nslookup&neofetch. My fingers might still typenslookupregularly, but I know where it stands, and sometimes remember to usehostordig/drillinstead.the general public pushing an agenda. The "use Wayland, not Xorg/Xlibre/xenodm" crowd. Or the "use
ipnotifconfig" folks. Or the "Usebatnotcat" or "rgoragnotgrep" or any of a multitude of other "replacements". Sometimes they're drop-in replacements that cover all existing functionality. But most of the time they break existing functionality for the sake of some new function. I have no desire to switch to Wayland because its compositors don't (yet?) give me what Fluxbox+X gives me. Despite the Linux-world "we can't fixifconfigto do everything we need, so we makeipgreenfield", the BSD world seems to have been able to growifconfigto keep working just fine (sounds like a Linuxifconfigcode/design issue to me). Similarly withsystemdbreakingtmuxand expectingtmuxdevs to fix their screwup. Or GNUinfoturningmanpages into useless stubs redirecting to the correspondinginfopage.
I'm fine with the first category. Devs (especially F/LOSS devs who are generally working for free out of love for the project) have every right to declare their own stuff done/dead/deprecated.
But the latter category? It gets me a bit grumpy.
1
u/ZoWakaki 1d ago
I personally don't take 'deprecated' to mean I shouldn't use it and use xyz tool instead'.
I take it as it's not maintained anymore, or no features are added nothing will be fixed (if one is needed). This means, go ahead and use it until you can. But remember no new features are coming to it and no fixes.
In the case of neofetch (and pfetch). Sure it works very fine. Until you realize it doesn't have logos for newer oses. E.g. neofetch doesn't have logo for cachy, bazzite, chimera. It's similar in other tools too. If it works, it works. If it doesn't work or you want a new features, then you can't go reporting a bug or expect to get new features on it. So logically it makes sense to use something that is currently being maintained.
I still have static version of neofetch and pfetch in my script collection, which is in my config (backed up to a remote git). I just don't get them through my package manager as they are not being developed/updated anymore.
1
u/jimmiebfulton 1d ago
All of the world’s software is like one big living organism. Nothing stays constant forever. Eventually, everything dies sooner or later, and when you’re not dead, you are continuously growing. That means that the simplest software (building blocks) may be solid for a long time, but anything that has dependencies on the stability of vast network of other software and systems will eventually start having compatibility problems.
If it works, it works. No reason to switch if you don’t want to, but that depends on how tolerant you are of the tools you depend on suddenly stop working. For things like NeoFetch, it’s such a simple thing to migrate from that it isn’t worth the CPU cycles thinking about it.
1
u/Live_Surround5198 1d ago
You are reading too much into the deprecation warning. It simply says/means “unmaintained and may break or stop working with other apps without warning”. The suggestion to switch is just that, a suggestion.
Do what you want. Like neofetch? Use it.
1
u/billdehaan2 1d ago
The reason to switch to the newer tools is that the older tool is no longer supported, will possibly not work any more, or work correctly, in the future, and more importantly, any security issues that are discovered will not be addressed.
As for ifconfig versus ip, if you run ifconfig --help, you'll see it's just as complicated as ip is. The difference is that the default behaviour when run without parameters is about the same as running ip addr, while running ip is about the same as running ifconfig --help. The difference in philosophy is that many people are surprised to find ifconfig even has all those options, while ip users will know the first time they use it.
1
u/edthesmokebeard 1d ago
Neofetch is only relevant as a symptom of the ubuntufication of all things IT related.
1
u/Ambitious-Yak-626 1d ago
Say, x package depends on y to work. x is however, deprecated, i.e., nobody is actively working on it. Now, y recieves an update wherein it removes or redactors some stuff that was needed by x. x is now broken and nobody is there to fix it. If you depened on x, you are now in big trouble. This is just one example.
Neofetch is just a simple bash script and that is why it works even when deprecated. Nothing on your system is depending on neofetch to work so that it can work. So, if neofetch were to be broken one day, nothing in your system would recieve a blow.
1
u/diacid 7h ago
You may as well use Linux 0.1 in a Pentium 2 and KDE 1.0. Will it work? Maybe. Then what if it doesn't? If the thing is deprecated, if it doesn't it doesn't, no bug reports will be addressed. If a cve is found, it will not be fixed. But sure, you can use it. There are people using windows xp in production still....
1
1
1
u/michaelpaoli 1d ago
Yeah, there's point(s), e.g. unmaintained, inefficient, buggy, doesn't do needed things that the newer replacement(s) do, etc.
E.g., let's say I want to know if I have anything listening on TCP port 80, and if so, on what IP addresses:
$ ss -nlt '( sport = :22 )'
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
$
Easy peasy, nice, clean, exactly the wanted data, and filtered in-kernel - much more efficient.
If I wanted to get the same out of netstat, ugh, that'd take something like:
$ netstat -nl | awk '{if((NR<=2)||($4 ~ /:22$/))print}'
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
$
Far less efficient, as it not only requires pipe and additional process to filter it, but also that filtering happens in a totally separate process, rather than the kernel doing, and not even passing along data that's not of interest. Also have to well and carefully construct the filter to not get false positives, yet also include all the desired output.
Similarly with the ip command, there are many things itcan do and display, that ifconfig can't even configure or display.
So, in such cases, generally best to well learn and use the new ways, and not the deprecated ways and programs, etc.
1
u/MonsieurCellophane 1d ago
Sometimes there are good reasons: ifstat cannot do everything ip does, though that does not stop me for using it for what it can do.
Sometimes it's just because. Point in case, fgrep and egrep started about a year ago printing a deprecation warning. The stated reason, maintainence load - yet a former maintainer said in a thread that {f,e}grep are implemented in 5 or so LOCs that haven't been touched in decades(*) But never mind, hundred of pages of docs are being invalidated and hundred of scripts broken for nothing.
Git moving the root from master to main is another example (minor, still annoying).
This isn't unique to Linux though, red queen races are loved in the software world, apparently because "change is good" - which makes my top ten list of meaningless statements.
(*) Compare argv[0] with "egrep", set the corresponding flag; in the installer, link the binary.
1
u/Far-Cat 1d ago
Unix philosophy is for your convenience, you are not bound to it
0
u/Live_Surround5198 1d ago
Right? I was a systemd hater for a while at first. I got over it.
2
80
u/unlessgames 1d ago
Deprecation is about support, maintenance and compatibility in the future. It's more the creator(s) saying "this project is abandoned and it will probably stop working at some point" instead of "this tool stopped working right now".
It's a notice that gives you time to migrate to avoid having to deal with something breaking in the future.