nice try

Hi guys.

The first time I bought the Walnut Creek 4-CD set, in Milan, Italy: it was 3.4, January 2000. It didn't even boot on my machine. Some ten years ago I downloaded the full set of ISOs, burned them, booted and then I was stranded at the /bin/sh prompt: being accustomed to bash I could not move from there. So I gave up.

Last week I decided to take a shot at 9.1, downloaded the memstick.img, booted, installed. This time I said to myself "I will have my machine running a full BSD distribution, GUI and all that jazz, no matter what". But no cigar, just to have gnuplot installed (from source, since the package was not good, pdflib problems and tetex dependency which I loathe since I have to have texlive instead) it took several hours?! So what will happen when I will have to build some seriously big thing, like firefox or whatnot? Seriously, I cannot allocate that much time just to install basic software...

*sigh* I think I will give PC-BSD one more try, then I will sadly go back to Ubuntu :(

Best regards.
 
SirDice said:
Seriously, you're building from source. What did you expect? A compiler that instantly produces code?

If you build from source it will take time. Don't want to wait? Use packages. It's that simple.

Chapter 5. Installing Applications: Packages and Ports

That's what I first tried. The gnuplot binary package won't install since it depends on a library (pdflib) which CANNOT be distributed as a package. So the same thing applies to pdflib, at least that was much shorter (30 minutes on my machine).

But still, is this what I am expected to expect? That I might occasionally encounter a package which cannot be installed due to dependencies and license problems, so that I have to spend afternoons just to compile that?

Just asking.

Thanks for your reply BTW

best regards.
 
I guess you'll be happy with PC-BSD. It has a PBI for gnuplot.
 
piai said:
But still, is this what I am expected to expect? That I might occasionally encounter a package which cannot be installed due to dependencies and license problems, so that I have to spend afternoons just to compile that?
Yes, if there's no package, or if you need additional options enabled, you will have to build the port. Building a port takes time. Depending on your machine this may take a while.

But by comparison, my FreeBSD 3.1 ran on a Pentium 90. It took a full day to compile XFree86. My current 9.1 machines will build Xorg within 2 hours.

And, last but not least, you can always build your own packages on a fast machine and transfer them to a slow one.
 
SirDice said:
Yes, if there's no package, or if you need additional options enabled, you will have to build the port. Building a port takes time. Depending on your machine this may take a while.

But by comparison, my FreeBSD 3.1 ran on a Pentium 90. It took a full day to compile XFree86. My current 9.1 machines will build Xorg within 2 hours.

And, last but not least, you can always build your own packages on a fast machine and transfer them to a slow one.

Ok, thanks, but I am really not willing to mess with source as far as I can. I am just a regular user but I would like to give freebsd FreeBSD a try nonetheless.

Bye.
 
FreeBSD isn't for everyone, it doesn't try to cater to the widest possible audience like many other open source operating systems do. If you find it too much for you there are always other alternatives like PC-BSD or just use the Linux you already know.
 
piai said:
Ok, thanks, but I am really not willing to mess with source as far as I can.
You don't need to be a rocket-scientist. The FreeBSD ports system actually makes this really, really easy. All it takes is a little time to let it do its thing.

Code:
cd /usr/ports/print/pdflib
make install clean

Once it's installed there's no difference between using a package or a port. A package is really nothing more than a pre-compiled port.
 
SirDice said:
You don't need to be a rocket-scientist. The FreeBSD ports system actually makes this really, really easy. All it takes is a little time to let it do its thing.

Code:
cd /usr/ports/print/pdflib
make install clean

Once it's installed there's no difference between using a package or a port. A package is really nothing more than a pre-compiled port.

Ok, installation of gnuplot ended, and all seems fine. Maybe it took long just because it was day one, and the very first thing I tried to install after the bsdinstall.

But still, since now I am gonna going to try something else, like texlive, how can I know beforehand if there's something funny that's gonna going to happen? I mean: texlive depends on many packages, maybe some of them must be installed from source, maybe some others I do not want so I must install texlive from source with suitable configuration options. How can I get this type of information?

Best regards.

P.S.: I hope the capitalization is good now... or else the grammar police is gonna get me ;-)
 
Well, what did you do to try to fix your problems? Computer is a tool, and using tools requires a certain level of proficiency.

