liam_on_linux: (Default)
In the context of the `apt` command, `update` means "refresh the database containing the current index of what versions are in the configured repositories". It does not install, remove, upgrade or change any installed software.

I wonder if this is because of people lacking historical context?

The important things to know are 3 concepts: dependencies, recursion, and resolution.

The first Linux distributions, like SLS and Yggrasil and so on, were built from source. You want a new program? Get the source and compile it.

Then package managers were invented. Someone else got the source, compiled it, bundled it up in a compressed archive with any config files it needed and instructions for where to put its contents on your computer.

As programs got more complex, they were built using other programs. So the concept of "dependencies" appeared. Let's say text editor "Superedit" can import RTF (Revisable Text Format) files, and save RTF (Rich Text Format) files. It does not read these formats itself: it uses another tool, rich_impex, and rich_impex needs rft_import and rtf_export.

(Note: RTF and RFT are real formats and they are totally different and unrelated. I picked them intentionally as their names are so similar.)

If you need a new version of Superedit, then you first need new version of rich_impex. But rich_impex needs rtf_import and rtf_export.

So in the early days of Linux with package managers, e.g. Red Hat Linux 4, if you tried to install superedit.2.rpm, it would fail, saying it needed rich_impex-1.1.rpm. This is called a dependency.

And if you tried to install rich_impex-1.1.rpm, it said you needed rft_import 1.5 and rtf_export 1.7.

So to install Superedit 2, you had to try, fail, note down the error, then go try to install rich_impex, which would fail, then note down the error, then go install rft_import 1.5, and rtf_export 1.7.

THEN you could install rich_impex 1.1.

THEN you would find that it was now possible to install superedit_2.rpm.

It was a lot of work. Installing something big, like KDE 1, would be almost impossible as you had to go find hundreds of these dependencies, by trial and error. It could take days.

Debian was the first to fix this. To its package manager, dpkg, it added another tool on top: apt.

Apt did automatic dependency resolution. So when you tried to install superedit 2, it would check and find that superedit-2 needed rich_impex-1.1 and install that for you.

This is no use if it does 1 level and stops. It would fail when it couldn't install rich_impex because that in turn had its own dependencies.

So what is needed is a tool that goes, installs your dependencies, and their dependencies, and their dependencies, all the way down, starting with the ends of each chain. This requires a  programming technique called recursion:
https://dev.to/rapidnerd/comment/62km

Now, let's imagine that superedit-2, which depends on rich_impex, which depends on rft_import and rtf_export.

But sadly, the maintainer of rft_import got run over by a bus and died. So, no new versions of rft_import. That means no new version of rich_impex which means no new version of superedit.

So someone comes along, reads the source code of rft_import, thinks they could do it better, and writes their own routine. They call it import_rft because they don't want to have to fix any bugs in rft_import.

The writer of rich_impex does a new version, rich_impex 2. They switch the import filter, so rich_impex 2 uses import_rtf 1.0 and rft_export 1.8.

Superedit 3 also comes out and it uses rich_impex 2. So if you want to upgrade from superedit 2 to superedit 3, you need to upgrade rich_impex 2 to v3. To get rich_impex 3, you need to remove rft_import and install a new dependency, import_rft.

When you start doing recursive solution to a problem, you don't know where it's going to go. You find out on the way.

So apt has 2 choices:

[1] recurse, install newer versions of anything needed, until you can upgrade the target package (which could be "all packages"), but don't add anything that isn't there

OR

[2] recurse, install all newer versions of anything needed INCLUDING ADDING NEW PACKAGES, until the entire distribution has been upgraded

#1 is meant for 1 program at a time, but you can tell it to do all programs. But it won't add new packages.

So if you use `apt-get upgrade` you will not get superedit 3, because to install superedit 3, it will have to install rich_impex 2, and that means it would need to remove rft_import and install import_rft instead. `upgrade` won't do that -- it only installs newer versions. So your copy of superedit will be stuck at v2.

#2 is meant for upgrading the whole installed system to the latest version of all packages, including adding any new requirements it needs on the way.

If you do it, it will replace superedit 2 with superedit 3, because `dist-upgrade` has the authority to remove the rft_import module and install a different one, import_rft, in its place.

