On 05/02/2012 10:46 AM, Bruno Mahé wrote:
On 05/02/2012 08:34 AM, Roman Shaposhnik wrote:
Guys,
I've noticed lately that new users of the Bigtop distro fall prey
to thinking that they can simply utilized upstream launcher scripts
as is by running them from under /usr/lib/<component>bin
directories. Something this works. More often it doesn't.
For example, in order for the hadoop scripts to work the users
actually need to
export HADOOP_LIBEXEC_DIR
properly.
In case of Zookeeper there's more stuff to be setup in the env.
before you can actually execute upstream scripts.
Most of these issues have to do with a tendency of upstream
scripts to cater to the dev. environment where keeping logs, etc.
in /tmp is perfectly fine. For Bigtop we have to override that and
the place we do that is in /usr/bin/<component> launcher
scripts.
Now the question is -- should we go out of our way to not
let the users shoot themselves in the feet with trying to
launch scripts that may fail in the Bigtop setting?
I could imagine that one approach could be removing an
executable bit from them. That way we can still leverage
the code in our /usr/bin scripts by passing the scripts
as arguments to bash/sourcing, but the users won't be
able to (easily) execute them directly. We can augment this
strategy with moving these upstream script from under
/usr/lib/<component>/bin -> /usr/lib/<component>/libexec
to further strengthen the fact that they are not supposed
to be executed directly.
What do you all think?
Thanks,
Roman.
P.S. I guess there are 2 questions I'm asking really:
* is this worth attacking
* what would the most effective approach be
Great idea!
I would be a favor of starting with disabling the execution bit and see
how it goes.
This is easier and less intrusive than moving files around.
We can always move the files at a later point if necessary.
Thanks,
Bruno
+1 As well. I just would add this to a readme or in the release notes
with an explanation why this is done.
Thanks,
Peter