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

Reply via email to