Opened 3 years ago

Last modified 3 years ago

#62868 new defect

arb @6.0.2: ARBHOME: unbound variable

Reported by: Channy-736 (Chantel) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.6.4
Keywords: Cc:
Port: arb

Description (last modified by ryandesign (Ryan Carsten Schmidt))

I've installed the latest version of ARB (6.0.2) through Macports (2.6.4) with Xcode (12.5) on macOS Big Sur 11.3.1. I also have xquartz installed. When I try to run arb by typing in the terminal the command:

arb

I get the following error:

/opt/local/bin/arb: line 94: ARBHOME: unbound variable

Next, I manually set the path to the location of the arb Unix Executable file, located in /opt/local/bin/arb using the following lines of code:

ARBHOME=/opt/local/bin/arb;export ARBHOME
PATH=/opt/local/bin/arb:$PATH
export PATH

but then once I try running arb again, I get an error different from the user's in this issue: #47262 (I don't get the Can't open display: :0 error):

chantel@MacBook-Pro-2 ~ % arb
Ignoring set ARBHOME '/opt/local/bin/arb' (overridden by explicit call of '/opt/local/bin/arb')
Using ARBHOME='/opt/local/bin/arb'
/opt/local/bin/arb: line 55: Fusion.app/Contents/Public:/opt/X11/bin:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands: No such file or directory
Using properties from /Users/chantel/.arb_prop
Directory /Users/chantel/.arb_prop not found - creating ...
Directory /Users/chantel/.arb_pts not found - creating ...
Directory /Users/chantel.arb_prop/macros not found - creating ...
Directory /opt/local/bin/arb/lib/macros not found - creating ...
mkdir: /opt/local/bin/arb/lib: Not a directory
Please wait while the program ARB is starting .....
Waiting for '/Users/chantel/.arb_tmp/sockets/arb_launcher.62500'..
[arb_launcher[0]: Starting 'arb_ntree'..]
**Fatal ERROR: Environment Variable ARBHOME not found !!!**
   Please set 'ARBHOME' to the installation path of ARB
ARB: Loading 'ntree.arb'
Environment variable 'ARBHOME' should contain the path of an existing directory.
(current content '/opt/local/bin/arb' has been ignored.)
**Fatal ERROR: Environment Variable ARBHOME not found !!!**
   Please set 'ARBHOME' to the installation path of ARB
Environment variable 'ARBHOME' should contain the path of an existing directory.
(current content '/opt/local/bin/arb' has been ignored.)
[arb_launcher[0]: 'arb_ntree' has terminated with error 1]
[arb_launcher[0]: All launched processes terminated]

Session log has been stored in /Users/chantelbiegler/.arb_prop/logs/session.20210510_211933.62509.tgz
    and is also accessible via /Users/chantelbiegler/ARB_last_session.tgz

ARB terminated abnormally

The run log has the following output:

[arb_launcher[0]: Starting 'arb_ntree'..]
Fatal ERROR: Environment Variable ARBHOME not found !!!
   Please set 'ARBHOME' to the installation path of ARB
ARB: Loading 'ntree.arb'
Environment variable 'ARBHOME' should contain the path of an existing directory.
(current content '/opt/local/bin/arb' has been ignored.)
Fatal ERROR: Environment Variable ARBHOME not found !!!
   Please set 'ARBHOME' to the installation path of ARB
Environment variable 'ARBHOME' should contain the path of an existing directory.
(current content '/opt/local/bin/arb' has been ignored.)
[arb_launcher[0]: 'arb_ntree' has terminated with error 1]
[arb_launcher[0]: All launched processes terminated]

TL;DR - Clearly, there is something wrong with ARBHOME, based on the fatal error that says the environmental variable ARBHOME isn't found. I just have no idea how to fix that.

My apologies if this is a noob question - I'm brand new to ARB and I've found the installation process to be archaically difficult, but maybe that's just me. I have searched the forums, but I haven't found anything else I can try for this issue.

Thank you so much, I would really appreciate it if I could get this working!!

Attachments (1)

patch-ARB-arb_macsetup.diff (649 bytes) - added by mattcottrell 3 years ago.
patch-ARB-arb_macsetup.diff

Download all attachments as: .zip

Change History (15)

comment:1 Changed 3 years ago by Channy-736 (Chantel)

Description: modified (diff)

comment:2 Changed 3 years ago by kencu (Ken)

None of this worked for you?

****************************************************************
Before running ARB you must set ARBHOME and add ARB to your PATH
****************************************************************
You have two options (A is easier, B is more difficult):
A) Easy - open a new terminal window and type arb_macsetup to set the necessary environment variables automatically.  This script also enables keyboard shortcuts used in the sequence editor.
or
	
