Date: Fri, 29 Mar 2019 12:52:13 +0000 From: Arthur Chance <freebsd@qeng-ho.org> To: Polytropon <freebsd@edvax.de> Cc: FreeBSD Questions <freebsd-questions@freebsd.org> Subject: Re: Sending Tcsh to packages/ports ... Message-ID: <1404f209-3b1f-4fa5-b8f7-56eef7f1fc40@qeng-ho.org> In-Reply-To: <20190329035638.db780898.freebsd@edvax.de> References: <64780f09d4251b9641e3bca39000ae2d@kathe.in> <CAHu1Y70K=E-4EY6bjy9-59LCmX0a0u4ga2_mCywiTdmk4suW-w@mail.gmail.com> <20190329035638.db780898.freebsd@edvax.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On 29/03/2019 02:56, Polytropon wrote: > On Thu, 28 Mar 2019 19:03:24 -0700, Michael Sierchio wrote: >> *kudzu@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 ...
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1404f209-3b1f-4fa5-b8f7-56eef7f1fc40>