Posted by
michael
on from the my-own-catapult dept.
libertynews writes "KPLUG President Kevin Pedigo has just announced his latest project -- RPMPAN, an archive of CPAN Perl modules in RPM format, generated nightly."
207 comments
perl with RPM lovin' ?
by
imag0
·
· Score: 5, Funny
I can see where this can go wrong...
# rpm -i myperl.rpm
warning: libsomeshit.so not installed
# rpm -i --force myperl.rpm
warning: libsomeshit.so not installed
# rpm -i --force --nodeps myperl.rpm
segfault. core dumped.
# rm -rf/
Re:perl with RPM lovin' ?
by
Aliencow
·
· Score: 5, Funny
It's more like:
# rpm -Uvh myperl.rpm
warning: libsomeshit.so not installed
# rpm -Uvh myperl.rpm someshitlib.rpm
warning: libXML is missing
# rpm -Uvh myperl.rpm someshitlib.rpm libxml.rpm
warning: mozilla is missing
Then you go berserk. You mirror rpmfind, rpm -Uvh *.rpm, end up with multiple versions of crap in different places, and corrupt the UNIVERSE.
Re:perl with RPM lovin' ?
by
Anonymous Coward
·
· Score: 0
Yeah, I thought shared libraries were supposed
to make life easier. Remember how Microsoft
used to be criticized for DLL hell?
Recently I wanted to install a newer copy of
Lynx (the text mode web browser). So I get a
copy from a Red Hat mirror. I go to install
it and it depends on at least *twenty* different
libraries (lots of junk like Kerberos -- what th fuck?) Maybe more when you start recursively
working your way through the prerequisites.
Red Hat Lynx checks in at over 1.5 megabytes. I think
that the Opera graphical browser is smaller.
The irony is that shared libraries make it *very* difficult to
do a real small stripped down Red Hat installation.
There are too many cascading dependencies.
You would be better off compiling the stuff
you want statically. You'd save space.
I hope you're exaggerating. I haven't used an RPM based system in years, but it was minor cases of this sort of rot that caused me to switch to Slackware (I'm now using FreeBSD). But somehow if it were true, I don't think I would be surprised.
-- A Government Is a Body of People, Usually Notably Ungoverned
Re:perl with RPM lovin' ?
by
cowbutt
·
· Score: 4, Insightful
Then you go berserk. You mirror rpmfind, rpm -Uvh *.rpm, end up with multiple versions of crap in different places, and corrupt the UNIVERSE.
I know you're exaggerating for dramatic effect, but therein lies your problem. If you're installing random packages from rpmfind.net, you deserve everything you get. Either stick to packages in your distro's native format and created for the version of the distro you're running (errata, install discs, freshrpms.net in that order) or build your own, newer packages, using your distro vendors src.rpms as a template.
If you do this, I promise you'll encounter zero problems.
Too many people think that RPMs are magically some kind of universal package. They aren't and were never intended to be.
--
Re:perl with RPM lovin' ?
by
cowbutt
·
· Score: 4, Interesting
The irony is that shared libraries make it *very* difficult to do a real small stripped down Red Hat installation.
It didn't take me too long (and hour or so, maybe) to get a minimal server-ready RH8 installation down to 300MB. If I removed the documentation under/usr/share/doc and a few other bits, I could probably get that down to about 222MB (this figure includes Perl and a bunch of commonly-used CPAN modules, BTW, so it's actually a trade-off between "minimal" and "actually-useful";-)
There are too many cascading dependencies. You would be better off compiling the stuff you want statically. You'd save space.
Yeah, and then when a security problem is found, you end up having to re-compile the lot. Eww.
--
Re:perl with RPM lovin' ?
by
Anonymous Coward
·
· Score: 4, Informative
Oh yeah, like any other package system is different. You want to experience the same fun on FreeBSD? Try the following which I did last week:
portinstall -v p5-DateTime-Format-ISO8601
Pretty innocent right? I mean what the fuck is involved in parsing dates? The library *I* wrote to parse an ISO8601 subset was about two pages long. You know, dates/times like '2003-05-24' '05-25' 'T12:23:45Z' etc.
Well, after a "little while" here's what it pulled in:
Can't wait to install some of these Perl RPMs on my Red Hat box........ (in this sentence, "can't wait" means "I'm not going to fucking touch this crap")
Re:perl with RPM lovin' ?
by
evil_roy
·
· Score: 4, Funny
Now don't go countering all this FUD with facts. This is/..Anti rpm posts are very important, it is yet another bias that helps the zealots feel better than others.
Oops. Sorry. My bad. The OP is entirely correct. In fact, I'd go further and say that RPM is the primary tool of a vast conspiracy plotted jointly by the Freemasons, the Zeta Reticulans and the Bilderberg group.
The following packages will be installed:
myperl, libsomeshit, libXML, mozilla Need to get n MB of archives. Do you want to continue? [Y/n] y....
And then the packages are installed, and you live happily everafter.
Re:perl with RPM lovin' ?
by
Anonymous Coward
·
· Score: 0
Yeah, and with apt-get typically
"Need to get n MB of archives" where "n=200"
Re:perl with RPM lovin' ?
by
jonadab
·
· Score: 2, Interesting
He's exaggerating, but he has a point: CPAN is a *much* better package management solution than plain vanilla rpm. There are also tools that go on top of rpm and help somewhat with this, such as urpmi, but as yet none of the package repositories are anywhere near as robust as the CPAN system of mirrors. I have often wished that non-Perl packages were available via CPAN, though I certainly understand why they're not.
-- Cut that out, or I will ship you to Norilsk in a box.
Re:perl with RPM lovin' ?
by
jonadab
·
· Score: 3, Funny
> In fact, I'd go further and say that RPM is the primary tool of > a vast conspiracy plotted jointly by the Freemasons, the Zeta > Reticulans and the Bilderberg group.
No, you are mistaken. The Bilderberg group has nothing to do with it. The true ringleaders are the same nameless group who also mastermind the MVD/NSA/Bahrain connection.
Also, rpm is only their primary tool for one specific purpose (undermining OSS). They have plenty of other tools that they employ, to accomplish various nefarious purposes. For example, they also control the associated press.
-- Cut that out, or I will ship you to Norilsk in a box.
I have yet to have to install 200mb using apt-get. Although I haven't played with Debian much yet, thanks to/. I am playing with it. But with the simple stuff I've installed 'vim', 'nano', and the basic stuff that didn't get installed at the beginning, I think the largest I saw was 8mb.
Agreed. Why bother with RPMs, or apt-get, when good ole' CPAN works just fine... Try it for those of you who don't believe the CPAN module owns RPMs... it installs all dependencies for you!
Re:perl with RPM lovin' ?
by
DataSquid
·
· Score: 1
Either stick to packages in your distro's native format and created for the version of the distro you're running (errata, install discs, freshrpms.net in that order) or build your own, newer packages, using your distro vendors src.rpms as a template.
See, this is why I never liked package management for other than the base system (like, say, how Slackware does it). Sooner or later I'm going to need some version of some program that's not supported by the package maintainers of my OS, and then I'm off 'rolling my own file' for the package manager of whatever distro I'm using.
Why, oh why should I have to know four or five different package management schemes when make;make test;make install is so much more universal?
Yes, package managed systems are easier to maintain if you're sticking to the tried and true (like, say, a network infrastructure box). But they all suffer from this fundamental problem of out of date packages/poor package availability which eventually moots their entire usefulness.
Re:perl with RPM lovin' ?
by
CaptnMArk
·
· Score: 2, Interesting
The problems occurs because software developers are not doing any packaging but the distributors are.
If the basic packaging system was used by developers too this would not be a problem.
Of course, establing one standard will take some time. Especially since different distros package things in slightly different ways.
Re:perl with RPM lovin' ?
by
BrokenHalo
·
· Score: 1
I agree; I went back to Slackware after a 3-year dalliance with RedHat and Mandrake. Keeping either of those distros current can be a royal pain in the ass.
Re:perl with RPM lovin' ?
by
perlchild
·
· Score: 1
Quick question can rpmpan's author tell us if he's has a plan for turning his site into an apt-repository for those of us who use apt-rpm(and probably be useful to others). *has fingers itching to add that to my/etc/apt/sources.list already*
Would be damn nice thing to have, that... but who knows whether that person even reads slashdot? Not to mention finds this specific thread, better ask by mail if you want answer:)
Just because a distro provides sophisticated package management, doesn't mean you need to use it. There's nothing to stop you doing 'make; make test; make install' under RH or any other distro, but it's unreasonable for you to expect that the package management database is fully aware of what you've done.
Personally, I find managing all my packages with RPM useful (things like rpm -e, rpm --verify, rpm --checksig, rpm -qif `which foo` - I have 1321 packages on my workstation which I would hate to have to manage without RPM or dpkg), and so I take a few minutes to build my own RPMs of packages, rather than just doing 'make install'. Even using something like checkinstall is better than nothing (it supports Slackware tgzs and Debian dpkgs as well as RPM, BTW).
--
Re:perl with RPM lovin' ?
by
Anonymous Coward
·
· Score: 0
Most of those packages are related to perl's packaging, testing, and documentation systems. Module::Build is the one causing most of those dependencies.
They would be needed no matter what package you were installing, and even then would only need to be downloaded once.
CPAN is a *much* better package management solution than plain vanilla rpm
Our experiences are very different. I constantly have problems with CPAN updates, I dread having to use that system every time I do, and it's never clear what state your machine's in when it fails, or what to do to fix it.
At least with RPM I know how to recover from the problems I occasionally experience. (But I like debian's package management even better.)
Re:perl with RPM lovin' ?
by
jonadab
·
· Score: 2, Informative
If its only advantage were installing all dependencies for you, it wouldn't be any better than urpmi or apt. CPAN is better, more advanced than that, able to configure things in ways that rpm can't. It's more closely comparable to portage, if anything, except that CPAN has the additional advantage of a very large and robust mirror system to draw from, and, obviously, that CPAN only has Perl stuff, so you have to already have any _other_ dependencies. (For example, CPAN can update your Perl GTK+ bindings for you, but it can't update GTK+ itself; it can update the DBD::mysql interface, but it can't install or update MySQL itself. This is actually a pretty major limitation, and the best reason I can think of to use any other package management system.)
-- Cut that out, or I will ship you to Norilsk in a box.
How hard is it to install CPAN modules in the first place? This seems like a solution without a problem to me.
Maybe if it were easier to navigate than true CPAN, but according to that page, the way to find your module is by the first letter of that module. So what happened to browsing modules by category? This thing is useless if I need a module for a specific purpose, but I don't know the name of the specific module I'll need.
So, not only are they converting Perl modules to a format they don't really need to be in, but they're making the thing harder to use than CPAN is already.
And also will allow it to be installed using normal tools like apt, instead of screwed up tools that try 6 different protocols to download, of which maybe 3 will work, the rest taking 60 seconds to time out.
-- I've had enough abrasive sigs. Kittens are cute and fuzzy.
1) CPAN isn't flawless: yesterday, I tried using it to install File::Temp and it tried upgrading perl from 5.6 to 5.8. That simply isn't the correct thing to do, under any circumstance.
2) Having used FreeBSD, which has perl modules in the ports/package system, I can absolutely say that it's a nice thing to have. Being able to pkg_add a perl module in half a second, no compile time, no dependency hell, it's a good thing.
Depends on the packages. I've never had any problems installing any pure perl modules, but I've had more than my share of headaches getting modules that depend on C to work properly. Then again I'm not convinced RPM would solve this problem either.
If you want any programs to be under package control (e.g., Perl applications) it is nice to have their dependencies under package control as well. Otherwise you have to bundle all those dependencies.
Re:Huh?
by
Anonymous Coward
·
· Score: 5, Insightful
Well, since you are looking for a problem, this is it: We run our servers for 3 years minimum, 5 years ideally. During that time, we may or may not need to do updates (security & bugfixes driving that for the most part). During that time, the server + HW RAID + Backup could fail. During that time, we may need to clone the system. During that time we may have reason to verity the integrity of the files & the system. (You get the idea). During that time you may need to know why the heck file 'foo' is installed on the system, and how to get it to your end user systems (remember, just because it's there doesn't mean YOU put it there - many sites have multiple sysadmins).
RPMs serve as an excellent way to document what's on the system. As a benefit, you can keep them around and repeat the procedure if needed.
Imagine for a moment that you have a live production server that NEEDS to be there; you run nightly full system backups, you have mirrored hot swappable hard disks. Now, something goes wrong and you need to rebuild- terribly wrong, all 15 backup tapes were lost, and the mirrored drives are corrupt; it's 3am and you get the page to come into work. Can you put your system together again? That's but one possible scenario.
Imagine for a moment your sidekick admin, who's since quite, built the system without your knowledge. You need to do that again- what did he do? what's installed? how do you reproduce it? OH, and of course your coworker had almost next to no documentation on what specifically they did.
Having RPMS isn't about the 'ease of install' - installing the software is easy! It's about the ease of ongoing maintenance & accountability for the system. Debian packages fall into the same category.
In addition to above, a more familiar way of looking at it; look at all the crap that builds up in windows as you add/remove software. Eventually, you need to reformat, etc. Installing software on Linux is similar.
3 years down the road... did...humm... I... arg... install... Time::HiRes?
> 1) CPAN isn't flawless: yesterday, I tried using it to install File::Temp and it tried upgrading perl from 5.6 to 5.8. That simply isn't the correct thing to do, under any circumstance.
I've found through experience with just this very thing that the first command run through CPAN should be:
perl -MCPAN -e shell
install Bundle::CPAN
Upgrading to the newest version is necessary to get it to leave perl the hell alone.
So once you get past that hurdle, I find the worst part about CPAN is that some packages which everyone uses like mod_perl, DBI, and DBD::mysql fail to install unless Apache was compiled the correct way and currently running, or MYSQL is running and allows some bullshit nameless user to access all databases (!)
In RedHat Linux 7.x (maybe 8.x and later too), the mod_perl RPM is installed by default, but Apache isn't compiled correct to play nicely with it. So if you want to actually use mod_perl's features (i.e. install Bundle::apache in CPAN) then you have to uninstall apache and compile it by hand.
Frustrat-o-rama.
But in general, CPAN rocks. If it wasn't for CPAN then perl wouldn't be as popular as it is today. Why, just earlier this evening I was thinking that I'd love for users of a web app I'm working on to be able to import data from Excel files rather than just comma-delimited, I did a quick search at search.cpan.org and WHAM, one 'install Spreadsheet::ParseExcel::Simple' later and now users can upload Excel files. I can't think of any other language that makes it this easy to find and reuse libraries.
CPAN makes me look like I'm really good at what I do.
The whole point of this is to make it so that the RPM database can be aware of what software is installed on your system... not to simplify installation.
If RPM was smart enough to actually go look in/usr/lib/ and see what's there instead of just checking it's own DB and just blankly assuming that if something wasn't installed via RPM it must not exist, then you'd be absolutely right and this would be a solution without a problem.
And let me know if/when you figure that problem out. You could do some cool stuff and make Linux (heck, and *nix-ish OS) more admin friendly almost overnight.
Some (not all) CPAN modules are hard to install. The hardest are always those who involves some C code, that depens on third party libraries.
Try installing the mysql DBD drivers without having installed the mySQL header files first, for instance. It's not obvious that you need those to get some perl drivers installed.
Try installing PerlMagick; even with a working ImageMagick installation on your system, it's not straightforward to get PerlMagick up and running.
There's a whole bunch of modules that always gives me headaches. That's why I've grown fond of Debian, that has a lot of Perl modules I can install with apt-get or dselect.
>> Try installing PerlMagick; even with a working ImageMagick installation on your system, it's not straightforward to get PerlMagick up and running.
Tell me about it - I've got ImageMagick all happily running on my RH box at the moment, but can I get PerlMagick to run? Nope... 2 hours last night were wasted on this until I twigged that MovableType also supported NetPBM: I could of clicks and everything was hunky dory.
Having RPM packages of Perl modules makes managing them on RPM systems much easier. You just have to build the RPMs on one machine and then you can distribute them very easy on all your systems.
It also solves the problem of removing CPAN modules nicely.
So I think its a good to have a central place to find thes RPMs.
It would be even better if you would be able to access these with apt-get or yum obviously.
I don't see that putting packages in RPMs in anyway obviates the browsing of RPMs by category. CPAN is just a whopping great database. You can tweak the views anyway you want.
I'd like the ability to deinstall packages - which rpm (or any other package manager) would give me.
Python suffers from the same problem. Maybe we'll start seeing Python RPM packages?
Hopefully,
h
this is a cunning.sig - as cunning as a sig who's just received a PhD in cunning
No real disagreements, but it *is* nice to have this sort of stuff managed by your package manager.
Except that there need to be different rpms for RedHat, Mandrake, SuSE... and for different versions of those distros. What's the probability that this archive will track all of that? 10 %? Lower?
Really, the cpan setup keeps track of its own dependencies, and gives you flippant comments like "yep, it's a nice idea to include this if you actually were to wish to use that" to boot. No rpm setup can get close to that.
If you're using CPAN, you can create a custom bundle that CPAN.pm can use to clone your custom Perl library on a new system. It's a bit futzy, in my experience, but better than A) remembering what you need to install B) determining what you need to install by looking at the begininnings of half a dozen scripts and C) getting poked in the eye with a sharp stick
How hard is it to install CPAN modules in the first place? This seems like a solution without a problem to me.
It isn't very hard to do "./configure && make install" either for normal software, yet we still haver package managers?
Why, you ask? Because we want to be able to uninstall stuff as well, because we want to have dependencies and because we want everything relating to software installation be handled by one program (apt or yum, for example).
So, not only are they converting Perl modules to a format they don't really need to be in
Perl modules are libraries and they need to be packaged just as much as C/C++ libraries!
but they're making the thing harder to use than CPAN is already.
Simply untrue, why would "apt-get install foo-bar" be any harder than "perl -MCPAN -e 'install foo::bar'" or whatever. Actually, Perl/CPAN version is bit harder to use.
You may not see it, but there was a problem and this is exactly the solution that was needed.
> And also will allow it to be installed using normal tools like > apt, instead of screwed up tools that try 6 different protocols > to download, of which maybe 3 will work, the rest taking 60 > seconds to time out.
You must be using an old version, from before LWP was included. No problem, you can update. Do this:
perl -MCPAN -e 'install Bundle::CPAN'
That'll fix you right up.
-- Cut that out, or I will ship you to Norilsk in a box.
> So once you get past that hurdle, I find the worst part about CPAN > is that some packages which everyone uses like mod_perl, DBI, and > DBD::mysql fail to install unless Apache was compiled the correct > way and currently running, or MYSQL is running and allows some > bullshit nameless user to access all databases (!)
For DBD::mysql, I think you can say no when it asks if you want to test. mod_perl is a problem if you don't have the Apache sources installed, and IMO the correct solution is to include Apache on CPAN and make mod_perl depend on it. After all, Apache is basically a really big XS module, right? Oh, that same approach could be taken for MySQL and other packages that, while they aren't part of perl per se, exist primarily to be used by perl.
-- Cut that out, or I will ship you to Norilsk in a box.
> Except that there need to be different rpms for RedHat, Mandrake, SuSE... and for different versions of those distros.
Not necessarily. Perhaps a different set for each version of Perl. Perl has a pretty standard location for this type of stuff, across distros, I THINK./usr/lib/perl5/site_perl/5.8.0/ It's the same at least on Red Hat and Gentoo.
The problem with mod_perl is that it treats apxs mode as some sort of oddball, expert-only install. If it did apxs mode all the time or as default, the chances of success would be much, much higher. [Plus, it would work with vendor-supplied apache installations more often than not.]
Friend of mine was a sought-after lead consultant on BlueMartini (the US$1 million Java application toolkit) back in the day (2000 was SO long ago). I asked him if I should consider that kit for my company's development. He responded: why? You are a perl programmer and you have CPAN. Everything you need to buy from BlueMartini for Java you get with CPAN.
It seems CPAN really is worth a million.
-- --
@rjamestaylor on Ello
seems a little wasteful..
by
nich37ways
·
· Score: 2, Interesting
Why exactly do they need to do this every night?? Surely it would be infinetly simpler to just rsync against the server with the CPAN modules and then only rebuild RPMS for new/modified modules.
You could even use perl to do this...
-- 37 - what does it stand for really...
Re:seems a little wasteful..
by
sudohnim
·
· Score: 1
Yet another non-article reader.... See the first entry here
-- Its pretty sad when a commercial OS ships a debugger with their system but no compiler.
What exactly was wrong with...
by
ultrapenguin
·
· Score: 3, Insightful
perl -MCPAN -e 'install SomePerlModule'?
It would get compiled for your system, warning you and/or downloading all the required dependencies.
Re:What exactly was wrong with...
by
jrp2
·
· Score: 2, Funny
I sort of agree, installing using the CPAN tool is pretty easy. But, I maintain some custom install RedHat CDs that need some PMs not installed by RedHat. I have the user install them using the MCPAN tool, but it sure would be easier just adding them to the list of RPMS for anaconda to install at system creation time.
I guess it would also be easier for perl developers creating RPMs to bundle these in with their RPMs for a single RPM based install rather than adding instructions for MCPAN.
I think it is a good thing to do this to make Linux one (albeit very small) step easier. Every little bit helps.
-- The only athletic sport I ever mastered was backgammon - Douglas William Jerrold
Re:What exactly was wrong with...
by
ultrapenguin
·
· Score: 1
> I sort of agree, installing using the CPAN tool is pretty easy. But, I maintain some custom install RedHat CDs that need some PMs not installed by RedHat. I have the user install them using the MCPAN tool, but it sure would be easier just adding them to the list of RPMS for anaconda to install at system creation time.
Yep, since you are already creating custom install cds, I assume you have the knowledge to roll these modules into RPMs yourself. This "script" he uses is using another script (cpanflute2) to actually create RPMs, what's stopping you from using THAT script to make 5-10 custom RPMs for your install CD instead of this guy wasting bandwidth every day downloading "newest" modules?
Re:What exactly was wrong with...
by
Anonymous Coward
·
· Score: 0
>perl -MCPAN -e 'install SomePerlModule'?
>It would get compiled for your system, warning you >and/or downloading all the required dependencies.
and hoseing your system every once and a while! when i was installing some cgi modules that way once it installed a new version of perl and somehow took out gnucash. everything was okay when i uninstalled perl and the other modules it installed then reinstalled them useing rpm. if your useing redhat use rpm, if debian use dpkg, and if you want depandancies handled use apt-get (available for both rpm and deb)
Re:What exactly was wrong with...
by
joe_fish
·
· Score: 4, Insightful
From having fought to get Bugzilla installed for about 2 days, most of the time being spent using -MCPAN can say with feeling - everything.
No uninstall.
It is yet another package system to learn
I didn't work without quite a bit of hacking (but perhaps you can blame Solaris for this)
It isn't exactly a logical syntax, compare
perl -MCPAN -e 'install "Foo::Bar"'
with
apt-get install foo-bar
And I want the dependency system to work with my systems dependency system, and not in a parallel universe.
The Java-RPM system over at JPackage.org is good and useful, I hope this will be similarly useful.
Perl programmers can (and probably will) carry on using cpan, the rest of us can have an easier life when red-carpet or apt-get just does the right thing.
Re:What exactly was wrong with...
by
timeOday
·
· Score: 1
Because normally the user doesn't know or care that they want 'SomePerlModule' in the first place, they're just trying to install a package that depends on some.pm file with no obvious relation to the name of the module that provides it.
Re:What exactly was wrong with...
by
Dom2
·
· Score: 1
The trouble with perl -MCPAN is not only that it won't let you uninstall easily (as somebody else pointed out) but also that it won't let you install a specific version.
I'd really like to have a bundle file list version numbers so that when I install the bundle it doesn't fetch the latest version of everything on the planet. Yes, I know it's documented as doing this. But check the source. It's not implemented. EVery time you use a bundle file, you get the latest version of everything which is not always what you want.
-Dom
Re:What exactly was wrong with...
by
Sax+Maniac
·
· Score: 2, Informative
I just went through the same thing. And, might I add:
When a binary module fails to compile, you have no idea what to do. You're SOL unless you feel like debugging perl's C code; which I don't, because the reason I'm installing bugzilla is because I have my own bugs to deal with.
When a module fails its tests, you have no idea what to do. Similarly SOL.
Lesson learned: never install a binary Perl package with CPAN. Go get the RPM for your distro, and hope it hasn't been EOL'd yet (trying to find RedHat 7.2 RPMs is a treat).
To its credit, CPAN worked for the perl-only modules, except it wants to download the 300K index file each time you start it. Hello!? Wouldn't once per day be enough?! And WTF is with using lynx to download stuff? What is wrong with wget?
-- I can explanate how to administrate your network. You must configurate and segmentate it, so it can computate.
This made the front page???
by
Anonymous Coward
·
· Score: 0, Flamebait
Christ!
Re:This made the front page???
by
Anonymous Coward
·
· Score: 0
Seconded.
I didn't understand a word of it.
CPAN installs dependencies on the fly
by
Vyce
·
· Score: 1
Thus making it already a superior way to install Perl modules. Not to rain on a parade and this may be useful for systems where there is no CPAN (can't imagine WHY though), but where is the benefit of this over CPAN?
Perhaps this will make it easy to deploy with no network connection? I'm just lost here.
Re:CPAN installs dependencies on the fly
by
eln
·
· Score: 3, Interesting
Except this thing requires a network connection too! And CPAN, IIRC, is a standard part of Perl, so if you don't have CPAN, then you don't have Perl, and thus have no use for CPAN.
In the FAQ, it states that the reasons for doing this are 1.) cool points and 2.) to hawk his book (okay he doesn't say that in as many words). Plus, it's written as a shell script, because shell scripts are portable. There is no explanation given as to why he couldn't have written it in Perl, since any system that would have any use for it at all would have Perl installed.
So, basically, he's taking the awesome resource that is CPAN, making it less useful, less portable (RedHat only), more obtuse, and more prone to error (only "around 90%" of the modules work right). Yah, this seems like a really great idea to me.
Re:CPAN installs dependencies on the fly
by
Kymermosst
·
· Score: 2, Interesting
(RedHat only)
Oh, only RedHat uses RPM? I thought SuSE and Mandrake, as well as a few others did as well. Shows what I know.
Seriously, though. I use CPAN myself, but CPAN doesn't update the RPM database with dependency & file information and such. What would be a good solution is an optional extension to the CPAN module that allowed it to place files in the RPM database.
-- "Alcohol, Tobacco, Firearms, and Explosives" should be a convenience store, not a government agency.
Re:CPAN installs dependencies on the fly
by
LinuxGeek8
·
· Score: 2, Insightful
Oh, only RedHat uses RPM? I thought SuSE and Mandrake, as well as a few others did as well.
They do use different versions of perl. You could say every distribution, and every version of a distribution is different. A package made on Redhat isn't guaranteed to work on Mandrake, and vice-versa. So if this projects makes rpms for Redhat, then that's what it does.
What would be a good solution is an optional extension to the CPAN module that allowed it to place files in the RPM database.
Isn't that what cpan2rpm is for?
-- Well, don't worry about that. We can get you back before you leave. (Dr. Who)
Re:CPAN installs dependencies on the fly
by
Kymermosst
·
· Score: 1
They do use different versions of perl. You could say every distribution, and every version of a distribution is different. A package made on Redhat isn't guaranteed to work on Mandrake, and vice-versa. So if this projects makes rpms for Redhat, then that's what it does.
Now, that's a different statement entirely.:) I'll apologize for my sarcasm.
This really shouldn't be a problem for distributions shipping perl 5.6/5.8 when dealing with perl-only modules... but I can see the wrench when dealing with modules using non-perl code. That's not always going to happen, either... quite often it just depends on the 5.6/5.8 issue. (for now.) Most distributions *should* be shipping 5.8.
Isn't that what cpan2rpm is for?
No... cpan2rpm packages cpan modules into rpms, which you can then install with rpm. The more ideal tool would simply allow you to work with the CPAN module, doing all of the normal processes that we are used to, but when a module is installed, update the rpm database to include any newly-installed modules, transparently.
cpan2rpm is a fine tool, but it adds that extra step or two.
Now that I think about it, the guy the article is talking about has probably just automated the process cpan2rpming the entire CPAN. Maybe I'll read it again a little closer.
-- "Alcohol, Tobacco, Firearms, and Explosives" should be a convenience store, not a government agency.
OK, so this is predicated on the idea that RPM is a better package manager than CPAN...and that your perl setup is pretty much identical to redhat's. Since many (if not most) perl modules don't have c extensions, a binary distribution isn't really that useful, is it? I mean, perl -MCPAN -e shell; install foo works pretty well, and will download and install dependencies for you.
I guess I'm thick or something, what am I missing here? What's the point?
-- What a strange bird is the pelican, his beak can hold more than his belly can.
The problem is the usual where the hell did it go, unless you control the destinations it can get splattered all over the place. The problem with rpm is that it assumes a directory structure that is usually different from distro to distro. My perl install on Slackware has different destination requirements, I never use Slacks rpm anyway.
This is the essential problem with make also. It is getting too hard to keep track of all the destination and dependancy differences that are happening. CPAN is a great solution for perl but can cause diffs also if the perl is written with strange directory paths to c extention libs. No different than a./configure really. Just slightly less frustrating, having to do a lib hunt all the time. "I know it is there but where the hell did it go" With make for gcc I have seen code that no doubt only works well as a binary on one set of computers, the guys who wrote it, because there are so many path differences for the user to./configure. I hope the same thing does not start happening with perl scripts. Was there not some unix shell function called tree? I believe that could printf the structure of source so you could more easily work in a C shell a long time ago. Guess I had better crack some books again. I might wind up doing a SCO McBride and smoke' something else if I start losing track of perl libs.
-- OH THE SHAME I fell off the wagon and use sigs again!
Need the reverse of this
by
Julian+Morrison
·
· Score: 4, Insightful
I use Mandrake and it is So Bloody Annoying to be asked by RPM to install perl module RPMs that I already installed (or updated) via "perl -MCPAN -eshell".
Not that this is really this guy's problem, but if anyone from Mandrake is reading, please take note. Either there needs to be some magic added to RPM so it treats perl modules as installed RPMs - or else, the dependency checks need to be able to look for the presence of actual modules.
Having to use --nodeps is both annoying and dangerous.
Re:Need the reverse of this
by
Anonymous Coward
·
· Score: 0
Thank you for recognizing that as a limitation of the RPM system and not of Perl or CPAN. A good package management system should be able to at least detect if it *thinks* the software has been installed, even if the software is not managed by the package manager. To do otherwise is just laziness.
Re:Need the reverse of this
by
GigsVT
·
· Score: 1
And how exactly is it supposed to do that? Short of downloading the RPM that provides the dep to see what it contains, there's really no way to tell.
I think the real solution is to make it easy to package your own packages, something like checkinstall does, but without having to guess what the "whatprovides" should say.
-- I've had enough abrasive sigs. Kittens are cute and fuzzy.
Re:Need the reverse of this
by
nzkoz
·
· Score: 2, Insightful
This is the reason for the RPMPan project. You'll be able to install the modules as RPMs in the first place, and software that is not in CPAN will be able to list them as dependencies.
Sounds like a solution to your problem.
Alternatively, there's always --nodeps if you're sure.
-- Cheers
Koz
Re:Need the reverse of this
by
GigsVT
·
· Score: 1
Then isn't this exactly what you want? If you use these RPMs, then you won't have that problem.
-- I've had enough abrasive sigs. Kittens are cute and fuzzy.
Re:Need the reverse of this
by
Arandir
·
· Score: 1
And how exactly is it supposed to do that?
The same way most non-RPM package managers do it. Duh!
You base your dependencies upon the contents of other packages, and not the names of the other packages. You make the package dependent upon the presence of libfoo.so.1 and not libfoo-1.3ar78.rpm.
-- A Government Is a Body of People, Usually Notably Ungoverned
the reason I stopped using RPM's in the first place was because they listed individual files as there dependencies
at last the package managers start doing the right thing and listing packages instead of there contents and you jump in and say duh don't do that
the worst thing about rpm in the old days was installing a package and having the message depends on libfoo.so.1 then hunting through the rpm files guessing which one might satisfy that dependency could it be foolib-1.3.rpm, libfoo-1.3.rpm, fooheaders-1.3.rpm
next time you want to jump around with your opinions try and remember your history
-- ****
lying is wrong even for sleeping dogs
Re:Need the reverse of this
by
GigsVT
·
· Score: 1
You make the package dependent upon the presence of libfoo.so.1 and not libfoo-1.3ar78.rpm.
That's the way RPM works.
-- I've had enough abrasive sigs. Kittens are cute and fuzzy.
Re:Need the reverse of this
by
cowbutt
·
· Score: 1
You base your dependencies upon the contents of other packages, and not the names of the other packages. You make the package dependent upon the presence of libfoo.so.1 and not libfoo-1.3ar78.rpm.
The problem is that if you're distributing packages using such dependencies, there'll be a crowd of people asking you which package libfoo.so.1 comes from. Explicit package dependencies (e.g libfoo >1.3ar78) should allow most people to resolve the dependencies, and also improves the efficiency of automatic tools.
next time you want to jump around with your opinions try and remember your history
But in this case it's your history. I've worked with RedHat for several years and dealt with what most people would consider huge networks of machines running it. This has never really bothered me. *shrug*
-- Game... blouses.
Re:Need the reverse of this
by
Ed+Avis
·
· Score: 1
What you suggest is quite a big change to the way RPM (or pretty much any package manager) works. Never mind the special case of Perl modules, you're saying that files installed outside the package manager's control should be usable to satisfy dependencies.
This might be possible, but one obvious problem is what happens when those files are later removed or replaced. For example, you have fred-1.0 installed by hand and install an RPM package of jim-0.1, which depends on fred = 1.0. Well, perhaps RPM could look at the files already on the system and figure out that something looking rather like fred-1.0 is already there. But then if you upgrade fred to version 2.0, which is not quite compatible, you'll break the installed jim package with no warning. OTOH if you use RPM as it is currently intended to be used, you'd get warned when trying to upgrade fred that the jim package depends on a particular version - and if you use a tool like urpmi or apt, a new version of jim could be installed at the same time so that everything keeps working.
I agree that having to use --nodeps is annoying and dangerous. But the best answer, IMHO, is to work with the package manager rather than against it, and make your Perl modules etc. into RPM packages as well. Now this is sometimes easier said than done; we need more automatic tools like cpanflute to package things (or better awareness of the existing ones). Similarly it would be useful if Red Hat could bring back the 'contrib' area, or if the various third party RPM sites could get together and make some mega-site which indexes practically every package you could ever want.
-- --
Ed Avis
ed@membled.com
Re:Need the reverse of this
by
Ed+Avis
·
· Score: 1
As far as I know an RPM can either list a whole package, or an individual file. It's up to the package builder. Often library dependencies are stated as files, since they're found automatically.
However the problem you mention could easily be resolved by keeping a mapping of which files are available in which package, so the computer knows that libfoo.so.1 comes from foolib-1.3.i386.rpm. I think that many tools like apt and urpmi do this already.
Oh wise and magnificent guru, how you do suggest we do that? Wouldn't want to be lazy, after all.
Let's assume I just installed relatively uknown perl module uglebugle and C library fdasgfgfa by CPAN and "make install", I didn't, of course, notify package manager about this because it has to be smart enough to deal with them itself. Now our package manager scans a file system and notices few new files, fdasgfgfa.so and uglebugle.pm, of course there's no trace of them in it's package database because they aren't installed trough it.
So what should it do? a) it's omnipotent and just knows. b) we must have magnificent better-than-human-AI that can do a google search or something like that and identify those files without any possibility of false positives. c) we scan the filesystem for filenames that are similar to those libraries we found and try to parse name from README's etc. This obviously mustn't return any false positives either. d) got any suggestions?
Package manager has what files belong to which software package unless they are installed trough itself.
Unless of course it keeps book of every software in the whole world and all their files, but that's obviously impossible.
That is: Package manager has no idea about what files belong to which software package unless they are installed trough itself.
Should've used the damn preview...
Re:Need the reverse of this
by
Arandir
·
· Score: 1
No no no! You missed the entire point!
You base the dependency on a file, but you still use a package. For example, the dependency is listed as "libfoo.so.1 | libfoo-1.3a.pkg". So when you're installing FooApp, it looks for libfoo.so.1, knowing that it is provided in libfoo-1.3a.pkg. So if the file isn't there, the package can be installed.
-- A Government Is a Body of People, Usually Notably Ungoverned
Re:Need the reverse of this
by
Anonymous Coward
·
· Score: 0
What do you mean "what should it do?" If I RPM-install something that depends on uglebugle.pm or fdasgfgfa.so and my system already has them on the normal search path, RPM should shut up and allow them to be used.
CPAN == RPM for Perl mods
by
Shut+the+fuck+up!
·
· Score: 2, Insightful
CPAN makes it so easy to install perl modules. Why do we need rpms?
It solves a problem
by
cspenn
·
· Score: 5, Insightful
I see a lot of posts asking "Why" since perl -MCPAN -e shell is about as straightforward as it can get.
Obviously, it was created to scratch an itch, so cut the guy some slack. If you don't like it, don't install it. For him, and maybe for others who are new to it all and are just comfortable with one tool, it solves a problem.
Re:It solves a problem
by
Anonymous Coward
·
· Score: 0
What EVERYONE is asking though is WHAT PROBLEM? That someone doesn't know about the CPAN module? This sounds like something that will lead the already blind astray and end up only doing harm.
Re:It solves a problem
by
Anonymous Coward
·
· Score: 0
Sure, he can waste his time on useless software all he wants, but why is it on Slashdot? By these standards, I should be able to have any useless shit software i write advertised for free on Slashdot.
I think this is what RedHat and Mandrake users would really like, the trick is probably in keeping all the RPMs up to date. Hope that there is a system that automatically creates RPMs from perl's CPAN module. then all one has to do is "perl -MCPAN -i " and this would download, compile, make a package and install. It would even better to make it package manager independent and add.deb support as well.
-- Unix, Computers and science fiction...
What else can one want in life ?
your sig says "Unix, Computers and science fiction... What else can one want in life ?" I can think of at least three more things I could want...a job, money, and a hot woman....
Re:CPAN == RPM for Perl mods
by
akedia
·
· Score: 5, Insightful
There are some cases where a strictly "binary-only" system would be wanted. It is possible to build RedHat servers without GCC and stripped-down C libraries for various reasons, such as really small hard drive, or security (kinda hard for users to compile rootkits if there's no C compilier available).
CPAN builds the Perl modules in the same way you would on a source-based distro. It downloads the tarball, unzips it, does a
./configure
, checks for dependencies, then does a
make
and
make install
. RPMS don't require compiliation, and for systems lacking a C compilier, or systems with many Perl modules to install, this can be very useful. Try to imagine downloading and compiling the entire CPAN archive. It would take a week even on a fast system. Let the developers build it on something massively distributed and release an RPM that takes a few minutes to install.
What BSDPAN actually does seems to be the opposite of this. It's not about the perl modules in the ports tree. The trick is that modules installed with the plain old CPAN module rather than the FreeBSD-specific tools get registered as FreeBSD packages nevertheless, so that you can uninstall them with the pkg*-tools, inspect them with pkg_info etc.
Actually I believe it does both things. You can install perl modules via the native perl CPAN interface and they are registered as FreeBSD packages, or you can install a perm module via a FreeBSD package/port.
And whose fault is that?
by
Magic+Thread
·
· Score: 0, Troll
Packages of course
by
Anonymous Coward
·
· Score: 0
There's actually nothing wrong with it. CPAN has solved all dependency and installation problems very well.
Problem is that with current package managers you have to mark some dependencies.. and you need mark them at least for some special Perl modules too since there are some Perl programs that are important enough to be packaged.
Using this RPM program (or in Gentoo g-cpan.pl) you can install these packages so that all the dependencies are satisfied and they can be marked to be updated when necessary (you get that at least in Gentoo) etc.
You get the power of Perl CPAN + power of packages. That's a lot of power.
I = Newb ... find RPM = Good .... usually
by
skogs
·
· Score: 2, Funny
I would definitely consider myself a newb to linux. been playing with it for a few months on and off. Can install them all and get them all working fully now. I can set up my webserver and link up my little homebrew website...I can serve email to myself.
I'll be honest. I am much more confident with the RPM package manager than the CPAN command you all are saying is so wonderful. Perhaps if I read an instruction book or something...but I don't generally program, so I don't have those books laying around.
I think its a good idea for newbs that can play around with the scripts and hopefully find something that works. Right now I'm working on learning PHP...but am obviously not competent on it yet.
It may be redundant for most of you well learned folks...but then so is that damn gui. I bet you all wish the gui didn't load either...since it is so redundant.:)
-- Who is this that even the wind and the waves obey Him? Surely this computer must submit also!
Already Done in Debian
by
EconomyGuy
·
· Score: 2, Informative
And its great! The best part is that.debs can specify dependencies on perl modules, which can then be met via apt. This has the added benefit of keeping all files under the control of the package manager... instead of floating around in limbo.
Of course, some of the more obscure modules never get packaged... so if this RPM database proves succesful, perhaps Debian could look into automating the package of all the smaller, less used modules.
-- Only 120 characters... who can summarize their entire world understanding in 120 characters?!
Re:Already Done in Debian
by
Anonymous Coward
·
· Score: 0
Economy Guy writes,
. . . so if this RPM database proves succesful, perhaps Debian could look into automating the package of all the smaller, less used modules.
Hey big guy, don't want to
burst your bubble but maybe Debian should first
catch up with the rest of the Linux world instead of
being 3 years behind the times. Priorities, son, priorities.
Take care of the basics first.
Re:Already Done in Debian
by
EconomyGuy
·
· Score: 1
That's ridiculous AC... Debian is hardly 3 years behind anything. But, if your talking about things like X, where we are a whole minor version release behind, you might want to ask what the fine folks running Mips or SPARC think of Debian. Its thanks to the folks on the Debian X-Strike Force Team that X packages even exist for those architectures. Its not easy supporting 11+ archs, but the Debian Developers have taken up the task and do so very well!
Perhaps the priorities of our community are more important to us than your priorities?
-- Only 120 characters... who can summarize their entire world understanding in 120 characters?!
Re:Already Done in Debian
by
Anonymous Coward
·
· Score: 0
Not to burst your bubble or anything, but Debian is light years ahead the other distros when it comes to managing servers. You can keep your kewl desktops and funky apps. I'll keep my stable, relatively secure (thanks to how fast & easy the security patches are to apply, amongst other things) and almost effortless to manage Debian systems. No other Linux (not that Debian is limited to one kernel) is going to come into contact with the hard disks on my servers.
Overall I agree with this. I certainly use debian on a server for this reason. Certain packages are still behind annoyingly though.
As I'm using stable on a server, put spamassassin on there, sadly the version that's part of stable was awful, so I went out and found a non-standard package for a newer release. Not the best approach for keeping it in stable, but at least some of my spam is being picked up now.
CPAN Shell makes installation easy, yes. Now show us what the command for uninstallation is.
Also, it would be helpful if the CPAN Shell command you'll show us could warn of lingering dependencies (where package A strictly depends on B and if you uninstall B you'll be warned that if you proceed package A will not work anymore).
Re:Uninstall?
by
Anonymous Coward
·
· Score: 1, Interesting
I've set up a little system to do this. I install all modules to/usr/local/perl (PREFIX=/usr/local/perl LIB=/usr/local/perl/lib). Each module has a file called.packlist that contains all files it installed. I wrote a small script that parses these.packlist files and shows what modules are installed, and optionally lets you delete them. It's quite handy doing things this way.
I've pasted the program at http://rafb.net/paste/results/a2695697.html. It's horribly hacky in part because I didn't care to figure out pod parsing modules and also because I just sat down and wrote it without thinking about it.
You'll do better to write your own that doesn't make so many assumptions, but it's at least a starting point.
PS: don't blame me if it kills your computer. Also, I don't know how long this paste site keeps pastes, so if that URL is broken, well, you shoulda gotten here earlier!
Re:Uninstall?
by
Anonymous Coward
·
· Score: 0
Also, I don't know how long this paste site keeps pastes
Re:I = Newb ... find RPM = Good .... usually
by
gears5665
·
· Score: 1
Well, Linux has a great deal of separate functionality that you need to learn the
ins and out of.
Perl's CPAN is just another one to learn.
The process of constantly learning is training
that is invaluable.
Once you've used apt, or emerge, or portage
you end up scratching your head anytime someone
mentions using rpm.
Perl's CPAN isn't difficult but I imagine
the fact that these RPMS are binary versions
are what make them good...less waiting for
the IT professional with a Job to do.
Re:I = Newb ... find RPM = Good .... usually
by
skogs
·
· Score: 1
yeah
I suck.
must learn more.
Honestly, I know my ins and outs with microshaft, can even realize some of the tools for admin in linux are FAR superior and EASIER to use...and free...but that doesn't mean that I know about ALL the Linux tools either.
I think this is a valuable tool for those of us out there that don't exactly have a 'full toolbox' like the rest of you.:)
WARNING: BAD ANALOGY TO FOLLOW:
Real carpenters and working men may have several hammers that they use on different things, but the starting 18 year old kid...yeah, he just buys the middle range hammer at the hardware store and beats the s#@t out of everything with it.
-- Who is this that even the wind and the waves obey Him? Surely this computer must submit also!
Even better in Debian
by
addikt10
·
· Score: 3, Informative
Using dh-make-perl, you can automatically grab the latest source for any module on CPAN that isn't already included in the Debian distribution, and make a deb package for it, trivially managing future updates and installation.
Mmmmmm, Debian
Re:Even better in Debian
by
EconomyGuy
·
· Score: 1
That's so cool... I had no idea. Is there anything this distribution can't do?
-- Only 120 characters... who can summarize their entire world understanding in 120 characters?!
- it lets me search, and read the module descriptions (assuming the lazy sod module creator has written one).
- it lets me check what's out-of-date with a single command ("r"). It automatically keeps in sync with CPAN's module repository. It even updates itself live (install Bundle::CPAN; reload cpan).
- it doesn't merely install binaries, it runs the compile (so the result is guaranteed to work with my libs, or at least complain sensibly) and often asks for config options.
- it already does all the dependency stuff that RPM could do, and it does it cleaner and better and in pure perl. It detects actual dependencies rather than merely advertised ones. It can fetch the required modules and install them, without needing to ask.
- it does all this from a friendly unified command line app that I can run remotely over SSH on a co-lo server.
- it's in every install of perl (well, Perl-for-Windows is a special case, but that's nothing new).
You can do this stuff with Debian apt too. Dependencies handled, descriptions given etc. The thing is that it handles the non-Perl software you need for some modules, which is very very handy. CPAN *is* nice and it is a great solution. I think this method has its own benefits though.
Re:Don't want to
by
Anonymous Coward
·
· Score: 0
- it's in every install of perl (well, Perl-for-Windows is a special case, but that's nothing new). >>>>>
Umm, I have the CPAN shell here on Windows, too. What was the problem again?:)
Perl on Debian
by
penguin7of9
·
· Score: 2, Insightful
Perl packages have been packaged as Debian packages for quite some time--the package and all dependencies are automatically downloaded and they are automatically kept updated.
Re:What exactly was wrong with... Compiling!
by
Anonymous Coward
·
· Score: 0
The problem normally is simply compiling the damn module on your distro, wrong version of compiler or libraries or similar.
But in that case, we got ActivePerl, if only they had all the packages working fine:
http://www.activeperl.com/Products/Download/Down lo ad.plex?id=ActivePerl
How is this different from Debian?
by
Ramses0
·
· Score: 2, Insightful
I'm a little bit confused as to how this is different from Debian's handling of Perl modules? Most any perl package (ie: "Date::Manip") is available as: "lib-perl", like "libdate-manip-perl".
Since they're Debian packages, you get full dependency upgrades, security updates (ie, for CGI.pm) mostly for free, although I'm guessing you're not going to get all the newest / latest / minor / crappy modules. Is that the only advantage?
First off, the install tests don't always work. Loading the mysql module requires setting up a database first, something you don't know about until all the tests fail. So you have to "install force" and pray it works.
Second, there are LOTS of dependencies between perl modules and system libraries. Often, you'll have the runtimes for the libraries you need, but not the archives, so you can't build the module unless you download a bunch of -devel RPMs.
And, it sure is nice to do "rpm --verify" and verify that your RPMs are untouched.
-- Get rid of everything Micro and Soft: Buy Viagra and/or Linux
Re:-1 Troll-"1 down 999 reasons to go."
by
Anonymous Coward
·
· Score: 0
CURSE YOU! Curse you all to hell. The one thing preventing global domination has been removed. ARRRGGGHHH!
CPAN is banned from the servers I manage, because it likes to sometimes install shit into/usr and overwrite the OS's packaged perl libs. Bear in mind that this is after having edited the config file and pointing to/usr/local as the path to install shit into. Some modules install ok, but others just like to do whatever they want (as opposed to whatever you want). I've made it a rule that nobody with root access is to ever use CPAN to install anything (or else they get to clean up the fucking mess). Since these are all Debian servers, a lot of stuff is availabled in packaged format already, and those that aren't can be easily packaged thanks to dh-make-perl (it's so simple to use, there is no excuse not to.) And anyway, a lot of people already know CPAN sucks, which is why there exists CPAN++, but it's still in developement, or so was last I heard. Of course, if it's just some user installing modules in his home dir, then CPAN works alright... Otherwise, caveat emptor!
Re:CPAN blows chunks
by
Anonymous Coward
·
· Score: 0
A lot of people seem to be really missing the point of this idea and seem to be making what I would call the "waaah! you can't be a real perl hacker if you like this idea" response.
First, a number of Perl packages already ship in RPM format and are distributed with Red Hat and other RPM-based distributions. This will integrate much more nicely and if package names are chosen well, it will avoid conflicts between CPAN-installed packages and RPM-installed packages. I myself use Debian and always use the Debian package instead of CPAN if it's available. It's easier, it's faster, and (in the case of Debian) you get various fixes that might not have made it into the upstream.
Once you're using some packages for Perl stuff, you might as well try to get everything in the distribution package format. In addition, I think the more appropriate question is why it's taken so long for someone to think of and then implement this idea. Why on earth would you want to use more than one package management system on your box, especially when CPAN is just for Perl packages. Using CPAN when RPM packages are available might even be silly (provided the packages are well-constructed, I don't know that they will be).
Plus, the truth is, CPAN is cool and all, but it's not all that great. The usage is bizarre and if an average user isn't a Perl person, then why should they need to learn perl to install some perl-based package that depends on some CPAN modules? CPAN also is just plain inferior to RPM and.deb when it comes to installation, deinstallation, configuration mangagement, upgrades, and just about everything else.
Now, I just hope they decide to do the same for Debian packages. (Debian provides quite a few already, but more is better.)
Re:Good idea!
by
Anonymous Coward
·
· Score: 0
I totaly agree with this statement.
As a sysadmin, I've deployed Mandrake since 2 years in my company with daily automatic upgrades using urpmi and automatic remote scripting (auto root passwd upgrade, iptable upgrade, or package downgrad in case of(never needed to use package downgrade though))
Having those packages as RPM format is great because of the following:
- No compilation needed - Can be uninstalled !! - Can be upgraded or downgraded - Can be easyly deployed to a large number of computer (move rpm in a directory and it get installed next day or next reboot) - and most important: sometimes you want to install a package (example: mythtv) that depends on a perl package that you have installed using CPAN. Despite you have the module installed, you get an error package foo-xx is not installed (not in rpm database) and it's wrong. Having all perl packages installed as rpm would make such problems desapear.
For my part, I create all rpm for perl modules I needs. By that way, I'm able to uninstall them, upgrade, deploy and manage my dependancies between all packages. Try to manage dependances between mythtv and perl modules used in it using CPAN...Simply impossible as CPAN only handle perl modules.
Perl Modules on FreeBSD
by
Anonymous Coward
·
· Score: 2, Informative
In 5.1-RELEASE at least, the CPAN module is integrated with the FreeBSD package system so that when you install a module via -MCPAN, it also registers in the package database. There are quite a few modules in the ports tree, but it seems easier simply to get the most up-to-date modules off of CPAN and then use pkg_* to deal with uninstalling modules and whatnot. Generating nightly RPMs of the entire CPAN tree seems like a fair amount of overhead. Are there enough uses for this to warrant it?
Re:CPAN == RPM for Perl mods
by
finkployd
·
· Score: 1
Perhaps in case you want to uninstall a module. Go ahead, show me how CPAN does that:)
wrapped up in an installer that R eads P rogrammers M inds. HOW WONDERFULLY SUBLIME
-- OH THE SHAME I fell off the wagon and use sigs again!
Make DAMN sure its STABLE before release!
by
Anonymous Coward
·
· Score: 0
I can see it now, "oops, one simple bug shut down the whole internet via a perl module RPM"
Good
by
Anonymous Coward
·
· Score: 0
It's so hard to keep track of where all those freakin' perl modules end up, with all the site_perl and vendor_perl and 5.8.0 and three or four different places where the aforementioned directories are.
How to do this in Debian!
by
GoRK
·
· Score: 2, Informative
Debian has (for quite a number of years, anyway) had the ability to generate a debian package from CPAN souces with a very very very minimal effort.
Right man where the heck are we getting the ebuilds for the stuff. Cant have some other distro have this and not us.
Re:obligatory gentoo zealotry
by
lanalyst
·
· Score: 3, Informative
/usr/bin/g-cpan.pl Module::Name
Re:obligatory gentoo zealotry
by
shaldannon
·
· Score: 1
Forgive my density, but are you saying that's a command that will allow me to install Perl modules from CPAN on my gentoo system and have them registered to be rebuilt in the event that I have a boring day and decide to do 'emerge -e world' ?
Re:obligatory gentoo zealotry
by
lanalyst
·
· Score: 2, Informative
g-cpan.pl is part of portage.. on every gentoo system. It dynamically generates ebuild scripts, downloads the source, builds the package in sandbox, merges them, putting entries in the world file, etc.
It does not do updates - it doesn't 'sync' with anything. It's a mechanism to merge (and unmerge) anything that's available on CPAN.
Overall it's pretty sweet.. and needs exposure.
Re:obligatory gentoo zealotry
by
shaldannon
·
· Score: 1
Nope! He ain't exaggerating!!
by
Anonymous Coward
·
· Score: 1, Interesting
The most annoying thing is that rpm will not recognize or even check for anything that has not been installed by rpm -- if it ain't in rpm's database, it doesn't exist; which makes it practically worthless if you've got items installed by downloading your typical tar.gz file and doing the ever popular "configure; make; make install". Relying solely on rpm is like being forced into a Microsoft style we-own-you way of life. Hmmm...now that I think about it, maybe the "r" in rpm stands for "redmond"....
Re:Nope! He ain't exaggerating!!
by
Anonymous Coward
·
· Score: 0
Redmond Hat Linux?
Re:Nope! He ain't exaggerating!!
by
rewster
·
· Score: 1
That's the whole point of package management, so there's one thing that knows what you have installed. Also, mandrake has a great util that works under redhat as well called checkinstall (so you'd do./configure, make, then as root checkinstall) which will make an RPM for you, so you uninstall something if you decide you don't like it, upgrade a package that you installed from RPM with source and still have RPM track it, etc. etc. etc.
Nope! He ain't exaggerating!!
by
Anonymous Coward
·
· Score: 0
Just tried this today. My results.
by
deathcow
·
· Score: 2, Informative
Apparantly there is a major disconnect between package dependencies and what is actually installed on a box.
I wanted to add RPC::XML to my Mandrake box, so I tried installing the rpm version. It complained about a list of about 20 failed dependencies, missing packages.
So I grabbed the tar from CPAN and did the good old make install and it mentioned that only the XML-Parser was missing.
So... would the rpm have worked if I told it to ignore dependencies, since those perl lib's were already on the box?
Just need a apt repos now :-)
by
Chris+Croome
·
· Score: 1
This is great, for a while I have been using cpan2flute which comes in an RPM from freshrpms to build my own RPMs from CPAN for my RedHat boxen, and this will save me from doing that:-)
Will there be an apt repository? I hope so:-)
Also will it be able to cope with ImageMagik -- probably the hardest Perl module to get working in my experience...
"It might be harmful if you do something stupid with it, therefore you mayn't do it at all" is not proper unixy design IMO.
Your scenario describes one stupid way of shooting yourself in the foot, but it's hardly a unique one. Other similar ones would be: uninstalling with --nodeps, overwriting an RPM with a "make install", overwriting libs with a newer version and "-ivh --force" so as to make new programs load whilst keeping older ones, etc etc.
Basically, it's a problem that won't bite newbies (becaue they use all RPMs with the GUI installer, if they install at all) and shouldn't ought to bite pros (because if they use it, they know what they've gotten themselves into).
Perhaps at most RPM should print a warning: "warning, package fred-1.x was not installed, but found/usr/lib/libfred.so.1.1 which satisfies requirements"
Yes of course, foot-shooting-possibility is not in itself a reason to exclude 'advanced' features. But if you intend to ignore one of the main purposes of a package manager - to track dependencies and make sure that no installation or uninstallation breaks other packages - then perhaps it would be better to do without one altogether - it's simple to run rpm2cpio and then install that.
The feature you suggest would be quite an extension to RPM (if it has to know about shared objects, Perl modules, header files, etc etc) and only vaguely related to its existing purpose, which is to install files and track them using a database. So I think it might better go into a separate program. One approach would be to look at the filesystem, see that libfred.so.1 exists, and create a 'package' from that, marking the files in RPM's database. Then RPM would be able to take the package into account when calculating dependencies and perhaps even remove or upgrade it.
But this is all a big kludge compared to just installing an RPM package in the first place. I think the best improvement would be to make it easier for intermediate users (those who build packages from source, but aren't RPM gurus or sysadmins for large networks) to create their own packages and share them.
-- --
Ed Avis
ed@membled.com
Perl Modules as RPM Packages
by
moonbeam
·
· Score: 2, Insightful
Bad idea.
The Perl environment is installation dependant. The location of your siteperl, the C compiler version, the location of your libs, and even the version of your compilor are encoded into the makemaker environment.
The use of RPM to install modules will require that all distributions follow a standard.
What if I wnated to install perl 5.8 on/opt/perl/perl5.8 while my production 5.6 in running on/opt/perl/perl5.6?
What do I do if the RPM binary was built with incompatable paths and compilers?
Re:Perl Modules as RPM Packages
by
Anonymous Coward
·
· Score: 0
Well, clearly these packages weren't designed for you. OTOH, they will certainly benefit casual users of Perl programs, who don't need a specialised Perl environment for development, but want easy installation of modules.
This is good for Perl. You can ignore it, and do your thing.
Re:Perl Modules as RPM Packages
by
dvdeug
·
· Score: 1
Bad idea.
[...]
What if I wnated to install perl 5.8 on/opt/perl/perl5.8 while my production 5.6 in running on/opt/perl/perl5.6?
Then you don't want to use RPMs. But you're an exception; 99% just want to install the packages and expect it to work. Only a few hackers are going to do stuff like that.
Maybe it's just me, but RPM format seems to suck. Every time I install something through RPM, it rarely works. And if I go and update or install software from it's orginal *gz source package, it usually fails because the libraries upon which it depends are misplaced or not found. I tried to update Gtk from it's original source (Becuse the version on the Redhat website was quite out of date) and after it was installed, it still detected the old version. RPM's are a pain to deal with, bottom line.
Re:I = Newb ... find RPM = Good .... usually
by
shaldannon
·
· Score: 1
Hey...I was where you are about 5 years ago and now I'm reasonably proficient. If I can figure this stuff out, there's hope for just about anyone:)
It took me about 6 months to move around comfortably...I've added Perl programming skills, some trivial sed stuff, and various grep and regex stuff to my toolkit over the remaining years.
A friend of mine in college who helped me learn Linux (I already had a little background in Solaris as a user) told me that if you were to graph "knowledge of the OS" on a horizontal axis and "what you can do" on a vertical axis, then on the Microsoft graph, the plot would be logarithmic (you may learn tons more, but you can't do a whole lot more) while on the *NIX graph, it would be exponential (takes a bit of knowledge to get going, but then incremental additions translate to much, much more power).
Debian User:
You might want to apt-get install dh-make-perl.
"Description: Create debian packages from perl modules dh-make-perl will create the files required to build a debian source package out of a perl package. This works for most simple packages and is also useful for getting started with packaging perl modules. Given a perl package name, it can also automatically download it from CPAN."
Another reason it's a good idea
by
egarland
·
· Score: 1
Not every Linux box has a compiler on it. There *are* people who save the massive disk space and time it takes to install a compiler. If I need Time::HiRes on a machine that has no compiler I'm facing a nasty prospect of building it myself on another machine, hand copying it over and installing it. I could also take the time and disk space to install a compiler that will possibly only ever be used for about half a second. Now I can just install an RPM.
More than once I've sworn that there weren't RPM's for all this stuff. I'm happy now, the world got a little better and I didn't have to do it.
-- set softtabstop=4 shiftwidth=4 expandtab nocp worlddomination
Re:CPAN == RPM for Perl mods
by
juhaz
·
· Score: 3, Informative
Because perl modules aren't (or shouldn't be) any different from other software and should be handled by same system that handles all the other software?
Why should we have different database for perl modules than rest of the system? While we're it for perl, why not make one for c, another for c++, yet one for java, then there should be one for python, etc etc. That'd be a frickin' nightmare and best of all those wouldn't have any knowledge of each other, so if my C program depends on perl modules it wouldn't have any way of knowing if it's installed or not because it uses different package manager.
Thanks but no thanks. I want one thing to keep track of ALL software, no matter what language it's written in.
I dont know , maybe I'm just missing it . But to me RPM is a fairly crappy package management program . The CPAN shell appears to be far supperior , hell it actually works and resolves dependancies . Now I have not used redhat since 7 (except at work were I deal with a hodge podge of systems some redhat , some debain , some misc) , so if rpm has improved vastly please correct me . Otherwise this just seems like a waist o time to me.
Hmm uh well let's see here. Unless you've been hiding under a rock you would know that apt has been ported to support RPMs. So a quick apt-get install perl-foo would grab your perl module PLUS any dependancies.
Oh and if you don't like apt, there's also yum now. Which does essentially the same thing. RPM used to be a pain in the rear, but the package system itself has been getting better plus the TOOLS that use the system are as well.
thanks . As a matter of fact I love apt (I use debian) . But it seems like a bit of a hack getting apt to work with rpms , if I remember correctly the package repository for apt4rpm is not very large (I could be wrong) . What are the new tools?
*starts doing a little dance*
by
painehope
·
· Score: 1
this made my morning. I work at a strictly Redhat shop, and I do like RPM ( no flames, please, Debian is great, so's Gentoo, so's FreeBSD, but so is Redhat + RPM ), and perl is an excellent way to get things done quickly.
In the past, I've had problems w/ wanting to use a module, which is dependent on 5 other modules, which is then dependent on 5 more, etc., so I end up building 10-20 RPMs for just 1 module. Which I will have to update sometime in the future...bugger! Which, when under time pressure, generally leads to me writing a replacement for the functionality I needed from that module.
So my life just got easier!
-- PC moderators can suck my White pierced, tattooed dick. If you think pride == hate, s/dick/Aryan meat mallet/g.
Besides all good reasons to have CPAN packages managed as RPMs there is on more people failed to mentioned:
When I ship software to customer on CD, which uses some perl script they expect me to have ALL they need on this CD. Knowing their version of Redhat Linux I can pick and package appropriate CPAN RPMS and be sure that RPM package manager will take care of dependencies.
Besides (beleive it or not!) there are some computers which do not have internet connection. Some people want to be able to install perl software on them.
Re:one more reason
by
Anonymous Coward
·
· Score: 0
(Believe it or not!) you can set CPAN up to use a local repository. And developers can export thier repository onto CD for the user..... so problem solved! (its been solved for quite a while now)
Yup, same deal for me under Mandrake 9.0 AND Solaris 5.8; tried to install the newer version of Perl. I did exactly what another poster recommended to get Spreadsheet::ParseExcel and::WriteExcel onto my Linux system -- use another Perl module.src.rpm as a template and change the few things needed to "rpm -ba" the new module. Really pretty dang easy, and since none of these distro folks can agree where things should live (LSB notwithstanding) pretty much necessary to get things in the right place.
For Solaris, I ended up having the sysadmin get the modules installed; trying to do it in a local area always got me the new version of Perl.
Love them perl modules, though!
- Leo
-- You don't use science to show that you're right, you use science to become right.
WTF??? The P in LAMP is php, not perl. MySQL is used in so many more environments than perl, take your head out of the sand. Apache also is used by many to host so many web pages of dynamic content not generated with perl but with java, any given cgi language, and on and on.
I tried php, but the documentation was... well, let's just say I got tired of breathless hype about how wonderful it was to have certain astonishingly amazingly great features that I've been taking for granted for years in other languages (not just Perl, but lisp and even BASIC), that I got disgusted and gave it up. I suppose the language itself might be okay, but the documentation put a foul taste in my mouth.
> MySQL is used in so many more environments than perl
Yeah, right. Why is it then that Perl is part of the must-install core in virtually every major OS distribution, and MySQL is an optional package in all of them?
> Apache also is used by many
I was partly joking, of course. Surely you've heard of this concept called humor? However, there was a significant amount of seriousness in what I said also -- not that I think Apache or MySQL are only used by people who actively write Perl (I know better than that, of course) but more that among the target audience of CPAN (i.e., people who do actively write Perl) the uses of Apache and MySQL generally revolve around Perl.
> dynamic content not generated with perl but with java
This is a Perl thread, right? So doesn't that make it okay to discuss it from a Perl-centric perspective? Where am I going wrong here?
Why do people who use Java care what's on CPAN? Tell them to get their own archive network, and it can be as java-centric as they care to make it, and we (Perl users) can happily ignore it. And if the Python people want to distribute Apache with Python support as a Python package (or whatever they call modules in Python land) that's fine too, just don't expect us Perl users to get all excited about it.
-- Cut that out, or I will ship you to Norilsk in a box.
...primarily to used by perl???
by
Ayanami+Rei
·
· Score: 1
WHAT THE HELL ARE YOU SMOKING???
I've installed Apache tons of times without support for mod_perl, and let me tell you unless you are doing a LAMP installation you don't want to think about it.
Similarly, there are tons of non-perl apps that use MySQL as a backend for various reasons (usually to supplant huge flat configuration files or logs).
Not everything is webserving, man!
-- THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE
ALSO FUCK BETA, ~NYORON
Re:...primarily to used by perl???
by
jonadab
·
· Score: 1
> WHAT THE HELL ARE YOU SMOKING???
Perhaps I have a slightly Perl-centric view... but apart from that I assure you that I'm sober.
> Not everything is webserving, man!
No, of course not. Quite the contrary: it's possible to get along very nicely without Apache if you don't have to have a web server. I'm not so sure about getting along without perl, however. Quite a few more things rely on perl than rely on Apache.
A lot of web-serving cgi wannabees have the impression that Perl is mostly an add-on for Apache; I contend it's the other way around: Apache is basically a really big XS module, an add-on for Perl. Sure, mod_perl is a very popular module, but not moreso than any other popular module. To put things in their proper perspective, mod_perl isn't even a core module, though it's probably one of the most popular non-core modules. (DBI is right up there too.) But it's not more important than Archive::Zip for example.
-- Cut that out, or I will ship you to Norilsk in a box.
cpanflute sounds interesting. I'm going to have to remember that (and checkconfig, mentioned earlier)
Anything that helps you autogenerate RPMS is useful in my mind.
-- THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE
ALSO FUCK BETA, ~NYORON
Evidence that Linux isn't ready for masses
by
c0d3h4x0r
·
· Score: 1
Spend two minutes looking over the discussion threads attached to this story, and you'll have all the evidence necessary to demonstrate that Linux and most UNIXes are nowhere near ready for the masses.
When so much technical prowess, time, frustration, and hassle is necessary just to install software, it means the OS is poorly architected and lacking coherency.
Windows has DLL hell and other problems, so I'm not saying it's a great example.. but it's certainly easier for most people to deal with. I don't know anyone who has had to manually wrestle with 14 package dependencies just to get a program installed on Windows, do you?
Mac OS X seems close to the ideal, from what little I've read about it. Single filesystem objects that contains everything necessary for a program to run, a sane versioning system to prevent runtime library hell, and none of this nonsense about forcing end-users to wrestle with insane dependency maps just to install a program.
-- Moderator hint: a comment is neither "Flamebait" nor "Troll" if it is true.
Re:Evidence that Linux isn't ready for masses
by
Anonymous Coward
·
· Score: 0
Windows has DLL hell and other problems, so I'm not saying it's a great example.. but it's certainly easier for most people to deal with.
Another example.. like how the 026 (RPC) patch, or any other for that matter, would not apply to WinXP via Windows Update because the installation catalog was corrupt -and- the critical update taskbar applet proceeded along withour error with that condition. Users thought they were patched when they wern't! That's so much better..
Herein lies the problem of "parallel" package dependancy managers: Each package system, whether it is RPM,.deb, the FreeBSD ports collection, or any other system, maintains a database of what is installed. This creates the following problems:
Once you use a package management system, you are locked into that system.
If you use two (or more) different systems, one will not know about the other and you'll end up with an awful mess when you install things with similar dependencies.
If you manually build and install some software, the package managers won't know about it and you'll end up with a mess.
Instead of using a database of some sort in the package manager, why don't the package managers "search" for the proper dependencies? I know it might take significant resources to perform such a search, but it can be narrowed down by a simple configuration file (like/etc/dependencies or something) that tells all package managers where to look for stuff. All the package managers and ports collections out there will agree on some minimal standard and then regardless of the advantages or disadvantages of each system, they'll get along together as far as dependencies are concerned.
Once something like that takes place, you'll be able to download whichever package format(s) you choose at any time, and ideas like Perl Module RPMs will be a good idea.
Re:Parallel package managers
by
Anonymous Coward
·
· Score: 0
The FreeBSD ports collection indeed searches for dependencies, though it doesn't try to see if they're intact. That is, if one crucial file is present, the package as a whole is. If that file is missing, the whole package is installed as a dependency.
No, because rpm is retarded...
by
Anonymous Coward
·
· Score: 0
duh!:-)
If that's the whole point, it's not good enough!
by
Anonymous Coward
·
· Score: 0
That's the whole point of package management
CPAN.pm does what rpm should be doing. Although not perfect, It does a way better job -- not only does it notify you of dependency problems, it goes on to solve them -- and if you've installed something without using CPAN.pm, it'll find it -- unlike rpm's braindead system of not recognizing anything not in its database.
I've had problems in the past at installing Image Magick and PDL, but that seems to have been a problem (I think it was in image magick's case) of them wanting you to edit by hand the makefiles/config files which were configured specifically for their own systems -- hopefully they've learned about autoconf by now! Recently I've had problems with CPAN.pm in installing other modules, I'm not sure if its because of lack of testing of modules before they're being uploaded to CPAN, or because CPAN.pm is getting out of date and that other CPAN installer (I forget it's name:-) ) is becoming more popular to the detriment of CPAN.pm... but, whatever, I'd much prefer a package manager in the style of CPAN.pm -- with all its faults -- than one in the style of rpm which causes never ending cuss words to spew forth from the mouths of kind hearted souls....
Sounds good...
by
Anonymous Coward
·
· Score: 0
checkinstall sounds good, maybe what's needed is another level of indirection -- rpm and checkinstall should be merged -- in other words, what's needed is for rpm to become more like CPAN.pm. Automatic package management without the brainded quality of rpm alone...:-)
Gee....
by
Anonymous Coward
·
· Score: 0
Redmond Hat Linux?
The secret has been revealed!:-)
(OT) Meaning of "foo"
by
Anonymous Coward
·
· Score: 0
using apache to serve documents to people. (imagine that!)
What about people using java servlets? PHP?
What about SSI and makefile maintenance, or more sophisticated CMS systems?
What about using Apache as a proxy server. Media streaming server... server management consoles... etc.
Do any of those common applications require the use of Perl with apache?
No. So just because you think that they go hand in hand, let me assure you that they are seperate entities designed to exist on their own. Why don't you ask Larry Wall if apache is really an XS module? Maybe you should email the Apache Foundation and tell them to start distributing themselves via CPAN.
Hehe.
-- THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE
ALSO FUCK BETA, ~NYORON
This is cool, but the debian way of using apt-get to get perl modules is some much easier since dependancies and rpms don't seem to get along that well.
I can see where this can go wrong...
/
# rpm -i myperl.rpm
warning: libsomeshit.so not installed
# rpm -i --force myperl.rpm
warning: libsomeshit.so not installed
# rpm -i --force --nodeps myperl.rpm
segfault. core dumped.
# rm -rf
How hard is it to install CPAN modules in the first place? This seems like a solution without a problem to me.
Maybe if it were easier to navigate than true CPAN, but according to that page, the way to find your module is by the first letter of that module. So what happened to browsing modules by category? This thing is useless if I need a module for a specific purpose, but I don't know the name of the specific module I'll need.
So, not only are they converting Perl modules to a format they don't really need to be in, but they're making the thing harder to use than CPAN is already.
Why exactly do they need to do this every night??
Surely it would be infinetly simpler to just rsync against the server with the CPAN modules and then only rebuild RPMS for new/modified modules.
You could even use perl to do this...
37 - what does it stand for really...
perl -MCPAN -e 'install SomePerlModule'?
It would get compiled for your system, warning you and/or downloading all the required dependencies.
OK Excuse me for being stupid but how is this any different from existing p5-Foo-Bar.rpm?
Rus
Cheap UK and US VPS
Christ!
Thus making it already a superior way to install Perl modules. Not to rain on a parade and this may be useful for systems where there is no CPAN (can't imagine WHY though), but where is the benefit of this over CPAN? Perhaps this will make it easy to deploy with no network connection? I'm just lost here.
OK, so this is predicated on the idea that RPM is a better package manager than CPAN...and that your perl setup is pretty much identical to redhat's. Since many (if not most) perl modules don't have c extensions, a binary distribution isn't really that useful, is it? I mean, perl -MCPAN -e shell; install foo works pretty well, and will download and install dependencies for you.
I guess I'm thick or something, what am I missing here? What's the point?
What a strange bird is the pelican, his beak can hold more than his belly can.
I use Mandrake and it is So Bloody Annoying to be asked by RPM to install perl module RPMs that I already installed (or updated) via "perl -MCPAN -eshell".
Not that this is really this guy's problem, but if anyone from Mandrake is reading, please take note. Either there needs to be some magic added to RPM so it treats perl modules as installed RPMs - or else, the dependency checks need to be able to look for the presence of actual modules.
Having to use --nodeps is both annoying and dangerous.
CPAN makes it so easy to install perl modules. Why do we need rpms?
I see a lot of posts asking "Why" since perl -MCPAN -e shell is about as straightforward as it can get.
Obviously, it was created to scratch an itch, so cut the guy some slack. If you don't like it, don't install it. For him, and maybe for others who are new to it all and are just comfortable with one tool, it solves a problem.
Chris
http://www.studentplatinum.com
Subscribe for free to my show!
I think this is what RedHat and Mandrake users would really like, the trick is probably in keeping all the RPMs up to date. Hope that there is a system that automatically creates RPMs from perl's CPAN module. then all one has to do is "perl -MCPAN -i " and this would download, compile, make a package and install. It would even better to make it package manager independent and add .deb support as well.
Unix, Computers and science fiction... What else can one want in life ?
CPAN builds the Perl modules in the same way you would on a source-based distro. It downloads the tarball, unzips it, does a , checks for dependencies, then does a and . RPMS don't require compiliation, and for systems lacking a C compilier, or systems with many Perl modules to install, this can be very useful. Try to imagine downloading and compiling the entire CPAN archive. It would take a week even on a fast system. Let the developers build it on something massively distributed and release an RPM that takes a few minutes to install.
Already like this on FreeBSD systems. Called BSDPAN. Perl can be installed through the ports tree, and upgraded as easily.
There's actually nothing wrong with it. CPAN has solved all dependency and installation problems very well.
Problem is that with current package managers you have to mark some dependencies.. and you need mark them at least for some special Perl modules too since there are some Perl programs that are important enough to be packaged.
Using this RPM program (or in Gentoo g-cpan.pl) you can install these packages so that all the dependencies are satisfied and they can be marked to be updated when necessary (you get that at least in Gentoo) etc.
You get the power of Perl CPAN + power of packages. That's a lot of power.
I'll be honest. I am much more confident with the RPM package manager than the CPAN command you all are saying is so wonderful. Perhaps if I read an instruction book or something...but I don't generally program, so I don't have those books laying around.
I think its a good idea for newbs that can play around with the scripts and hopefully find something that works. Right now I'm working on learning PHP...but am obviously not competent on it yet.
It may be redundant for most of you well learned folks...but then so is that damn gui. I bet you all wish the gui didn't load either...since it is so redundant. :)
Who is this that even the wind and the waves obey Him? Surely this computer must submit also!
And its great! The best part is that .debs can specify dependencies on perl modules, which can then be met via apt. This has the added benefit of keeping all files under the control of the package manager... instead of floating around in limbo.
Of course, some of the more obscure modules never get packaged... so if this RPM database proves succesful, perhaps Debian could look into automating the package of all the smaller, less used modules.
Only 120 characters... who can summarize their entire world understanding in 120 characters?!
CPAN Shell makes installation easy, yes. Now show us what the command for uninstallation is.
Also, it would be helpful if the CPAN Shell command you'll show us could warn of lingering dependencies (where package A strictly depends on B and if you uninstall B you'll be warned that if you proceed package A will not work anymore).
Digital Citizen
Never Mind
Uh, I'd just do:
What's the problem again?Well, Linux has a great deal of separate functionality that you need to learn the ins and out of. Perl's CPAN is just another one to learn. The process of constantly learning is training that is invaluable. Once you've used apt, or emerge, or portage you end up scratching your head anytime someone mentions using rpm. Perl's CPAN isn't difficult but I imagine the fact that these RPMS are binary versions are what make them good...less waiting for the IT professional with a Job to do.
I suck.
must learn more.
Honestly, I know my ins and outs with microshaft, can even realize some of the tools for admin in linux are FAR superior and EASIER to use...and free...but that doesn't mean that I know about ALL the Linux tools either.
I think this is a valuable tool for those of us out there that don't exactly have a 'full toolbox' like the rest of you. :)
WARNING: BAD ANALOGY TO FOLLOW:
Real carpenters and working men may have several hammers that they use on different things, but the starting 18 year old kid...yeah, he just buys the middle range hammer at the hardware store and beats the s#@t out of everything with it.
Who is this that even the wind and the waves obey Him? Surely this computer must submit also!
Using dh-make-perl, you can automatically grab the latest source for any module on CPAN that isn't already included in the Debian distribution, and make a deb package for it, trivially managing future updates and installation.
Mmmmmm, Debian
I like the CPAN shell interface.
- it lets me search, and read the module descriptions (assuming the lazy sod module creator has written one).
- it lets me check what's out-of-date with a single command ("r"). It automatically keeps in sync with CPAN's module repository. It even updates itself live (install Bundle::CPAN; reload cpan).
- it doesn't merely install binaries, it runs the compile (so the result is guaranteed to work with my libs, or at least complain sensibly) and often asks for config options.
- it already does all the dependency stuff that RPM could do, and it does it cleaner and better and in pure perl. It detects actual dependencies rather than merely advertised ones. It can fetch the required modules and install them, without needing to ask.
- it does all this from a friendly unified command line app that I can run remotely over SSH on a co-lo server.
- it's in every install of perl (well, Perl-for-Windows is a special case, but that's nothing new).
Perl packages have been packaged as Debian packages for quite some time--the package and all dependencies are automatically downloaded and they are automatically kept updated.
The problem normally is simply compiling the damn module on your distro, wrong version of compiler or libraries or similar.
n lo ad.plex?id=ActivePerl
But in that case, we got ActivePerl,
if only they had all the packages working fine:
http://www.activeperl.com/Products/Download/Dow
I'm a little bit confused as to how this is different from Debian's handling of Perl modules? Most any perl package (ie: "Date::Manip") is available as: "lib-perl", like "libdate-manip-perl".
Since they're Debian packages, you get full dependency upgrades, security updates (ie, for CGI.pm) mostly for free, although I'm guessing you're not going to get all the newest / latest / minor / crappy modules. Is that the only advantage?
--Robert
Second, there are LOTS of dependencies between perl modules and system libraries. Often, you'll have the runtimes for the libraries you need, but not the archives, so you can't build the module unless you download a bunch of -devel RPMs.
And, it sure is nice to do "rpm --verify" and verify that your RPMs are untouched.
Get rid of everything Micro and Soft: Buy Viagra and/or Linux
CURSE YOU! Curse you all to hell. The one thing preventing global domination has been removed. ARRRGGGHHH!
CPAN is banned from the servers I manage, because it likes to sometimes install shit into /usr and overwrite the OS's packaged perl libs. Bear in mind that this is after having edited the config file and pointing to /usr/local as the path to install shit into. Some modules install ok, but others just like to do whatever they want (as opposed to whatever you want). I've made it a rule that nobody with root access is to ever use CPAN to install anything (or else they get to clean up the fucking mess). Since these are all Debian servers, a lot of stuff is availabled in packaged format already, and those that aren't can be easily packaged thanks to dh-make-perl (it's so simple to use, there is no excuse not to.) And anyway, a lot of people already know CPAN sucks, which is why there exists CPAN++, but it's still in developement, or so was last I heard.
Of course, if it's just some user installing modules in his home dir, then CPAN works alright... Otherwise, caveat emptor!
First, a number of Perl packages already ship in RPM format and are distributed with Red Hat and other RPM-based distributions. This will integrate much more nicely and if package names are chosen well, it will avoid conflicts between CPAN-installed packages and RPM-installed packages. I myself use Debian and always use the Debian package instead of CPAN if it's available. It's easier, it's faster, and (in the case of Debian) you get various fixes that might not have made it into the upstream.
Once you're using some packages for Perl stuff, you might as well try to get everything in the distribution package format. In addition, I think the more appropriate question is why it's taken so long for someone to think of and then implement this idea. Why on earth would you want to use more than one package management system on your box, especially when CPAN is just for Perl packages. Using CPAN when RPM packages are available might even be silly (provided the packages are well-constructed, I don't know that they will be).
Plus, the truth is, CPAN is cool and all, but it's not all that great. The usage is bizarre and if an average user isn't a Perl person, then why should they need to learn perl to install some perl-based package that depends on some CPAN modules? CPAN also is just plain inferior to RPM and .deb when it comes to installation, deinstallation, configuration mangagement, upgrades, and just about everything else.
Now, I just hope they decide to do the same for Debian packages. (Debian provides quite a few already, but more is better.)
In 5.1-RELEASE at least, the CPAN module is integrated with the FreeBSD package system so that when you install a module via -MCPAN, it also registers in the package database. There are quite a few modules in the ports tree, but it seems easier simply to get the most up-to-date modules off of CPAN and then use pkg_* to deal with uninstalling modules and whatnot. Generating nightly RPMs of the entire CPAN tree seems like a fair amount of overhead. Are there enough uses for this to warrant it?
Perhaps in case you want to uninstall a module. Go ahead, show me how CPAN does that :)
Finkployd
wrapped up in an installer that R eads P rogrammers M inds. HOW WONDERFULLY SUBLIME
OH THE SHAME I fell off the wagon and use sigs again!
I can see it now, "oops, one simple bug shut down the whole internet via a perl module RPM"
It's so hard to keep track of where all those freakin' perl modules end up, with all the site_perl and vendor_perl and 5.8.0 and three or four different places where the aforementioned directories are.
Debian has (for quite a number of years, anyway) had the ability to generate a debian package from CPAN souces with a very very very minimal effort.
Here's how to do it in three easy steps:
Step 1: Go to CPAN and figure out what you want.
Step 2: dh-make-perl --cpan --build --install
Step 3: There is no step three!
~GoRK
It's like, let's take the two package management systems I hate the MOST and combine them.
Uggh..
Irritable, left-wing and possibly humorous bumper stickers and t-shirts
cpanflute foo.tar.gz ; rpmbuild --rebuild foo-*.src.rpm
[
Right man where the heck are we getting the ebuilds for the stuff. Cant have some other distro have this and not us.
BSDPAN is dying.
The most annoying thing is that rpm will not recognize or even check for anything that has not been installed by rpm -- if it ain't in rpm's database, it doesn't exist; which makes it practically worthless if you've got items installed by downloading your typical tar.gz file and doing the ever popular "configure; make; make install".
Relying solely on rpm is like being forced into a Microsoft style we-own-you way of life. Hmmm...now that I think about it, maybe the "r" in rpm stands for "redmond"....
Nope! He ain't exaggerating!
Apparantly there is a major disconnect between package dependencies and what is actually installed on a box.
I wanted to add RPC::XML to my Mandrake box, so I tried installing the rpm version. It complained about a list of about 20 failed dependencies, missing packages.
So I grabbed the tar from CPAN and did the good old make install and it mentioned that only the XML-Parser was missing.
So... would the rpm have worked if I told it to ignore dependencies, since those perl lib's were already on the box?
This is great, for a while I have been using cpan2flute which comes in an RPM from freshrpms to build my own RPMs from CPAN for my RedHat boxen, and this will save me from doing that :-)
Will there be an apt repository? I hope so :-)
Also will it be able to cope with ImageMagik -- probably the hardest Perl module to get working in my experience...
Check out MKDoc a mod_perl CMS
I've never wanted to uninstall a Perl module.
aka ANALPLUG
"It might be harmful if you do something stupid with it, therefore you mayn't do it at all" is not proper unixy design IMO.
/usr/lib/libfred.so.1.1 which satisfies requirements"
Your scenario describes one stupid way of shooting yourself in the foot, but it's hardly a unique one. Other similar ones would be: uninstalling with --nodeps, overwriting an RPM with a "make install", overwriting libs with a newer version and "-ivh --force" so as to make new programs load whilst keeping older ones, etc etc.
Basically, it's a problem that won't bite newbies (becaue they use all RPMs with the GUI installer, if they install at all) and shouldn't ought to bite pros (because if they use it, they know what they've gotten themselves into).
Perhaps at most RPM should print a warning: "warning, package fred-1.x was not installed, but found
Bad idea.
/opt/perl/perl5.8 while my production 5.6 in running on /opt/perl/perl5.6?
The Perl environment is installation dependant. The location of your siteperl, the C compiler version, the location of your libs, and even the version of your compilor are encoded into the makemaker environment.
The use of RPM to install modules will require that all distributions follow a standard.
What if I wnated to install perl 5.8 on
What do I do if the RPM binary was built with incompatable paths and compilers?
William
---- perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(
Maybe it's just me, but RPM format seems to suck. Every time I install something through RPM, it rarely works. And if I go and update or install software from it's orginal *gz source package, it usually fails because the libraries upon which it depends are misplaced or not found. I tried to update Gtk from it's original source (Becuse the version on the Redhat website was quite out of date) and after it was installed, it still detected the old version. RPM's are a pain to deal with, bottom line.
--
Adobe's anti-counterfeiting softw
Hey...I was where you are about 5 years ago and now I'm reasonably proficient. If I can figure this stuff out, there's hope for just about anyone :)
It took me about 6 months to move around comfortably...I've added Perl programming skills, some trivial sed stuff, and various grep and regex stuff to my toolkit over the remaining years.
A friend of mine in college who helped me learn Linux (I already had a little background in Solaris as a user) told me that if you were to graph "knowledge of the OS" on a horizontal axis and "what you can do" on a vertical axis, then on the Microsoft graph, the plot would be logarithmic (you may learn tons more, but you can't do a whole lot more) while on the *NIX graph, it would be exponential (takes a bit of knowledge to get going, but then incremental additions translate to much, much more power).
FWIW
What is your Slash Rating?
Debian User: You might want to apt-get install dh-make-perl. "Description: Create debian packages from perl modules dh-make-perl will create the files required to build a debian source package out of a perl package. This works for most simple packages and is also useful for getting started with packaging perl modules. Given a perl package name, it can also automatically download it from CPAN."
Not every Linux box has a compiler on it. There *are* people who save the massive disk space and time it takes to install a compiler. If I need Time::HiRes on a machine that has no compiler I'm facing a nasty prospect of building it myself on another machine, hand copying it over and installing it. I could also take the time and disk space to install a compiler that will possibly only ever be used for about half a second. Now I can just install an RPM.
More than once I've sworn that there weren't RPM's for all this stuff. I'm happy now, the world got a little better and I didn't have to do it.
Support your local wacky perl project. I do!
set softtabstop=4 shiftwidth=4 expandtab nocp worlddomination
Because perl modules aren't (or shouldn't be) any different from other software and should be handled by same system that handles all the other software?
Why should we have different database for perl modules than rest of the system? While we're it for perl, why not make one for c, another for c++, yet one for java, then there should be one for python, etc etc. That'd be a frickin' nightmare and best of all those wouldn't have any knowledge of each other, so if my C program depends on perl modules it wouldn't have any way of knowing if it's installed or not because it uses different package manager.
Thanks but no thanks. I want one thing to keep track of ALL software, no matter what language it's written in.
Did anyone actually bother to visit the RPMPAN page? Check out that logo, it's so camp.
mogorific carpentry experiments
First I've heard of yum, just downloaded it from here:t ml
http://linux.duke.edu/projects/yum/index.p
So far, so good.
I dont know , maybe I'm just missing it . But to me RPM is a fairly crappy package management program . The CPAN shell appears to be far supperior , hell it actually works and resolves dependancies . Now I have not used redhat since 7 (except at work were I deal with a hodge podge of systems some redhat , some debain , some misc) , so if rpm has improved vastly please correct me . Otherwise this just seems like a waist o time to me.
this made my morning. I work at a strictly Redhat shop, and I do like RPM ( no flames, please, Debian is great, so's Gentoo, so's FreeBSD, but so is Redhat + RPM ), and perl is an excellent way to get things done quickly.
In the past, I've had problems w/ wanting to use a module, which is dependent on 5 other modules, which is then dependent on 5 more, etc., so I end up building 10-20 RPMs for just 1 module. Which I will have to update sometime in the future...bugger! Which, when under time pressure, generally leads to me writing a replacement for the functionality I needed from that module.
So my life just got easier!
PC moderators can suck my White pierced, tattooed dick. If you think pride == hate, s/dick/Aryan meat mallet/g.
Besides all good reasons to have CPAN packages managed as RPMs there is on more people failed to mentioned:
When I ship software to customer on CD, which uses some perl script they expect me to have ALL they need on this CD. Knowing their version of Redhat Linux I can pick and package appropriate CPAN RPMS and be sure that RPM package manager will take care of dependencies.
Besides (beleive it or not!) there are some computers which do not have internet connection. Some people want to be able to install perl software on them.
Yup, same deal for me under Mandrake 9.0 AND Solaris 5.8; tried to install the newer version of Perl. I did exactly what another poster recommended to get Spreadsheet::ParseExcel and ::WriteExcel onto my Linux system -- use another Perl module .src.rpm as a template and change the few things needed to "rpm -ba" the new module. Really pretty dang easy, and since none of these distro folks can agree where things should live (LSB notwithstanding) pretty much necessary to get things in the right place.
For Solaris, I ended up having the sysadmin get the modules installed; trying to do it in a local area always got me the new version of Perl.
Love them perl modules, though!
- Leo
You don't use science to show that you're right, you use science to become right.
Why did they decide to use rpm over debians apt?
Just because I didnt say it that way doesnt mean that it means something different!
Speaking at Defcon 12 - Credit Card Networks Revisted: Pen
>exist primarily to be used by perl
WTF??? The P in LAMP is php, not perl. MySQL is used in so many more environments than perl, take your head out of the sand. Apache also is used by many to host so many web pages of dynamic content not generated with perl but with java, any given cgi language, and on and on.
How language arrogant can you get!?
WHAT THE HELL ARE YOU SMOKING???
I've installed Apache tons of times without support for mod_perl, and let me tell you unless you are doing a LAMP installation you don't want to think about it.
Similarly, there are tons of non-perl apps that use MySQL as a backend for various reasons (usually to supplant huge flat configuration files or logs).
Not everything is webserving, man!
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
What's wrong with:
# perl -e shell -MCPAN
or
# cpan
?
-- @rjamestaylor on Ello
cpanflute sounds interesting. I'm going to have to remember that (and checkconfig, mentioned earlier)
Anything that helps you autogenerate RPMS is useful in my mind.
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
Spend two minutes looking over the discussion threads attached to this story, and you'll have all the evidence necessary to demonstrate that Linux and most UNIXes are nowhere near ready for the masses.
When so much technical prowess, time, frustration, and hassle is necessary just to install software, it means the OS is poorly architected and lacking coherency.
Windows has DLL hell and other problems, so I'm not saying it's a great example.. but it's certainly easier for most people to deal with. I don't know anyone who has had to manually wrestle with 14 package dependencies just to get a program installed on Windows, do you?
Mac OS X seems close to the ideal, from what little I've read about it. Single filesystem objects that contains everything necessary for a program to run, a sane versioning system to prevent runtime library hell, and none of this nonsense about forcing end-users to wrestle with insane dependency maps just to install a program.
Moderator hint: a comment is neither "Flamebait" nor "Troll" if it is true.
You said: ./configure && make && make install
> CPAN builds the Perl modules with a
>
Not true. It's
perl Makefile.PL && make && make test && make install
HTH HAND,
ua
Union Yes! Member of Technical Workers' Local 101010
- Once you use a package management system, you are locked into that system.
- If you use two (or more) different systems, one will not know about the other and you'll end up with an awful mess when you install things with similar dependencies.
- If you manually build and install some software, the package managers won't know about it and you'll end up with a mess.
Instead of using a database of some sort in the package manager, why don't the package managers "search" for the proper dependencies? I know it might take significant resources to perform such a search, but it can be narrowed down by a simple configuration file (likeOnce something like that takes place, you'll be able to download whichever package format(s) you choose at any time, and ideas like Perl Module RPMs will be a good idea.
duh! :-)
That's the whole point of package management
:-) ) is becoming more popular to the detriment of CPAN.pm... but, whatever, I'd much prefer a package manager in the style of CPAN.pm -- with all its faults -- than one in the style of rpm which causes never ending cuss words to spew forth from the mouths of kind hearted souls....
CPAN.pm does what rpm should be doing.
Although not perfect, It does a way better job -- not only does it notify you of dependency problems, it goes on to solve them -- and if you've installed something without using CPAN.pm, it'll find it -- unlike rpm's braindead system of not recognizing anything not in its database.
I've had problems in the past at installing Image Magick and PDL, but that seems to have been a problem (I think it was in image magick's case) of them wanting you to edit by hand the makefiles/config files which were configured specifically for their own systems -- hopefully they've learned about autoconf by now!
Recently I've had problems with CPAN.pm in installing other modules, I'm not sure if its because of lack of testing of modules before they're being uploaded to CPAN, or because CPAN.pm is getting out of date and that other CPAN installer (I forget it's name
checkinstall sounds good, maybe what's needed is another level of indirection -- rpm and checkinstall should be merged -- in other words, what's needed is for rpm to become more like CPAN.pm. :-)
Automatic package management without the brainded quality of rpm alone...
Redmond Hat Linux?
:-)
The secret has been revealed!
dictionary dot com
CPAN rocks. Why contribute to the ongoing Project Tower of Babel in computer software??? CPAN is already Grand Central Station for Perl on Unix/Linux.
Why are so many people determined to add to the Tower of Babel!!! Enough already!!
HenryJamesFeltus.com
Gee...what ever happened to good ol' ambition and initiative?
No guts, no glory.
using apache to serve documents to people. (imagine that!)
What about people using java servlets? PHP?
What about SSI and makefile maintenance, or more sophisticated CMS systems?
What about using Apache as a proxy server. Media streaming server... server management consoles... etc.
Do any of those common applications require the use of Perl with apache?
No. So just because you think that they go hand in hand, let me assure you that they are seperate entities designed to exist on their own. Why don't you ask Larry Wall if apache is really an XS module? Maybe you should email the Apache Foundation and tell them to start distributing themselves via CPAN.
Hehe.
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
This is cool, but the debian way of using apt-get to get perl modules is some much easier since dependancies and rpms don't seem to get along that well.