Neither of them will rewrite the sources listed in /etc/apt/sources.list. Neither of them will ever upgrade the entire distro to a new release. Neither of them will ever move from one major release of Ubuntu or Debian or Crunchbang or Mint or Bodhi or whatever to a new release.

All they do is update that version of the distribution to the newest version of that release.

"Ubuntu 20.04" is not a distribution. "Ubuntu" is the distribution. "20.04" is a release of the distribution. It's the 32nd so far. (W, H, B, D then through the alphabet from E to Z, then back to A. Now we're at F again.)

So `dist-upgrade` does not upgrade the release. It upgrades your whole DISTRO but only to the latest version of that release.

If you want a new release then you need `do-release-upgrade`.

Do not use `apt upgrade` for upgrading the whole distro; `apt dist-upgrade` does a more thorough job. `apt upgrade` will not install superedit 3 because it won't add new packages or remove obsolete ones.

In the old days, you should have used `apt-get dist-upgrade` because it will replace or remove obsoleted dependencies.

Now, you should use `apt full-upgrade` which does the same thing.

Relax. Rest assured, neither will ever, under any circumstances, upgrade to a new release.
liam_on_linux: (Default)
Ted Nelson, creator of Project Xanadu, widely-hailed as the inventor of hypertext. Xanadu never quite happened; what we got was a very watered-down version, the WWW.

Nelson's written several books, none of which I've read - but now, I really want to. In a series of bite-sized, sub-15-min videos, he presents his jaundiced but remarkably perceptive and insightful overview of the history of the personal computer - he's been there since the start.

Videos 0 through 4 are excellent high-level overviews. Number 5 is on hypertext, his specialist field, and he starts letting his bias show a bit; numbers 6 and the concluding N are, with the best will in the world, rants - but amusing ones and still informative as anything you could hope to find.

Strongly recommended viewing.

Read more... )
liam_on_linux: (Default)
In the beginning were the dinosaurs: Erwise, Cello, Mosaic, Lynx and things. Nobody under 40 remembers them and they're all long extinct. Everyone used Mosaic anyway, which was FOSS from the NCSA.

Nobody's heard of the NCSA any more, which is a shame as they also gave the world Apache and without them there wouldn't be a Web. They made something useful out of Tim Berners-Lee's work at CERN, but timbl and CERN are far more famous.

Odd, really, that neither CERN nor the NCSA ostensibly have anything to do with the Internet.

Mosaic begat loads of different browsers. All were also called Mosaic. Many were proprietary, "enhanced" versions, which actually weren't.

Only one was any good. Called - surprise! - Mosaic, it came from a company also called Mosaic. (Are you following all this?) Developed under the codename "Mozilla" - the Godzilla of Mosaics, you see - it was Mosaic with embedded pictures and FTP and cool stuff like that. Hey, it was 1994. People complained about the confusing name so the company renamed itself Netscape and renamed their browser Netscape as well, which isn't confusing at all. It was shareware, vastly successful, created the original 1990s Web and was killed off by Microsoft giving Internet Explorer away for free.

But as Ben Goldacre likes to say so much that he has put it on a T-shirt: "I think you'll find it's a little more complicated than that."

For starters, IE 1 was an optional extra for Windows 95, you had to buy it, and it was utterly crap. IE, incidentally, is also based on Mosaic, via Spyglass. MICROS~1 didn't write IE themselves, they just bought it in. You'd be surprised how many "Microsoft" products were not actually written by Microsoft: Powerpoint, Visual Basic, SQL Server, Defender, Frontpage, Mail and lots of others.

IE2 was free, but still rubbish. So was IE3.

So everyone used Netscape. A few even paid for it and Netscape Inc did tremendously well. This pissed off Microsoft, who don't really like anyone else making big money off their platform. So they worked away on IE until eventually, after about four versions, it was actually just about usable, kinda sorta ish.

And it was freeware.

Netscape wasn't, officially. It went through various stages, including being free only for non-profits and educational institutions, but it ended up proprietary, closed-source shareware. Home and non-commercial or non-profit use was free, businesses were meant to buy licences. Which most didn't.

It went through a whole bunch of versions, all of which were market-leaders in their time.

Netscape 1 was just a browser.

Netscape 2 added an email client and USENET news-reader. Not RSS, what we call a news-reader today, that hadn't been invented yet. Netscape 2 was a fair bit bigger than Netscape 1.

Netscape 3 Gold added web-page editing too. It was bigger still.

