LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Bedrock Linux (https://www.linuxquestions.org/questions/bedrock-linux-118/)
-   -   bedrock, makewhatis question (https://www.linuxquestions.org/questions/bedrock-linux-118/bedrock-makewhatis-question-4175704148/)

jr_bob_dobbs 11-26-2021 04:36 PM

bedrock, makewhatis question
 
I'm running bedrock with Void as the init stratum. Had an error message while running makewhatis:
Code:

# makewhatis
/bedrock/cross/man//mandoc.db: Data changed, but cannot replace database
# brl which makewhatis
void
# strat -r void makewhatis
#

I was then able to run apropos and see things I had not before, so success.

In normal bedrock functioning, should it be necessary to perform a restricted run of the init stratum's version of makewhatis?

shruggy 11-27-2021 11:14 AM

Does
Code:

makewhatis -np >/dev/null
output anything?

Do you have $MANPATH defined? What are the contents of /etc/man.conf? Does the latter file exist in the void stratum only or in the bedrock stratum as well? If yes, are they identical? Or, perhaps, man.conf should be listed in /bedrock/etc/bedrock.conf under [global]/etc?

The Bedrock Configuration page says
Quote:

To ensure unwrapped calls are run through /bedrock/cross, configure them as pin entries under [cross-bin] as well.
So, perhaps adding
Code:

[cross-bin]
pin/bin/makewhatis = init:/usr/sbin/makewhatis

to /bedrock/etc/bedrock.conf will help?

As to the error message, the source of mandoc has the following comment
Code:

/*
 * We lack write permission and cannot replace the database
 * file, but let's at least check whether the data changed.
 */

BTW, the Void Handbook says
Quote:

The mdocml package provides a cron job to update the database daily, /etc/cron.daily/makewhatis. You will need to install and enable a cron daemon for this functionality to be activated.
Does it work when running a Void stratum on Bedrock?

Hmm, it's interesting that Void uses mandoc by default. I'm used to think of it as of a mostly *BSD thing.

As to your question, I'm not using Bedrock, so cannot help. I can only say that using mandoc by default (and makewhatis which is its part) is a peculiar Void feature. Most other Linux distros use man-db instead. Don't know how Bedrock handles this. At least, the Bedrock Distro Compatibility page lists Void as all green.

Anyway, the Bedrock Basic Usage page says
Quote:

In general, if something acts oddly under Bedrock, the first thing you should try is to restrict it.
Which seems logical when dealing with a Frankendistro that Bedrock is.

ParadigmComplex 12-07-2021 05:58 PM

Props to shruggy's thorough answer. My guess is the final bit of advice is what's needed here - `makewhatis` should probably be run restricted to avoid that error message.

Siljrath 01-03-2022 12:48 PM

encountered same, but got stumped by own silly
 
Thanks for this thread. This thread/question was helpful. Solved my similar issue, when attempting man emerge.

"man: outdated mandoc.db lacks emerge(1) entry, run makewhatis /bedrock/cross/man".

Ran with sudo or su: "/bedrock/cross/man//mandoc.db: Data changed, but cannot replace database".

"man emerge" showed messy jibberish characters, "strat -r jentoo man emerge" showed correctly.

Couldnt "strat -r jentoo makewhatis" (no makewhatis in that stratum), which (besides brl repair) was my first and last thought what to do, before websearch got me here. (Edit: Which I see, in hindsight, the unthinking conceptual presumption mistake of logic I made. If "strat -r jentoo man emerge" worked, rebuilding the db in jentoo stratum wouldnt be the issue.)

It being a gentoo man page I sought, I'd have not thought to "brl which makewhatis" (Edit: and do the resulting "strat -r void makewhatis"), which is what stumped me for a while.

I don't know if that's just my system unfamiliariarity and lack of wits, or, if that (different strata's man, init stratum's(/void's) makewhatis) might be a helpful additional little point to make here for others too (Edit: and/or for my future forgetful self). Posting this reply incase the latter.

"strat -r void makewhatis" solved for me, what, without this thread, would have been its own question thread. thanks. :)


All times are GMT -5. The time now is 03:26 PM.