Luckily for you FreeBSD has a very good documentation (FreeBSD Handbook, FreeBSD Wiki -- they're very good source of documentation and are there for a reason) and people who are willing to help: this forum and many different mailing lists. If you had any trouble at that time, and were really determined to give FreeBSD a shot, you should've/would've started by asking there, and not immediately give up.

I would recommend you to start from the Handbook, from the beginning and then see what's up. Also see this forum's HOW-TOs & FAQ section.

But, as with all things, be prepared that you'll spend at least one week getting used to FreeBSD.

Don't expect that you'll know everything from the start. Easy operating systems are usually rigid, and don't offer users much choice of functionality. FreeBSD can be made into whatever you want it to be. You can tweak and configure it very easily, but in order to know what you're doing, you're going to have to read through some documentation, which can be fun. Know that the OS is better if you put more effort into it.

I'm quite new here myself, but still, allow me to give you some advice, since you seem to come from predominantly Ubuntu background (not that anyone has anything against it -- it's just that I would expect the people here to be maybe more independent): many people here are hackers (not in the sense of Internet security), so take these notes as your guideline when you're solving your problems, and as a lifestyle. They will help you tremendously :).


Other than that, welcome ;) and happy BSD-ing! :beer
 
Thanks for the pointer. BTW, do you happen to know something about my last post (the texlive example)?

Regards.
 
If you want a good overview of what you've gotten yourself into, read this. It outlines the key differences between FreeBSD and Linux. It will also answer most of your "what-if" questions (if you didn't do it until now, then this is really the last time for you to read it). In order to see how you can use the terminal to your advantage, you can read BSD Hacks, which you can read on-line for free.

Please, excuse me for the essay (the rather long post). Don't be intimidated by the information I posted -- it's your homework that you neglected to do before installing FreeBSD, and it's not much ;).

Yes, all you need to know about texlive is here. However, texlive is not your problem, it's that you're not familiar with ports. Get to know them better:
SirDice said:
Seriously, you're building from source. What did you expect? A compiler that instantly produces code?

If you build from source it will take time. Don't want to wait? Use packages. It's that simple.

Chapter 5. Installing Applications: Packages and Ports