B) More difficult - follow the steps below:
1)
bash users add the following lines to your ~/.profile or to your ~/.bashrc
      ARBHOME=${prefix}/share/arb;export ARBHOME
      PATH=${prefix}/share/arb/bin:\$PATH
      export PATH
      enter the following command:
      . ~/.profile
2)
tcsh users add the following lines to your ~/.cshrc
      
      setenv ARBHOME ${prefix}/share/arb
      setenv PATH ${prefix}/share/arb\:\$PATH
      enter the following command:
      source ~/.cshrc
C) to set up ARB for another user on this computer log into their account and type ${prefix}/bin/arb_macsetup
************************************************************************************************************************************
You can set up keyboard shortcuts manually by creating a text file in your home folder called .xmodmap that contains the text below:
************************************************************************************************************************************
clear Mod1
clear Mod2
keycode 63 = Mode_switch
keycode 66 = Meta_L
keycode 69 = Meta_R
add Mod1 = Meta_L Meta_R
add Mod2 = Mode_switch
*******************************************************************
Use keys Control+Command Arrow Key to jump over bases
Use Keys Option Arrow Key to pull in bases across alignment gaps
Use the right Command Key plus a letter key to activate a menu item
*******************************************************************
*****************************
Type 'arb' to start using ARB
*****************************
A demo data base is located at ${prefix}/share/arb/demo.arb
User generated macros, arb_tcp.dat and pt_servers have been preserved,
but you should keep backups of these just in case.  They are located at:
${prefix}/share/arb/lib/macros/
${prefix}/share/arb/lib/arb_tcp.dat
${prefix}/share/arb/lib/pts/
Default settings are maintained at:
${prefix}/share/arb/lib/macros.default/
${prefix}/share/arb/lib/arb_tcp.dat.default
These notes can be viewed at any time by typing 'port notes arb'
Please cite: Wolfgang Ludwig, et al. (2004) ARB: a software environment for sequence data. Nucleic Acids Research. 32:1363-1371

comment:3 Changed 3 years ago by kencu (Ken)

I guess these instructions need to be updated for zsh...

comment:4 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Keywords: ARB removed
Port: arb added
Summary: ARB fails to run with MacPorts Installationarb @6.0.2: ARBHOME: unbound variable

Are you really using arb 6.0.2 or was that a typo? We have never offered arb 6.0.2 in MacPorts. We upgraded from 6.0.1 straight to 6.0.4 in [4c9c33ce163e9e8251b266c38649680ae9d0f43e/macports-ports] in 2016 and then to 6.0.6 in [3a784a321d09f20265ea20b03c1e0df647155782/macports-ports] in 2020.

comment:5 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)

comment:6 Changed 3 years ago by Channy-736 (Chantel)

Ok, apologies, I just assumed the version was 6.0.2. I am using whichever version macports automatically installed, which I'm guessing is 6.0.6.

I tried arb_macsetup, but that gives the output:

Unknown shell (zsh)! Please set your ARB compatible environment manually.

I will try option B as soon as I can, I'm just in a lab meeting right now unfortunately.

Thank you for looking into this!

comment:7 Changed 3 years ago by Channy-736 (Chantel)

So with option B, as I mentioned before, I just typed in the path location for the arb unix executable file and entered the following in my terminal:

ARBHOME=/opt/local/bin/arb;export ARBHOME
PATH=/opt/local/bin/arb:$PATH
export PATH

The . ~/.profile command does nothing:

.: no such file or directory: /Users/chantel/.profile

As Ken mentioned, these instructions are not updated for zsh, so I'm guessing the bash commands don't work here.

Last edited 3 years ago by Channy-736 (Chantel) (previous) (diff)

comment:8 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

You're setting ARBHOME to /opt/local/bin/arb but the instructions say to set it to /opt/local/share/arb.

comment:9 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

And you're adding /opt/local/bin/arb to PATH, but the instructions say to add /opt/local/share/arb/bin to PATH.

comment:10 Changed 3 years ago by Channy-736 (Chantel)

Okay thank you. My apologies, I thought I was supposed to set the directory to where my Unix file is located. I see now that there is a directory for that. Now I am getting the same error as in post #47262. That post's solutions were to either have Xquartz or xorg-server installed. I had xquartz installed and gave it a try, with the error output below. Then I installed xorg-server via the command

sudo port install xorg-server

but this produced the same error output below too. I'm not sure what to do from here.

