Look what happens if we find M2 via a relative path when we start it and then check a package:

    + ./M2 --no-readline --print-width 156
    Macaulay2, version 1.3.1.1
    with packages: ConwayPolynomials, Elimination, IntegralClosure, LLLBases, PrimaryDecomposition, ReesAlgebra, SchurRings, TangentCone

    i1 : check "FirstPackage"
    --running test 0 of package FirstPackage on line 40 in file ../../../../../../../Macaulay2/packages/FirstPackage.m2
    --    rerun with: check_0 "FirstPackage"
    --making test results in file /tmp/M2-81579-1.out
    ulimit -t 160; ulimit -m 500000; ulimit -v 500000; ulimit -s 8192; cd /tmp/M2-81579-2-rundir/; ./M2 --silent --print-width 77 --stop --int -e 'loadPackage("FirstPackage", FileName => "/Users/dan/src/M2/trunk/Macaulay2/packages/FirstPackage.m2")' <"/tmp/M2-81579-1.m2" >>"/tmp/M2-81579-1.tmp" 2>&1
    /tmp/M2-81579-1.tmp:0: (output file) error: program exited with return code: (127,0)
    /tmp/M2-81579-1.m2:0: (input file) error: ...
    M2: *** [check] Error 127
    stdio:1:1:(3):[0]: error: 1 error(s) occurred running tests for package FirstPackage

    i2 : get "/tmp/M2-81579-1.tmp"

    o2 = -- -*- M2-comint -*- {* hash: 628662890 *}
	 sh: ./M2: No such file or directory

