Sending Tcsh to packages/ports ...
Arthur Chance
freebsd at qeng-ho.org
Fri Mar 29 12:52:24 UTC 2019
On 29/03/2019 02:56, Polytropon wrote:
> On Thu, 28 Mar 2019 19:03:24 -0700, Michael Sierchio wrote:
>> *kudzu at hearst:/bin 130>* ll -i | grep csh
>>
>> 198147 -r-xr-xr-x 2 root wheel 427888 Jun 22 2018 csh*
>>
>> 198147 -r-xr-xr-x 2 root wheel 427888 Jun 22 2018 tcsh*
>>
>
> The csh / tcsh is not the only system component known by
> more than one name:
>
> % hardlinks.sh /bin
> 23621: csh tcsh <--- !
> 23627: ed red
> 23633: link ln
> 23638: pgrep pkill
> 23644: rm unlink
> 24944: [ test
Also /rescue/* where all but two of the executables have the same inode
number.
> It's important to note that by querying $0 or argv[0], a
> program can change its behaviour depending on the way it
> has been invoked. So a call to "csh" could cause the program
> to do things differently than if it was called by "tcsh".
>
> Of course this also applies to _any_ programs, being part
> of the OS or being installed by ports.
>
> Sidenote: If the C shell would be removed from the system,
> and a port would be needed, the system's default install
> would not contain an interactive shell.
>
> Alternatives:
>
> a) Make bash the default system shell, /bin/bash; this will
> probably make many people very angry and will be widely
> regarded as a bad move. ;-)
Grey-bearded mobs with torches and pitchforks would ensue. :-)
> b) Let the user choose upon installation which shell to
> take from ports, and instantiate a symlink in the root
> file system, or install it into there right away. The
> choice list could contain, but is not limited to:
> - csh / tcsh
> - zsh
> - ksh
> - bash
> - dash
> - fish
> - rc
> Again, a default could be preselected, about which the
> same discussions could arise as about the quantity of
> the selection list.
>
> c) Keep sh the only shell on the system and let the user
> manually install a shell after OS installation via pkg.
>
> The core "problem" of ports is that they are restricted to
> the /usr/local subtree. On certain installations, this tree
> might not be accessible in single user mode or any other
> catastrophic scenario where only very limited means are
> provided (usually: / mounted read-only, nothing else).
> So if root's interactive shell is /usr/local/bin/zsh,
> for example, and /usr/local isn't mounted, that's a
> problem. You cannot even drop to sh and start zsh from
> there right away - you're stuck with sh for the moment.
>
> Further sidenote: It's possible that the transformation of
> "system | ports" into "everything is a pkg" makes the above
> consideration fultile. :-)
--
What do we want?
A time machine!
When do we want it?
Errm ...
More information about the freebsd-questions
mailing list