Freebsd Problems

brianbrian Join Date: 2003-01-26 Member: 12830Members
edited January 2003 in General Server Discussion
<div class="IPBDescription">Version 4.6.2</div> Dear All;

First I ran ns 1.03 on my freebsd 4.6.2 server without any problems:

I tried upgrading to ns 1.04 and got the following errors:

Loadlibrary failed on/usr/home/deadman/hlds_l3ns/ns/dlls//ns_i386.so: libstdc++-libc6.2-2.so.3: cannot open shared object files: no such file or directory

Host error : couldn’t get dll api from /usr/home/deadman/hlds_l3ns/ns/dlls//ns_i386.so!

Fatal error (shutting down) host_error: couldn’t get dll api from /usr/home/deadman/hlds_l3ns/ns/dlls//ns_i386.so

I took the advice of another poster and performed the following though I already had the first file on my system. The second file libstdc++-libc6.2-2.so.3 is not on my system

1st - get "libstdc++-2-libc6.1-1-2.9.0.so"
2nd- install it to "/usr/compat/linux/usr/lib" directory
3rd - change dir to "/usr/compat/linux/usr/lib"
last- make synboliclink.
exmaple... "$ ln -s libstdc++-2-libc6.1-1-2.9.0.so libstdc++-libc6.2-2.so.3"

That made the one erro go away but created a new erropr that prevents the server from loading:

I don't use adminmod or anything else at this point just ns:

Loadlibrary failed on/usr/home/deadman/hlds_l3ns/ns/dlls//ns_i386.so: libstdc++-libc6.2-2.so.3: undefined symbol: _start_cp_handler

Host error : couldn’t get dll api from /usr/home/deadman/hlds_l3ns/ns/dlls//ns_i386.so!

Fatal error (shutting down) host_error: couldn’t get dll api from /usr/home/deadman/hlds_l3ns/ns/dlls//ns_i386.so

Any help?

Sincerely

Brian

Ps I think I had to do this once before to get adminmod to work by adding the needed library back in. I think I need to get the correct rpm from redhat; if anyone knows what that one is pleaset tell me and make changes to vceratin files to get it to see the new rpm containing the libstdc++-libc6.2-2.so.3 library.