Let me tell you that ports are properly tested and are *guaranteed* to compile with default settings (non-standard compile time options very rarely break the port, but definitely no funny things in your /etc/make.conf, unless/until you know what you're doing) on the supported platforms.

Ports are a separate entity and don't affect the base system. That's because whatever is installed from the base system, has the prefix /usr while ports have exclusively /usr/local. You can delete this directory (e.g. # rm -rf /usr/local) and your system will still work like nothing really happened (note that X is not part of the base system, so if you break it, you can easily reboot the computer, and just reinstall it). If something does indeed happen, ask either here or on the mailing list. There is a wiki site, dealing with broken ports, and a site where people are doing routine tests on the ports tree, called pointyhat. I know it's a lot to take in, but yes, if you want to know these things, you should read them. This is why those things are written there ;).

Some people don't know how to update the ports properly. To ensure nothing funny will happen during/after you upgrade them, read the /usr/ports/UPDATING. Sometimes you have to rebuild some ports that depend on it, and sometimes it also holds a useful tip. Entries there have a timestamp: entry 20130706 for example means 6th of July, 2013.

Also, from what I've seen, senior members will get really annoyed around here if you don't read the forum rules. Some people might not take you seriously, if you don't even try to make an effort when asking a question. You got the link the rules in the private message (PM) when you joined this forum. Specifically, the formatting and grammatic rules are important, in order to uphold the quality standards. And reading them is part of that manual.

Get used to reading the man(1)() pages. In this particular case, see
  1. hier(7)() (the filesystem hierarchy),
  2. ports(7)() (what ports are and how do they function),
  3. make.conf(5)() (how to fine tune compiler options for ports),
  4. make(1)() (how the make program actually works).

To search through (for example I want to see what manuals I have for the keyword `ports') the manual pages, you can use $ man -k ports or $ apropos ports, which do the same thing.

If you feel that this is bit too much to take in at once, and that you feel the learning curve is rather steep, you can try PC-BSD, or GhostBSD, and learn things progressively, and come join us again when you feel more ready. You can still ask questions here though. Good luck! ;)
 
piai said:
But still, since now I am gonna try something else, like texlive, how can I know beforehand if there's something funny that's gonna happen?
You can't, to some degree, so it's usually best to expect funny things.

Even so, you can do quite a bit of investigation up front. All that takes is some experience and knowledge about the way the package management system works. Because, although the whole ports collection is basically aimed at compilation this doesn't mean that's all there is to it.

So, for example, texlive. If you want to know more about how something would go down you can use the -n parameter for the pkg_add command. Please note that I'm using the old (or still current) package system, I'm sure the modern pkgng also knows options such as this.

Code:
chihiro:/usr/ports $ pkg_add -nr texlive
Error: Unable to get ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.1-release/Latest/texlive.tbz: File unavailable (e.g., file not found, no access)
pkg_add: unable to fetch 'ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.1-release/Latest/texlive.tbz' by URL
This tells me that either the package isn't available or I'm making a mistake somewhere. So now it would be time to look for texlive in the ports system using # make search name=texlive | more.

That will quickly show me that I was indeed doing it wrong; there are several packages I could consider using: texlive-base, texlive-docs, texlive-full.

Let's concentrate on texlive-full, or put differently; the print/texlive-full port.

As @SirDice already said there is basically no difference between a package and a port. So if you want to know the dependencies you can just as well look into the port. That's done using the # make run-depends-list command:

Code:
root@chihiro:/usr/ports/print/texlive-full # make run-depends-list
/usr/ports/devel/tex-kpathsea
/usr/ports/devel/tex-web2c
/usr/ports/japanese/tex-ptex
/usr/ports/print/tex-aleph
/usr/ports/print/tex-dvipdfmx
/usr/ports/print/tex-dvipsk
/usr/ports/print/tex-formats
/usr/ports/print/tex-jadetex
/usr/ports/print/tex-luatex
/usr/ports/print/tex-ptexenc
/usr/ports/print/tex-xdvik
/usr/ports/print/tex-xetex
/usr/ports/print/tex-xmltex
/usr/ports/print/texlive-base
/usr/ports/print/texlive-infra
/usr/ports/print/texlive-texmf
Note that this is run on an unconfigured port, so changes could occur. Even so, you can find out about this command, and related others, by checking the ports(7) manualpage.

So, if you now try to use pkg_add again you'll notice that it still fails when trying tex-live. At that time it becomes time to use a browser such as lynx (personal preference on a FreeBSD console) and look it up. Then you'll find something like this:

Code:
tex.tbz -> ../All/tex-3.14159_3.tbz

So now we can try the following:

Code:
chihiro:/home/peter $ pkg_add -nr tex
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.1-release/Latest/tex.tbz... Done.
That makes me conclude that you can grab and install tex without any weird issues.

Of course; there's something I'm now not addressing: the default settings of a binary package. A binary package on FreeBSD isn't the same as those on Linux. For example; a binary package of php5 won't include the mod_php module thus making it useless if your aim is to use PHP together with your webserver.

I don't know what the rule or norm is for that (I don't use precompiled packages on FreeBSD), but I think that you can never go wrong if you compare a package to a "pristine port". In other words: a port with its default settings being used.

And that's basically how I'd do this.
 
Last edited by a moderator:
One of my favorite port make(1) targets is missing. It shows the dependencies that have not been installed yet but are or would be needed for this port. So it's an easy way to find out how many more dependencies will be installed for a given port.
 
piai said:
Hi guys.

The first time I bought the walnut creek 4-cd set, in Milan, Italy: it was 3.4, January 2000. It didn't even boot on my machine. Some ten years ago I downloaded the full set of ISOs, burned them, booted and then I was stranded at the /bin/sh prompt: being accustomed to bash I could not move from there. So I gave up.

Last week I decided to take a shot at 9.1, downloaded the memstick.img, booted, installed. This time I said to myself "I will have my machine running a full BSD distro, GUI and all that jazz, no matter what". But no cigar, just to have gnuplot installed (from source, since the package was not good, pdflib problems and tetex dependency which I loathe since I have to have texlive instead) it took several hours?!? So what will happen when I will have to build some seriously big thing, like firefox or whatnot? Seriously, I cannot allocate that much time just to install basic software...

*sigh* I think I will give PC-BSD one more try, then I will sadly go back to Ubuntu :-(

Best regards.

Unix installation, you're (deliberately?) doing it wrong.

I would strongly suggest starting with the FreeBSD handbook.
 
Back
Top