3 ms·
The way this works is that the system-level packages handle setting up the metadata for the language's module system, either through files or install-time scrip
by microcolonel 13y ago
The way this works is that the system-level packages handle setting up the metadata for the language's module system, either through files or install-time scripts, and the language package itself handles the rest.
This is how it works in Python, Perl, Ruby, Guile, and even Emacs on at least Debian(and derivatives such as Ubuntu), Fedora (and derivatives such as RHEL, CentOS, Oracle Linux, and a couple others), Arch, and some others I won't bother to mention.
It doesn't matter whether you're using DPKG/APT, RPM/YUM/DNF, ALPM/Pacman, or whatever, the logic is handled in what files are in the package.
In a world where systems have decently-functional package managers of their own, there is no need for a language-specific package manager.
Language level package managers exist because on major desktop and workstation platforms, system package managers have failed.(OS X and Windows both have several broken, incomplete package managers; none of them are installed by default.)
The fact that this got upvoted so heavily is not surprising, given that judging by the current frontpage of HN, much of the userbase doesn't even know ^R does reverse interactive search in most terminals since the '80s.
- kryptiskt 13y agoSystem package managers conflate the stuff that is needed to run the system and what the developer builds with. They do badly in handling several different versions of libraries, they add latency of up to two years and only a subset of the packages are available. And when you are done you have to uninstall all the crap you installed instead of just blowing away the virtualenv (or whatever mechanism the language has).
- microcolonel 13y agoOf course, you don't actually need to uninstall all the crap, because when you install it only once on the system, you don't need to build thirty virtualenvs with roughly the same packages. Also, choosing system package archives is simple. If you want two-ish years of stabilization for a feature release, and you want bugfixes for two or three years or longer, you can go with Debian. If you pull most things off of head anyway then go with Arch. Of course, you're entitled to liking egocentric dependency resolution(or no dependency resolution at all, as practised by most), and I'm not going to stop you. But it really is very convenient and robust to handle high-level language libraries in a system package manager, it helps immensely when you intend to actually ship a piece of software rather than fapping off a script that some poor sap will need to update to patch five-year-old known remote vulnerabilities.
- voltagex_ 13y agoOn Windows, I may install pywin32 at system level, but I need a virtualenv with different versions of requests [1] for different projects. For .NET, NuGet is the only game in town - decent dependency resolution, a good package selection and if you do things right, no binaries stored in source control (except eleventy copies of NuGet.exe but I don't think they can fix that bad decision now...) Even on Debian I might go with a virtualenv or rvm because I don't necessarily want users to have to apt-get a whole lot of stuff just to run a simple script. >The fact that this got upvoted so heavily is not surprising, given that judging by the current frontpage of HN, much of the userbase doesn't even know ^R does reverse interactive search in most terminals since the '80s. That worries me too, but then I remember I don't have a clue about the functional programming articles that turn up here. It all balances out in the end. There may be a fair few people here who are making the shift from GUIs to CLIs for the first time, so it may not be a bad thing.
- spoiler 13y agoHey, until recently (about 6 months ago) I didn't even know about <Alt>+<.> either. It's not until you start using this stuff on a daily basis that you start discovering these things. Not everyone has been using Linux for long. Frankly, I consider myself pretty much a Linux noob. I'm a spoiled Windows brat, who only recently started transitioning to Linux (now Linux is the one spoiling me, but that's besides the point). This is the primary reason why I come to HN anyway. To learn. :-)
- e12e 13y agoWhat's alt-.? Some Gnome shortcut?
- jjoonathan 13y agoIn many/most shells (bash) it inserts the last word of the last line at the position of the cursor. It's very handy when you want to do two or more things to the same file because you don't have to retype the name, just hit alt-..
- e12e 12y agoAh, it changes my tile layout in xmonad... Edit: Well, I tend to use vim keybindings for readline, but I found it in the man page under "default keybindings", I think: "M-." yank-last-arg (...) "M-_" yank-last-arg No default binding for vi mode apparently.