*BSDThis forum is for the discussion of all BSD variants.
FreeBSD, OpenBSD, NetBSD, etc.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Distribution: OpenBSD 4.6, OS X 10.6.2, CentOS 4 & 5
Posts: 3,660
Rep:
Quote:
Originally Posted by lucmove
It's not so tiny and certainly not smart.
How about this: instead of keeping the entire tree, keep just ONE file with the name, MAYBE a very brief description and download location of each application. I imagine such file would be about 1 or 2Mb in size. Issue a command specifying the desired application and that application ONLY is downloaded and installed in the remaining usual ports way. You don't have to cd to the specific application's build dir (yeah, I'm lazy :-)) and it's less bandwidth cost for the servers/mirrors too. You could even batch the installation of many applications easily:
# portinstall vi pico mutt pine
or
# for i in vi pico mutt pine; do portinstall $i; done
A lot smarter IMO.
You not only have to keep the name of the package, it's flavors, it's description, it's checksums, but also it's BSD makefile and it's patches. You could put that all in one file, and it would be oooooh, say 161MB. i.e. WTF do you think those files are in the tree? The source get's downloaded when you need it. The only thing in the tree is meta-data, which you have to have, so yet again you're WHINING ABOUT LESS THAN 200 MB.
This is not 1990. Stop making up excuses to whine. You don't have any point, what so ever. Full stop.
I downloaded and extracted OpenBSD's ports tarball and what did I find? 43 directories. 23,201 sub directories. 66,252 FILES! 161.2 Mb. So if I want to install, say, 4 or 5 applications that are not available as packages, I have to constantly maintain this PLAGUE of 66,252 files in my hard disk?
In general, the OpenBSD project recommends installing packages over building ports, however, all ports have not been pre-compiled into packages on all platforms. It is not clear from the information I find in your posts which indicates that you need to either install the ports tree or locally build ports. More information can be found in Section 15 of the FAQ, & you will save yourself significant aggravation by taking the time now to study it:
You not only have to keep the name of the package, it's flavors, it's description, it's checksums, but also it's BSD makefile and it's patches. You could put that all in one file, and it would be oooooh, say 161MB. i.e. WTF do you think those files are in the tree?
But the data is broken up into different files so the developers can laugh when someone complains they have to make search key=some_package and then cd to that dir! Screw maintainability, it's more important to make it cd-less. Don't you follow along in the ports mailing list? =D
You not only have to keep the name of the package, it's flavors, it's description, it's checksums, but also it's BSD makefile and it's patches. You could put that all in one file, and it would be oooooh, say 161MB. i.e. WTF do you think those files are in the tree? The source get's downloaded when you need it. The only thing in the tree is meta-data, which you have to have, so yet again you're WHINING ABOUT LESS THAN 200 MB.
You clearly don't understand my proposition - which was not even that important anyway - but here is a second attempt:
"The only thing in the tree is meta data, which you have to have", but why do you have to have meta data of countless applications that you will never ever install in your entire life? I have the ports tree here, I've been looking at it and I don't think I would ever install any more than 5% of it. So what's the point of keeping meta data of the remaining 95%?
rocket357 mentioned OpenOffice. I do think that OpenOffice is too big. But I have no alternative and - that's important - I actually use OpenOffice, unlike that 95% of ported apps that I will never use but have to keep their 160Mb of meta data even if I never get to use it. Everyone here seems to think that 160Mb is peanuts, but I think it's an awful lot for something I will never use - unless I need one or two ported apps, then I have to have meta data of the whole lot. It's wasteful. It's dumb!
Again: my suggestion is to keep the ports tree remotely, at ftp.xxxbsd.org and the mirrors. And a catalog or "map" of that tree locally with information like:
audacity
Good sound editing program
ftp.xxxbsd.org/ports/audio/audacity.tgz
Depends:
sound-libz-0.4.3
oggnogg-1.5.2
Then, if you run...
# portinstall audacity
... this hypothetical portinstall command will look up 'audacity' in the local catalog and just know that it can be obtained from ftp.xxxbsd.org/ports/audio/audacity.tgz. Then it downloads the meta-data and the source and dependencies (if any) and installs it in exactly the same way it already does now. rocket357 mentioned maintainability. It's still a tree, the same old tree, except each application's directory will be tarballed so it can be downloaded individually. That's all. Nothing changes in terms of maintainability.
Quote:
Originally Posted by chort
This is not 1990. Stop making up excuses to whine. You don't have any point, what so ever. Full stop.
News flash: "Full stop" are not magical words. You can't resolve an issue with them. You can, of course, retire from the discussion with them, but you don't need them for that.
You should stop referring to my ideas as "whining". Instead, you could explain why it's OK to have pkg_add -r download applications and dependencies from a remote location on demand, but it's not OK for the ports system to do the same thing. I think I do have a point, that's why I am so stubborn about it. I am willing to change my mind if you offer some logic and sensible argumentation instead of insults.
Ultimately, it doesn't matter. Nothing is going to change because of my ideas and a silly forum debate. I don't entertain such expectations. I started this debate because I want to learn and I am interested in what people have to say about the issues I raised that really astonish me. That's what I think forums are for. That's all. If you can enlighten me with your experience and feel like sharing it today, that's great. But if I annoy you, then you had better just walk away from this debate and be happy with your mind set on something else. My ultimate goal here is explore what I perceive as issues, their possible solutions and points of view. My goal here never was to make people angry. If you think I am "whining", then I suspect you shouldn't take part in this conversation in the first place.
So you want to have a tarball of each of the Makefiles/metadata for each port, such that each port's metadata can be downloaded on demand during a given port's installation.
Sounds great! How long do you think it'll take for you to code it? (not being malicious, I'm genuinely curious). I could see having a server that syncs the ports tree once every 24 hours or so, but then you run into an issue of STABLE vs. CURRENT, etc... so it could be split off into different directories, and each RELEASE/STABLE/CURRENT directory would contain each respective tree. (I could see this being useful for embedded systems, though typically you'd build the port on a different machine and transfer it to an embedded system).
The biggest issue I see is modifying the Makefile to look remotely instead of locally for the metadata for dependency ports...that's a bunch of Makefiles to go through!
And to answer why it's not done this way, I'll again pick on FreeBSD =P (since Gentoo and OpenBSD ports are both based on FreeBSD's ports system). I guess "why isn't it done this way" would be a question for the FreeBSD team...and I suspect the answer lies more in "it started off small, so we didn't think it'd matter?" but now it's 385 MB on FreeBSD, 328 MB on Gentoo, and 192 MB for OpenBSD-CURRENT.
Herein lies the beauty of Open Source. If you can think of a better way to do things, you're more than welcome to implement it.
Edit - Just for the record, you can mount /usr/ports via network share and set WRKOBJDIR in /etc/mk.conf to make /usr/ports read-only (and so you only have to maintain one /usr/ports tree on your network (as long as all the OpenBSD machines are running CURRENT, or STABLE, or whatever the ports tree is synced to)).
Edit #2 - Actually, if you were to implement a ports system like this, the mirrors could keep track of what ports are used most often, which would be nice for prioritizing fixes and what-not.
Edit #3 (last one, I promise =) - Doh! I didn't read your post very closely...you mentioned maintaining a small db of metadata about the metadata (i.e. where to find the port's metadata). It wouldn't require modifying Makefiles if done that way...my bad.
Edit #4 (ok, ok...I lied) - The ports tree's purpose is to allow for specialty builds (flavors, in OpenBSD terms) of packages. Want package X without Samba support? Well, if the package was compiled with Samba support, then pkg_add will pull in Samba. The way around that is to install from ports. As per the FAQ, though, you should always use packages over ports =)
The data in the ports system can be compared to the Gentoo portage tree - a _lot_ of very small files.
If you put these onto a filesystem created for normal use - or even large files - a lot of space will be wasted.
If you dont want or like that, you can work around it.
- tar and compress the ports tree - and only uncompress when needed
- put it on its own partition - which has a filesystem more suited for a lot of small files (that is what I did in Gentoo)
- look into other approaches to this - similar things could be done in BSD too: http://www.gentoo-wiki.com/HOWTO_VER...FS_and_UnionFS http://www.mhampicke.de/wiki/index.p...ee_verkleinern
It's like keeping a cow at home if cows were the size of cats, perhaps. The ports tree just isn't very big, particularly next to the binaries for OpenOffice and FireFox etc.
When you decide to use PC-BSD :
- you should know that you can compile but there are probably ready to install packages. If there are no packages, you should look if a guy from PC-BSD team has a website with some extra binaries.
- you should know if PC-BSD use the ports tree database or have a custom database.
- etc.
- in general you should know what's the difference between a "pure BSD" and the "bastard version" you're using (is there a preferred way to do something, is everything the working the same?)
There are probably many things you are not aware of in general that you should be.
I'm a long-time Slackware user and I'm frankly a bit embarrassed by this thread. As a Slackware user I pride myself on being able to fix it myself and I do read the manual. I also am a novice FreeBSD user. But, I don't whine about how difficult FreeBSD is to use or complain about perceived system flaws. Some advice for you, lucmove. You need to more fully learn about BSD and get your hands dirty. Crap, you're giving Slackers a bad name.
Without BSD Slackware could not be what is is now, or any other distro for that matter. Windows and Mac have used things from BSD. Name a distro that is not using something that came from BSD. Many distros are based on Debian for good reason.
And Britney Spears ranked first in Google's top searches for years. What do you expect to prove with that figure parade? 50 million Elvis fans can't be wrong?
If you want to build things, you have to put up with some lost space. I don't really want /usr/include on my home computer, but I can't do without it. On the other hand, instruments I've put out in the field just can't waste that precious Flash RAM so I've spent months making sure that the development scripts strip out absolutely every unnecessary file. For ports I guess it's a simpler task to update the whole bunch of files rather than go through the hassles of sorting out version dependencies when someone makes a change to an application. Just look at the space "wasted" by your favorite Linux package manager's software list. How about the numerous system tools installed which you don't use and no script on the system uses. How about WinDuhs - now there's a waste of space.
You've also got to be careful pulling in software from multiple sources; inexperienced Debian users often do that and horrible things happen to them because dependencies are all wrong. That's just a matter of understanding the package management system and knowing what to look for.
I can't criticize the encrypted filesystem because I haven't looked into the details of any. Just because you discovered something you think is horribly wrong with a particular implementation doesn't mean that other implementations you've used don't have similar or worse risks.
Then of course no system is perfect - you might have to wait years for some feature you want to appear. Don't forget the *BSD community doesn't enjoy as much support as Linux so development (including addition of drivers) is not as rapid. Despite that, *BSD developers have come up with quite a bit of code which had since been used in Linux (like the earlier Atheros chipset driver).
*BSD is just another tool - if it works well for a particular job, use it - if you're more comfortable with using something else to do the same job then use that. There's a whole world of WinDuhs users out there and not many people are in any hurry to try to get them to use anything else.
- Being able to fix things is good, but I'd rather pride myself on other things.
- No one is going to think ill of Slackware because of one guy.
My point was not just about fixing things. The main point I was making is that Slackers are for the most part individualists who stand on their own two feet. Stop whining about BSD. Either learn about it or stop using it. Grow up. Do you really think that the BSD community cares that a rank beginner dislikes how BSD functions?
I enjoy the challenge of learning FreeBSD. I'm not completely comfortable with it, but, therein lies the joy of things. FreeBSD is a rock-solid OS.
Slackware is the clueless Britney Spears of linux.
Quote:
Originally Posted by lucmove
And Britney Spears ranked first in Google's top searches for years. What do you expect to prove with that figure parade? 50 million Elvis fans can't be wrong?
Britney Spears and Elvis are just like Slackware fans. They have loud unintelligent fans and do not influence new music. Slackware is the Britney Spears of linux, nice on the outside but clueless and non-functional. Encrypted /home BS if, I get your computer I have all the time I need to decrypt your disk using your keys. Stupid blond Slackware/Britney fans. I wonder if Britney runs slack looks like a nice fit.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.