Comments

  • DMFEMUDMFEMU Join Date: 2002-12-20 Member: 11213Members
  • verboseverbose Join Date: 2002-11-25 Member: 9968Members, Constellation
    I assume you installed linux_base from ports? How old is said installation (filename in /var/db/pkg)? 7.1.2 is the latest.

    To upgrade:

    update your ports tree (read handbook at <a href='http://www.freebsd.org/' target='_blank'>http://www.freebsd.org/</a> for details if unfamiliar with process, section 4.5.1, CVSup method. PM me if you have troubles).
    pkg_delete linux_base-7.x.x (your version here)
    cd /compat
    rm -rf linux (nuke any old, extra stuff)
    cd /usr/ports/emulators/linux_base
    make install

    libstdc++-libc6.2-2.so.3 is in at least 7.1.1+
  • verboseverbose Join Date: 2002-11-25 Member: 9968Members, Constellation
    <!--QuoteBegin--verbose+Jan 27 2003, 01:33 PM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (verbose @ Jan 27 2003, 01:33 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> libstdc++-libc6.2-2.so.3 is in at least 7.1.1+ <!--QuoteEnd--> </td></tr></table><span class='postcolor'> <!--QuoteEEnd-->
    waydaminute...it doesn't appear in 7.1.2...lemme figure out what's going on here...
  • verboseverbose Join Date: 2002-11-25 Member: 9968Members, Constellation
    edited January 2003
    Appears to be a bug in the Makefile, introduced in the linux_base-7.1_2 revision. I submitted a FreeBSD PR, but if you don't want to wait for it to show up, here's the patch:

    <!--c1--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>CODE</b> </td></tr><tr><td id='CODE'><!--ec1-->--- Makefile.orig       Mon Jan 27 15:05:00 2003
    +++ Makefile    Mon Jan 27 17:16:41 2003
    @@ -79,7 +79,7 @@
    RPM_SETSERIAL=         setserial-2.17-2.i386.rpm
    RPM_SETUP=             setup-2.4.7-1.noarch.rpm
    RPM_XFREE86_LIBS=      XFree86-libs-4.0.3-5.i386.rpm
    -UPDATES+=              libstdc++-2.96-112.7.1.i386.rpm
    +UPD_SET2+=             libstdc++-2.96-112.7.1.i386.rpm
    .else
    RPM_BZIP2=             bzip2-1.0.1-4.alpha.rpm
    RPM_FREETYPE=          freetype-2.0.1-5.alpha.rpm
    <!--c2--></td></tr></table><span class='postcolor'><!--ec2-->

    Apply that to the port's Makefile before your <b>make install</b>. That'll get you a working libstdc++-libc6.2-2.so.3

    *edit* FreeBSD PR: <a href='http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/47573' target='_blank'>http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/47573</a> (excuse the line-wrapping)
  • brianbrian Join Date: 2003-01-26 Member: 12830Members
    Dear Verbose;

    Thanks for the help. I'll wait for you to check it out.

    Brian
  • brianbrian Join Date: 2003-01-26 Member: 12830Members
    edited January 2003
    Dear Verbose;

    Thanks but don't you also have to edit the distroinfo.i386 file as well?

    Brian
  • brianbrian Join Date: 2003-01-26 Member: 12830Members
    Dear Verbose;

    Everytime I try and do a cvsup I end up crashing the server or something. Corrupting it. Is there any other way. can I just add in the new linux compatiblity port?

    Brian
  • verboseverbose Join Date: 2002-11-25 Member: 9968Members, Constellation
    <!--QuoteBegin--brian+Jan 27 2003, 06:08 PM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (brian @ Jan 27 2003, 06:08 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Thanks but don't you also have to edit the distro.i386 file as well?<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
    distinfo.i386 is already correct. However, pkg-plist.i386 needs updating (only relevant for uninstalling the port, really). Thanks for mentioning those misc. files.

    <!--c1--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>CODE</b> </td></tr><tr><td id='CODE'><!--ec1-->--- pkg-plist.i386.orig Mon Jan 27 18:16:19 2003
    +++ pkg-plist.i386      Mon Jan 27 18:17:25 2003
    @@ -467,7 +467,9 @@
    usr/lib/libslang.so.1
    usr/lib/libslang.so.1.4.2
    usr/lib/libstdc++-2-libc6.1-1-2.9.0.so
    +usr/lib/libstdc++-3-libc6.2-2-2.10.0.so
    usr/lib/libstdc++-libc6.1-1.so.2
    +usr/lib/libstdc++-libc6.2-2.so.3
    usr/lib/libstdc++.so.2.7.2
    usr/lib/libstdc++.so.2.7.2.8
    usr/lib/libstdc++.so.2.8
    <!--c2--></td></tr></table><span class='postcolor'><!--ec2-->
  • brianbrian Join Date: 2003-01-26 Member: 12830Members
    Dear Verbose;

    I tried just editing my existing makefile in the linux_base directory and it does nothing when I type make install. Is doing the cvsup thing a must, because if so I just mite as well do an install of 4.7 because again I've had absolutely no luck with cvsup even with textbook examples. My kernel either won't compile or I corrupt the system some how.

    Brian

    PS I'm no expert to freebsd so if you could take the time to spell things out for me I would be grateful
  • verboseverbose Join Date: 2002-11-25 Member: 9968Members, Constellation
    <!--QuoteBegin--brian+Jan 27 2003, 06:18 PM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (brian @ Jan 27 2003, 06:18 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> Everytime I try and do a cvsup I end up crashing the server or something. Corrupting it. Is there any other way. can I just add in the new linux compatiblity port? <!--QuoteEnd--> </td></tr></table><span class='postcolor'> <!--QuoteEEnd-->
    Really? What happens?

    There are pre-built packages of some ports. Let me see if the linux_base-7.1_2 one exists, and if it's correct.
  • brianbrian Join Date: 2003-01-26 Member: 12830Members
    Dear Verbose;

    I'm working with the set of ports that came with 4.6.2. It has linux_base-7. However, I had to modified linux_base to support clanmod on another server. I had to add in a newer version glibc to support clanmod. It crashes a lot when it gets to glibc saying it's not compatible.

    Brian
  • verboseverbose Join Date: 2002-11-25 Member: 9968Members, Constellation
    <!--QuoteBegin--brian+Jan 27 2003, 06:29 PM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (brian @ Jan 27 2003, 06:29 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> I tried just editing my existing makefile in the linux_base directory and it does nothing when I type make install. Is doing the cvsup thing a must, because if so I just mite as well do an install of 4.7 because again I've had absolutely no luck with cvsup even with textbook examples. My kernel either won't compile or I corrupt the system some how. <!--QuoteEnd--> </td></tr></table><span class='postcolor'> <!--QuoteEEnd-->
    The prebuilt linux_base package is missing the library. I might be able to fix it, but lets try this first:

    (cvsup'ing the ports tree and cvsup'ing the kernel+world sources are different tasks, each with its own supfile)

    If your linux_base Makefile has this at the top:

    PORTNAME= linux_base
    PORTVERSION= 7.1
    PORTREVISION= 2

    then that port is current, and you don't need to update it via cvsup; skip a paragraph. If it's not current, do this as root:

    cp /usr/share/examples/cvsup/ports-supfile /root
    cd /root
    fire up your favorite editor and open ports-supfile
    change: *default host=CHANGE_THIS.FreeBSD.org
    to: *default host=cvsup3.FreeBSD.org
    (try some other servers if that one is busy or slow. cvsup2, cvsup6, etc.)
    save and exit your editor
    cvsup -g -L 2 ports-supfile
    You should get some output. It'll connect, then sit for a built while it calculates a few things, then text should start streaming by as it updates ports.
    If your ports tree is old, this can take a while. If you do it once a week or so, it goes fairly fast. Many people write a cron job to do it nightly.

    once the cvsup is done (if you needed to run it)
    cd /usr/ports/emulators/linux_base
    Edit the Makefile, changing the line that my patch above shows.
    Edit the pkg-plist.i386 if you want.
    make clean
    make install

    That should do it. If anything fails on you, copy the output if you can.
  • brianbrian Join Date: 2003-01-26 Member: 12830Members
    Dear Verbose;

    I've been hackin gthe makefile tryinmg to get it to run taking out stuff that crashes and that I don't think I need.

    Right now I'm getting the following error:

    compat-libstdc++-6.2-2.9.0.14.i386.rpm
    file /usr/lib/libstdc++-2-libc6.1-1-2.9.0.so from install of compat-libstdc++-6.2-2.9.0.14 conflicst with file from package libstdc++-2.9.0-24
    file /usr/lib/libstdc++.so.2.9.dummy from install of compat-libstdc++-6.2-2.9.0.14 conflicts with file from package libstdc++2.9.0.-24

    brian
  • verboseverbose Join Date: 2002-11-25 Member: 9968Members, Constellation
    <!--QuoteBegin--brian+Jan 27 2003, 06:42 PM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (brian @ Jan 27 2003, 06:42 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> I'm working with the set of ports that came with 4.6.2. It has linux_base-7. However, I had to modified linux_base to support clanmod on another server. I had to add in a newer version glibc to support clanmod. It crashes a lot when it gets to glibc saying it's not compatible. <!--QuoteEnd--> </td></tr></table><span class='postcolor'> <!--QuoteEEnd-->
    Yeah, I'd blow away your old linux_base install, and start fresh. pkg_delete, and rm the /compat/linux directory.

    The port I'm working with is named just 'linux_base'. It contains version 7. There's another port 'linux_base-6', which has the version 6 branch. You'll definitely need to update your port to get the current version of linux_base.
  • brianbrian Join Date: 2003-01-26 Member: 12830Members
    Dear V;

    linux_base is 6.1 portrevision 1

    Brian
  • verboseverbose Join Date: 2002-11-25 Member: 9968Members, Constellation
    <!--QuoteBegin--brian+Jan 27 2003, 06:53 PM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (brian @ Jan 27 2003, 06:53 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> I've been hackin gthe makefile tryinmg to get it to run taking out stuff that crashes and that I don't think I need.

    Right now I'm getting the following error:

    compat-libstdc++-6.2-2.9.0.14.i386.rpm
    file /usr/lib/libstdc++-2-libc6.1-1-2.9.0.so from install of compat-libstdc++-6.2-2.9.0.14 conflicst with file from package libstdc++-2.9.0-24
    file /usr/lib/libstdc++.so.2.9.dummy from install of compat-libstdc++-6.2-2.9.0.14 conflicts with file from package libstdc++2.9.0.-24

    brian <!--QuoteEnd--> </td></tr></table><span class='postcolor'> <!--QuoteEEnd-->
    You should only need to make the one Makefile change to get it to build correctly. Make sure you've pkg_delete'd any old installs of linux_base; they'll be listed in /var/db/pkg. Then, to make sure you're starting completely clean, rm -rf /compat/linux. If you're working in the directory 'linux_base-7' as above, you definitely won't be getting 7.1_2, so you'll need to cvsup.
  • brianbrian Join Date: 2003-01-26 Member: 12830Members
    edited January 2003
    Dear Verbose;

    I'm gettiong a little bit confused.

    First you want me to cvsup then delete or delete then cvsup. I imagine it's delete, then cvsup. What & where should I delete?

    All the linux_base directories under ports, and then all the linux- packages under /var/db/pkg as well as compat linux that whole set of directoies?


    Then do cvsup and install all tthe new ports collection. What's this aboput not egtting 7.1.2?

    brian

    PS thanks a lot for your help

    pss it's downloading the ports right now sjhouldn't have to much more to go,
  • verboseverbose Join Date: 2002-11-25 Member: 9968Members, Constellation
    Sorry, I tend to get involed in the details, and forget the big picture <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->

    /usr/ports is just a collection of makefiles and patches that build a particular piece of software. The 'make install' procedure will handle downloading, configuring, building, and installing each piece. When new versions of software come out, the ports tree must be updated to reflect that. That's what cvsup is for. Otherwise, the Makefile will fetch foo-2 insteadl of foo-3, etc.

    When you install a port, all the details of that installation are recorded in /var/db/pkg. All that's in there is a list of installed files, and a few other things. When you want to remove a package, you 'pkg_delete name_found_in_var_db_pkg'. Probably something like 'pkg_delete linux_base-6.1.1'.

    Without any other linux packages installed, pkg_delete'ing your linux_base should leave you with an empty /compat/linux. However, since you installed a newer library, that will probably be left over. That's why I recommend 'rm -rf /compat/linux', to clean out everything old.

    The order of cvsup and pkg_delete is not important. pkg_delete only works with what's listed in /var/db/pkg, while cvsup stays in /usr/ports.

    The 'not getting 7.1_2' part was if you reinstalled linux_base without doing a cvsup first. Since your ports directory layout is different than mine, I know that you have an older linux_base port skeleton. If you cvsup, you'll get the most current port available.

    A good habit is to 'make clean' before you 'make install'. If you've worked with that port before, the 'make clean' will remove any old build pieces that are laying about. 'make distclean' is even more thorough, but it will force a re-download of any package files, which is hardly ever necessary.
  • brianbrian Join Date: 2003-01-26 Member: 12830Members
    Dear V;

    Again thanks; I did make clean, and then make install. However, I did get version 7.1..2 and it already has the patch:

    UPDATES+= libstdc++-2.96-112.7.1.i386.rpm

    SO I didn't want to change anything really since it was already there

    Was I correct in not changing anything?

    Brian
  • brianbrian Join Date: 2003-01-26 Member: 12830Members
    Dear Verobose;

    Still get teh same errors. Am going to try your patch and see if that helps. EVen when I try and do the symbolic link itr doesn'tr work I getthe same 2 errors.

    brian
  • brianbrian Join Date: 2003-01-26 Member: 12830Members
    Dear Verbose;

    Thanks but no luck; same 2 errors. I'm going to bed so maybe we could take this up Tuesday. Maybe I do what we spoke about as I don't know what's wrong either. Any ideas would be welcome. I mite jusyt have to upgrade to 4.7 but I don't see how that will help unless other people are getting it run without problems.

    brian
  • brianbrian Join Date: 2003-01-26 Member: 12830Members
    Dear Verbose;

    You need to be more verbose. = > got it. Again thanks couldn'tt have done it without you. I didn't delet the first couple of lines in the makefile, just assumed you wanted me to leave them in.

    Brian
  • verboseverbose Join Date: 2002-11-25 Member: 9968Members, Constellation
    <!--QuoteBegin--brian+Jan 27 2003, 07:34 PM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (brian @ Jan 27 2003, 07:34 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> Again thanks; I did make clean, and then make install. However, I did get version 7.1..2 and it already has the patch:

    UPDATES+= libstdc++-2.96-112.7.1.i386.rpm

    SO I didn't want to change anything really since it was already there

    Was I correct in not changing anything? <!--QuoteEnd--> </td></tr></table><span class='postcolor'> <!--QuoteEEnd-->
    That's the bug right there. Instead of 'UPDATES', it should say 'UPD_SET2'
  • wbfjortiswbfjortis Join Date: 2003-02-14 Member: 13547Members
    edited February 2003
    compat-libstdc++-6.2-2.9.0.14
    this package contains
    /usr/lib/libg++.so.2.7.2.8
    /usr/lib/libstdc++-2-libc6.1-1-2.9.0.so
    /usr/lib/libstdc++.so.2.7.2.8
    /usr/lib/libstdc++.so.2.8.0
    /usr/lib/libstdc++.so.2.9.dummy

    pretty weird that it contains libc6.1.1 when it adverts 6.2.2...
  • verboseverbose Join Date: 2002-11-25 Member: 9968Members, Constellation
    <!--QuoteBegin--[wb]fjortis+Feb 14 2003, 02:06 PM--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> ([wb]fjortis @ Feb 14 2003, 02:06 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> compat-libstdc++-6.2-2.9.0.14
    this package contains
    /usr/lib/libg++.so.2.7.2.8
    /usr/lib/libstdc++-2-libc6.1-1-2.9.0.so
    /usr/lib/libstdc++.so.2.7.2.8
    /usr/lib/libstdc++.so.2.8.0
    /usr/lib/libstdc++.so.2.9.dummy

    pretty weird that it contains libc6.1.1 when it adverts 6.2.2... <!--QuoteEnd--> </td></tr></table><span class='postcolor'> <!--QuoteEEnd-->
    The RPMs come from RedHat...don't ask me, ask the messed up release engineers over there <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->
  • wbfjortiswbfjortis Join Date: 2003-02-14 Member: 13547Members
    Anyways I solved it.
    install the linux_base from ports
    and hlds_l, and hlserver-ns

    now goto /usr/ports/distfiles/rpm
    fetch <a href='http://rpmfind.net//linux/RPM/redhat/8.0/i386/compat-libstdc++-7.3-2.96.110.i386.html' target='_blank'>http://rpmfind.net//linux/RPM/redhat/8.0/i...6.110.i386.html</a>

    rpm -i compat-libstdc++-7.3-2.96.110.i386.html --ignoreos --force --root /usr/compat/linux

    now you shouldn't have any problems starting your server :o)

    i'll see if i cant get some running stats from my server and see how the performance is with 14 players...
  • TownehTowneh Join Date: 2002-11-01 Member: 3523Members
    I'm not sure if i'm any help but FreeBSD 4.7 is a stable version that I use, and I've had no problems with the HLDS/NS server.

    Something must've changed between your version and 4.7 <!--emo&:(--><img src='http://www.unknownworlds.com/forums/html/emoticons/sad.gif' border='0' style='vertical-align:middle' alt='sad.gif'><!--endemo-->
  • verboseverbose Join Date: 2002-11-25 Member: 9968Members, Constellation
    *hint* Read the entire thread.

    The *port* was broken at some recent point. It doesn't matter what your FreeBSD version is; the ports tree is an indepedent entity. If your ports tree is more recent than when linux_base was broken (whatever date that is; haven't bothered to check the CVS commits), you just need to make a few quick changes. 30 seconds with a text editor.

    Sorry if I seem testy, but damn, all the info is in this thread. I took the time to isolate the exact problem, contact the port maintainer, and then submit a FreeBSD PR including patches.
Sign In or Register to comment.