Netscape 4 sort of forked, internally: there was Netscape Communicator, a suite including a browser + email + news + address book + web editor + a proprietary shared diary - a huge app for the times,

And separately, there was Netscape Navigator, which was just a browser once again and thus was relatively svelte and quick - so naturally it never got updated past 4.0.x.

In the end, once IE was usable enough, everyone used that instead. Netscape Communicator was big, sluggish, took loads of memory and was inefficient - and it cost money. For instance, every time the window was resized, it re-rendered the entire page, as the rendering engine built a static page display for the current window dimensions. This was at the time when live window resizing was a trendy new feature of Windows - it was an extra in the same Plus! pack for Windows 95 that introduced IE to an indifferent world, and had even been retro-fitted on to MacOS 8.

Netscape complained that IE, a rival for their commercial product, was being given away for free - which counts as illegal restraint of trade. In response, MICROS~1 just bundled it with Windows and blithely claimed it had always been there, even though it wasn't in Windows 95 or Windows NT 3 and they also offered it for Mac and Unix. The US Department of Justice, remarkably, swallowed this, even though it was demonstrably utter bollocks, and let MICROS~1 off.

When Netscape Corp was bought out by AOL and broken up, the company's last act was to make the as-yet-unfinished Communicator 5 open source under its original codename of Mozilla.

After more than two years of work, this eventually became the Mozilla Application Suite, also the basis for AOL's Netscape 6 and 7. Netscape 6 was based on the unfinished Mozilla 0.6 code, and Netscape 7 on the final but unpolished Mozilla 1.0. AOL then outsourced it; Netscape 8 was based on Firefox 1 and Netscape 9 on Firefox 2. All were freeware; Mozilla itself was FOSS.

Mozilla was the Linux browser. It was the best FOSS browser, but that was because it was also pretty much the only FOSS browser. It was also a huge big lumbering thing, like Communicator before it, and it was unpopular on Windows and Mac (although I used it myself, as I am not a big Microsoft fan, as you might have worked out.)

Then Dave Hyatt and some mates, including a chap called Ben Goodger, stripped Mozilla down to just a browser, reinventing Navigator as if it were a new concept. They called it Mozilla Phoenix. Rising from the ashes, you see.

Phoenix the BIOS people complained.

They renamed it Firebird.

Firebird the FOSS database people complained.

They renamed it Firefox, which is a made-up word and obscure enough that nobody minded. It did brilliantly and still is today. The Mozilla Foundation consequently abandoned the Mozilla Internet Suite. The legendary open-source community took it up, renamed it Seamonkey and it's still updated. I still use it occasionally myself. It's OK. It hasn't lost any weight, but the relentless advance of computer technology means that it's no biggie any more.

Firefox is now under some threat from Google Chrome (one of whose developers being a certain Ben Goodger). Chrome is based on Apple's Webkit but with a better UI than Safari (a project headed, amongst others, by one Dave Hyatt). Webkit is Apple's cleaned-up, enhanced version of KDE's KHTML rendering library from the Konqueror browser. Webkit is so much better that KDE have given up on KHTML and now use Webkit too.

Now there are basically four main families of browser:
  • Internet Explorer. Windows-only nowadays, but to most people, IE is The Internet. IE6 sucks bigtime, but tons of big companies are wedded to it, so it shambles on, undead. I suppose that makes it a sort of zombie used by dinosaurs, which actually sounds kind of cool. IE 7 and 8 are sort of OK, if you're the sort of person who doesn't mind sharing needles with strangers.

  • Mozilla, AKA Firefox, Seamonkey, Camino and loads of others.

  • Both, ironically, while being lifelong bitter rivals, are descended from Mosaic.

  • Then there's Webkit, AKA KHTML, AKA Chrome, Safari, Konqueror, the Nokia Symbian browser and others. It was developed from scratch in the late 1990s.

  • And Opera, doing its own idiosyncratic thing for seventeen years. "MultiTorg" coexisted with Mosaic back when giants walked the Earth.
  • July 2025

    S M T W T F S
      1234 5
    6789101112
    13141516171819
    20212223242526
    2728293031  

    Syndicate

    RSS Atom

    Most Popular Tags

    Style Credit

    Expand Cut Tags

    No cut tags
    Page generated Jul. 11th, 2025 12:12 am
    Powered by Dreamwidth Studios