Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Upgrade issue - hash problems

Posted on 2004-10-27
14
Medium Priority
?
1,501 Views
Last Modified: 2013-12-17
Hi All,

I am attempting to update sendmail from 8.11.redhat.version (no more updates) to latest 8.13.1

All builds great, and I built sendmail.cf from my existing sendmail.mc (with a few changes to suit).

I get these errors on starting:

554 5.0.0 /etc/mail/sendmail.cf: line 158: readcf: map mailertable: class hash not available
554 5.0.0 /etc/mail/sendmail.cf: line 161: readcf: map virtuser: class hash not available
554 5.0.0 /etc/mail/sendmail.cf: line 166: readcf: map access: class hash not available

The files all exist in /etc/mail/ as existing sendmail loads them at start.

Ideas what I need to correct this?  All I need is a receiving/sending sendmail server (one user, me) tied down with no relaying.

TIA,

Nick
0
Comment
Question by:Nick
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
14 Comments
 
LVL 34

Expert Comment

by:PsiCop
ID: 12425121
According to my copy of _Sendmail_3rd_Edition_ by Bryan Costales (ISBN 1-56592-839-3), on page 888 (S23.7.7), the hash database map is only available if sendmail is compiled with NEWDB defined and the Berkeley or Sleepycat db(3) library linked.
0
 
LVL 34

Expert Comment

by:PsiCop
ID: 12425164
So, go to http://www.sleepycat.com/download/db/index.shtml and download the database, compile and install it.

Then, when you rebuild sendmail, in the ./devtools/Site/site.config.m4 file, put:

APPENDDEF(`confLIBDIRS', `-L/path/to/BerkeleyDB/lib')
APPENDDEF(`confINCDIRS', `-I/path/to/BerkeleyDB/include')
APPENDDEF(`confENVDEF', `-DNEWDB')

Sendmail will be rebuilt with the appropriate support.
0
 
LVL 1

Author Comment

by:Nick
ID: 12426125
I have just spent 2 hours fighting this... I must have the Berkley DB as existing sendmail uses it, and I built the access.db using makemap ages ago.

Also, sendmail info states that if 'libdb.so' exists, it will build NEWDB anyway.

I have:

/usr/lib/libdb.so.2 -> libdb1.so.2
/usr/lib/libdb.so -> /usr/lib/libdb2.so.3

If I build with the in /devtools/Site/site.config.m4 I get:

defines../../include/sm/bdb.h:17:17: db.h: No such file or directory

I tried hooking a symlink libdb.so to point to either of those files, but same build error arises.

So it looks like I am missing headers.

I am not sure to update and install berkley DB, as it could break my existing sendmail.

...and I thought configuring sendmail to work was hard... heh.

OK, lets change the tact on this question.  I am a home user, using sendmail just to receive and send mail from my hosted domain here.  Do I need to use DB's at all?

Nick

0
Get your Disaster Recovery as a Service basics

Disaster Recovery as a Service is one go-to solution that revolutionizes DR planning. Implementing DRaaS could be an efficient process, easily accessible to non-DR experts. Learn about monitoring, testing, executing failovers and failbacks to ensure a "healthy" DR environment.

 
LVL 1

Author Comment

by:Nick
ID: 12426344
Typo:

/usr/lib/libdb.so -> /usr/lib/libdb2.so.3

should have been:
/usr/lib/libdb.so.3 -> libdb2.so.3

I cut and paste wrong line in scroll.

Nick
0
 
LVL 2

Expert Comment

by:ChrisDrake
ID: 12427758
Hash is only used in table lookups, like the "virtusertable" and "access" etc - you probably don't need it, but I suspect something somewhere will need to be fixed if you try to run without it.

Perhaps you're building wrongly?  Here's how you should be doing it:-

cd /usr/src/redhat/SPECS/
rpmbuild -bc sendmail.spec

Why do you need 8.13.1 ?  Maybe something else will work too?
0
 
LVL 34

Accepted Solution

by:
PsiCop earned 1500 total points
ID: 12428550
Generally, any version from 8.12.10 on should be OK. Nothing wrong with him using 8.13.1, tho - it is the latest.

Yes, I agree, it looks like you're missing some headers.

Installing a new Berkeley DB should NOT break your existing sendmail if you install it someplace different than the existing db. The once you get the new sendmail running, you can remove the old one (assuming nothing else uses it).
0
 
LVL 1

Author Comment

by:Nick
ID: 12431808
--> Chris, I haven't got Redhat source - as I said, Redhat stopped free up2date ages ago - I am using sendmail 8.13.1 source.


OK, I managed to get a berkley db_deveL RPM to the db installed.  That then allowed berkley* db to build correctly.

A bit of faffing about with sendmail.mc to get it all to work, and all OK.

After this, I just upgraded an old server at work... running Linux 2.2.26 - I got through sendmail install in about 10 minutes now I know what to do/what gotcha's on the way.

Thanks,

Nick
Great word Berk... Cockney Rhyming slang -> Berkley Hunt...
0
 
LVL 34

Expert Comment

by:PsiCop
ID: 12433563
Nick,

I appreciate you accepting my answer, but I don't understand the rather low grade of C. What did I do wrong?
0
 
LVL 1

Author Comment

by:Nick
ID: 12435891
Nothing, really, but I marked lowest grade as I guessed DB headers were missing (the problem), and also as I read and stated here sendmail auto-builds -NEWDB if it finds libdb.so - which it did.

So you confirmed what I found out and learnt before your initial comment.

No offence meant ;).

C == average BTW, not poor.  I also thought my 500 points was a bit high for this type of question too, so it's swings and roundabouts.

Nick
0
 
LVL 34

Expert Comment

by:PsiCop
ID: 12436035
If you solved the issue on your own, then it would have been better to post a (free) Question in the Community Support TA (http://www.experts-exchange.com/Community_Support/) and request that this Question be PAQed and your points refunded. A grade of C means that I didn't do a good job of providing an answer. You can still make that request (be sure to include a link to this Question).
0
 
LVL 1

Author Comment

by:Nick
ID: 12436582
No, I will not do that.  Your help is very much appreciated, and two heads are better than one - it's nice to have a conference.

I am bound to have further questions, so I will repay :)

Grade C == you answered the question!  You didn't do a 'bad job' (leave the politicians to do that) - at the time I thought because with a 'little' help I sussed it, you maybe shouldn't get a 'good' or 'great' mark - all grades are winners in my eyes?

I have no qualms about 'modding up' so to speak - can that be done?

Nick
0
 
LVL 34

Expert Comment

by:PsiCop
ID: 12437332
I appreciate your feedback.

If you'd like to change the grade (which does NOT affect the amount of points you spend), then post a Question in the Community Support TA (as described above) and request a Grade Change. A moderator can do it for you (or re-open the Question and let you grade it again).
0
 
LVL 1

Author Comment

by:Nick
ID: 12437501
I have already mailed a mod... you will get a B soon :)

Nick
P.S. get ready for my next question (a work question - not a home question)... it's a stinker! ;)
0
 

Expert Comment

by:RomMod
ID: 12439784
The grade has been changed as requested.

RomMod
Community Support Moderator
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Granting full access permission allows users to access mailboxes present in their database. By giving full access permission one can open and read the content of any mailbox but cannot send emails from that mailbox.
The main intent of this article is to make you aware of ‘Exchange fail to mount’ error, its effects, causes, and solution.
Familiarize people with the process of utilizing SQL Server functions from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Ac…
In this video we show how to create a Distribution Group in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: First we need to log into the Exchange Admin Center. Navigate to the Recipients >>…
Suggested Courses

636 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question