chantel@MacBook-Pro-2 ~ % arb
Ignoring set ARBHOME '/opt/local/share/arb' (overridden by explicit call of '/opt/local/bin/arb')
Using ARBHOME='/opt/local/share/arb'
/opt/local/bin/arb: line 55: Fusion.app/Contents/Public:/opt/X11/bin:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands: No such file or directory
Using properties from /Users/chantel/.arb_prop
Please wait while the program ARB is starting .....
Waiting for '/Users/chantelbiegler/.arb_tmp/sockets/arb_launcher.4000'..
[arb_launcher[0]: Starting 'arb_ntree'..]
Using properties from '/opt/local/share/arb/lib/arb_default/status.arb'
Using properties from '/opt/local/share/arb/lib/arb_default/ntree.arb'
Error: Can't open display: :0
Error: Can't open display: :0
ARB: Loading 'ntree.arb'
ARB: Loading '/opt/local/share/arb/lib/arb_default/ntree.arb' done

[arb_launcher[0]: 'arb_ntree' has terminated with error 1]
[arb_launcher[0]: Still have 1 arb processes..]
[arb_launcher[0]: All launched processes terminated]

Thank you again for all the support. I feel like I'm really close, I just need one more fix!

Last edited 3 years ago by Channy-736 (Chantel) (previous) (diff)

comment:11 in reply to:  10 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to Channy-736:

/opt/local/bin/arb: line 55: Fusion.app/Contents/Public:/opt/X11/bin:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands: No such file or directory

Your PATH contains a value containing spaces, specifically /Applications/VMware Fusion.app/Contents/Public, and the arb launch script contains a bug that causes it to be unable to handle that.

They fixed this last year:

http://bugs.arb-home.de/changeset/18439

but the last version of arb that was released is from 5 years ago, so this fix is not in MacPorts yet.

I don't know how much of a problem this is. It does not prevent the program from launching when I try it on my system.

The real problem in your case is:

Error: Can't open display: :0
Error: Can't open display: :0

The display should not be ":0". It should be a randomly generated path that, when accessed, causes X11.app to launch.

The xinit port should have set this up for you if you followed the steps it displayed:

$ port notes xinit
--->  xinit has the following notes:
  To use MacPorts' X11 as the default server, install xorg-server, log out, and log back in.

If you did do that and it's still not working due to trying to use display ":0", check your shell startup file (probably ~/.zprofile but could be ~/.bashrc, ~/.bash_profile, or ~/.profile) for any line like "export DISPLAY=:0" that sets the display. If that's present, remove it. There was a bug in the MacPorts 2.6.4 installer for macOS Big Sur that caused this line to be added erroneously; see #61649. The MacPorts 2.7.0 installer will no longer make that mistake, but it will not clean up the mistake previously made by the 2.6.4 installer if you had used it.

comment:12 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

In f4e636693fbfa24dbc8a9490ade888f52325827e/macports-ports (master):

arb: Don't break if PATH contains spaces

Backport an upstream changeset that eliminates an error if the user's
PATH contains spaces.

See: #62868

comment:13 Changed 3 years ago by Channy-736 (Chantel)

Ok how do I access my shell startup file? I've searched the web, but I can't find anything that directly states how to access that file so I can edit it. I found files for bash, zsh, etc. but not for ~/.profile.

Edit: Nevermind, I figured it out! To access the profile, use the command:

open -a TextEdit.app ~/.zprofile

Once I removed that export DISPLAY=:0 line in the text file, arb was finally able to start!!

Thank you so much, Ryan!

Last edited 3 years ago by Channy-736 (Chantel) (previous) (diff)

comment:14 Changed 3 years ago by mattcottrell

It's been several years since I stepped away from my role maintaining the arb port. But I'll chime in here to propose a patch to the arb_macsetup script to enable zsh compatibility.

I hope this helps.

--- src/arb_macsetup.orig	2021-06-05 07:00:35.000000000 -0400
+++ src/arb_macsetup	2021-06-05 11:03:51.000000000 -0400
@@ -78,6 +78,19 @@
             CONF_FILE=profile
         fi
         ;;
+    zsh)
+        echo "Detected the zsh shell."
+        LOGIN_FLAG="--login"
+        ENV_COMMAND="export"
+        ASSIGN="="
+        if [ -f ${HOME}/.zprofile ]; then
+            CONF_FILE=zprofile
+        elif [ -f ${HOME}/.zshrc ]; then
+            CONF_FILE=zshrc
+        else
+            CONF_FILE=zshenv
+        fi
+        ;;
     *)
         echo "Unknown shell ($USHELL)! Please set your ARB compatible environment manually."
         

Changed 3 years ago by mattcottrell

Attachment: patch-ARB-arb_macsetup.diff added

patch-ARB-arb_macsetup.diff

Note: See TracTickets for help on using tickets.