:: Re: [DNG] yet another case of silly…
トップ ページ
このメッセージを削除
このメッセージに返信
著者: Rowland Penny
日付:  
To: dng
題目: Re: [DNG] yet another case of silly Lennartism :p [Fwd: Our build system may be broken: /bin vs /usr/bin]
On Wed, 21 Nov 2018 17:43:12 +0100
Alessandro Selli <alessandroselli@???> wrote:

> On 21/11/18 at 17:37, Rowland Penny wrote:
> > On Wed, 21 Nov 2018 17:28:40 +0100
> > Alessandro Selli <alessandroselli@???> wrote:
> >
> >> On 21/11/18 at 17:22, Dr. Nikolaus Klepp wrote:
> >>> Am Mittwoch, 21. November 2018 schrieb Hendrik Boom:
> >>
> >> [...]
> >>
> >>
> >>>> I read the discussion at
> >>>> https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1642443.html
> >>>> and it looks as if they fixed the discrepancy at version 3.5.1-2.
> >>>> Which means if we want to keep sed in /bin instead of /usr/bin we
> >>>> may have to patch both packages sed and r-base.
> >>>>
> >>>> Or maybe add a symblic link to make sed accessible from /usr/bin
> >>>> instead of just /bin.
> >>> Why would anybody hardcode the link to sed in the first place?
> >>> Isn't that what $PATH is all about?
> >>
> >>   It's necessary to keep script shebangs from breaking.
> >>
> > No it isn't, ever heard of 'which' or 'type' or checking if the file
> > actually exists.
> >
> > Rowland
> >
>
>   Of course it is.  If you have a file with a shebang like this:
>
>
> #!/bin/sed
>
> , which is the norm, see:
>
> https://github.com/uuner/sedtris/blob/master/sedtris.sed
>
> , then you'd be in trouble if sed moved in /usr/bin.


Well it would if you were trying to run sed directly, but in this case
it is setting the path to sed as a variable, so, if the script
'/usr/bin/R' used something like this:

SED="$(which sed)"
if [ -z "$SED" ]; then
    echo 'sed is not installed'
    exit 1
fi
export SED


instead of:
SED=/bin/sed
export SED

We wouldn't be having this conversation.

>
>
>   Of course you know you can't use commands or shell constructs in
> place of the shebang, you did shell_scripting-101, didn't you?
>


We are not talking about the shebang, you did know that, didn't you ?

Rowland