Trying to get fish 2.1.1 shell working (via PuTTY ssh terminal) on DragonFlyBSD 3.8.2 running on a QEMU-KVM virtual machine provided by Elastic Hosts (EH) www.elastichosts.com.
DragonFlyBSD 3.8.2 installed with no trouble on the EH VM and seems to be running very well. The DragonFlyBSD login displays the following version string: DragonFly v3.8.2-RELEASE (X86_64_GENERIC) #18: Thu Aug 14 19:42:15 PDT 2014 Unix is pretty new to me. I'm still working as root user, just until I get fish, tmux and vim working. * * * * * * The pkgng installation of fish shell seemed to work fine: [[email protected]] / (102)# pkg install fish Updating repository catalogue Fetching meta.txz: 100% of 264 B Fetching digests.txz: 100% of 2 MB Fetching packagesite.txz: 100% of 4 MB Adding new entries: 100% Incremental update completed, 21724 packages processed: 0 packages updated, 0 removed and 21724 added. New version of pkg detected; it needs to be installed first. The following 1 packages will be affected (of 0 checked): Installed packages to be UPGRADED: pkg: 1.3.6 -> 1.3.8_3 The process will require 45 KB more space 2 MB to be downloaded Proceed with this action [y/N]: y Fetching pkg-1.3.8_3.txz: 100% of 2 MB Checking integrity... done (0 conflicting) [1/1] Upgrading pkg from 1.3.6 to 1.3.8_3: 100% Updating repository catalogue Avalon repository is up-to-date All repositories are up-to-date The following 1 packages will be affected (of 0 checked): New packages to be INSTALLED: fish: 2.1.1 The process will require 4 MB more space 829 KB to be downloaded Proceed with this action [y/N]: y Fetching fish-2.1.1.txz: 100% of 829 KB Checking integrity... done (0 conflicting) [1/1] Installing fish-2.1.1: 100% [[email protected]] / (103)# * * * * * * The fish man page displays correctly (having replaced the fish game man page). There seem to be fish and fishd binaries: [[email protected]] /etc (106)# cd /usr/local/bin [[email protected]] /usr/local/bin (107)# ls -AdGl fish* -rwxr-xr-x 1 root wheel 854792 Oct 4 10:55 fish -rwxr-xr-x 1 root wheel 95312 Oct 4 10:55 fish_indent -rwxr-xr-x 1 root wheel 156344 Oct 4 10:55 fish_pager -rwxr-xr-x 1 root wheel 117560 Oct 4 10:55 fishd The file used by fishd is present: [[email protected]] /root/.config/fish (143)# ls -l total 0 -rw------- 1 root wheel 140 Nov 27 09:30 fishd.admin.its-eto [[email protected]] /root/.config/fish (144)# cat fishd.admin.its-eto # This file is automatically generated by the fishd universal variable daemon. # Do NOT edit it directly, your changes will be overwritten. [[email protected]] /root/.config/fish (145)# The list of shells reflects the fish installation: [[email protected]] / (101)# cd /etc [[email protected]] /etc (102)# ls -aAdGl *shell* -rw-r--r-- 1 root wheel 349 Nov 27 07:17 shells [[email protected]] /etc (103)# cat shells # $FreeBSD: src/etc/shells,v 1.3.2.1 2000/07/10 08:47:17 obrien Exp $ # $DragonFly: src/etc/shells,v 1.2 2003/06/17 04:24:45 dillon Exp $ # # List of acceptable shells for chpass(1). # Ftpd will not allow users to connect who are not using # one of these shells. /bin/sh /bin/csh /bin/tcsh /usr/local/libexec/git-core/git-shell /usr/local/bin/fish [[email protected]] /etc (104)# The fish shell does appear to be somewhat operational, according to the "fish -v" command: [[email protected]] /usr/local/bin (108)# fish -v fish, version 2.1.1 [[email protected]] /usr/local/bin (109)# * * * * * * However, when I try to start a fish shell from a tcsh command prompt, it looks like the fish shell might be starting -- the string "fish:" is displayed) -- but from then on it doesn't seem to respond correctly to any keyboard command input on the ssh terminal. It just goes to the next line when I type "exit" and press the <Enter> key, or press <Ctrl+c>: [[email protected]] /usr/local/bin (106)# fish fish: ^C ^C exit ^Z quit exit The only way I can find to break out of this fish shell dead end (I'm not tcsh-smart enough yet to create multiple sessions) is to shutdown and start the DragonFlyBSD VM from the Elastic Hosts cloud control panel. I've tried starting a fish shell with "fish -i" and "fish -l" and both options exhibit the same problem as plain "fish". Using other options e.g. "fish -h" also exhibit the same problem as plain "fish" (i.e didn't display any help text, just entered the terminal dead end like plain "fish"). * * * * * * I want to get fish working first as a sub-shell under tcsh (so root user can switch to fish after login). I plan to keep the root user's default shell as tcsh to ensure a working root user for emergencies e.g. booting DragonFlyBSD in single-uer mode. I will make fish the default shell for other users on the DragonFlyBSD installation. Any suggestions for how I can get fish shell working as root user's non-default shell would be greatly appreciated. Thanks. Steve
