unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#37249: console shell upon login is not ~/.guix-profile/bash -- is this always/never ok?
@ 2019-08-31 22:21 Bengt Richter
  2019-09-07  8:50 ` 宋文武
  2019-09-10  7:00 ` Efraim Flashner
  0 siblings, 2 replies; 4+ messages in thread
From: Bengt Richter @ 2019-08-31 22:21 UTC (permalink / raw)
  To: 37249

Hello,

In the pursuit of causes for problems as yet not clear enough to
post as bugs, I am looking for ambivalences in name searches
in /gnu/... and /(the-rest).

The first is immediately bash:
To duplicate, log into a fresh console and look at what's running
and invoked. I did an Alt-F4 and logged in fresh, and captured the
terminal screen seen in the following:

---------8<---------

[ ... snip some output from .bash_profile ... ]

[13:33 ~/bs]$ ps -o pid,tty,args
  PID TT       COMMAND
25500 tty4     -bash
25966 tty4     ps -o pid,tty,args
[13:35 ~/bs]$ which -a ps
/usr/bin/ps
[13:35 ~/bs]$ file /proc/25500/exe
/proc/25500/exe: symbolic link to /usr/bin/bash

So, the shell I am talking to right after login is /usr/bin/bash,
but if I type bash, the guix version will be found first:

[13:36 ~/bs]$ which -a bash
/home/bokr/.guix-profile/bin/bash
/usr/bin/bash
[13:38 ~/bs]$ which -a bash|xargs readlink -f
/gnu/store/qn1ax1fkj16x280m1rv7mcimfmn9l2pf-bash-4.4.23/bin/bash
/usr/bin/bash

So, nesting into the guix one,

[13:39 ~/bs]$ bash
[13:39 ~/bs]$ ps -o pid,tty,args
  PID TT       COMMAND
25500 tty4     -bash
26226 tty4     bash
26253 tty4     ps -o pid,tty,args
[13:40 ~/bs]$ file /proc/26226/exe
/proc/26226/exe: symbolic link to /gnu/store/qn1ax1fkj16x280m1rv7mcimfmn9l2pf-bash-4.4.23/bin/bash

Indeed our current pid belongs to guix bash.
What is the difference? They were built differently...

[13:41 ~/bs]$
[13:42 ~/bs]$ which -a bash
/home/bokr/.guix-profile/bin/bash
/usr/bin/bash
[13:43 ~/bs]$ which -a bash|xargs readlink -f|while read line;do echo -ne "$line:\n    "; file "$line";done
/gnu/store/qn1ax1fkj16x280m1rv7mcimfmn9l2pf-bash-4.4.23/bin/bash:
    /gnu/store/qn1ax1fkj16x280m1rv7mcimfmn9l2pf-bash-4.4.23/bin/bash:
    ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter
    /gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib/ld-linux-x86-64.so.2,
    for GNU/Linux 2.6.32, not stripped
/usr/bin/bash:
    /usr/bin/bash: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked,
    interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=21a51cb5f7d727370e4d8099d283d7cd20222571,
    for GNU/Linux 3.2.0, stripped

Are the differences possibly dangerous?

The way I got the above, and this tail part itself:
[13:45 ~/bs]$ tty
/dev/tty4
[13:47 ~/bs]$ su -c 'setterm -file login-bashes.txt -dump 4'
------------------------------------

Looking for dependencies outside of /gnu from within /gnu, I grepped the whole
as you see below. I am sure most of this is fine and coming out of documentation
and stuff meant for other than normally booted runtime. But does it all look ok?

Or is my foreign-host twilight-zone shared ArchLinux/guix namespace really not
meant to be. I.e., is guix really defined to use /usr/ as a trusted base namespace
when it is defined by e.g. linux-libre in GuixSD ?

Where would be the best docs to read about the guix name and environment rationales?

Ok, here is the grep:
(most of the bashes are in the store, as seen at the bottom, but many not)
-------------------------------
This was generated by:
    grep -Ihr '^ *#!' /gnu|sort|uniq -c|sort -h > gnu-bin-hash-bangs.txt

      2       #!/bin/csh
      2 #!/bin/tcsh
      2 #!@GAWK@ -f
      2 #!/gnu/store/03n7p9g78ixkrmra674pkx2c9cx8fwmz-guile-1.8.8/bin/guile \
      2 #!/gnu/store/0xfmkqpi7xk3ixhrqvjijk4ibsglif62-python-3.7.0/bin/python3.7m
      2 #!/gnu/store/57daq0hkwvmwx4asiy669cmln868brfm-python2-2.7.15/bin/python2
      2 #!/gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4/bin/guile
      2 #!/gnu/store/b7fqhszxl02g6pfm3vw6b3cjz472qrly-python-3.7.0/bin/python3.7m
      2 #!/gnu/store/cl42c73h609bp2gy92qkh8q56spnnl2n-python-3.7.0/bin/python3.7m
      2 #! /gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl
      2 #!/gnu/store/h8l1pby3cm6b4fxsfwwr65b4d1hyh6cs-python-3.7.0/bin/python3.7m
      2 #!/gnu/store/l67sib1ld0fgyf0f4vrzyxnmn4yvimvb-gawk-4.2.1/bin/gawk -f
      2 #!/gnu/store/qn1ax1fkj16x280m1rv7mcimfmn9l2pf-bash-4.4.23/bin/sh -
      2 #!/gnu/store/ybglr7nfs8v9kpnm8vf4drg3gafnvd15-guile-static-stripped-2.2.4/bin/guile --no-auto-compile
      2 #!/gnu/store/zm3188ipzi262s0m8bxm24br77yh9pd8-python-3.7.0/bin/python3
      2 #!/gnu/store/zm3188ipzi262s0m8bxm24br77yh9pd8-python-3.7.0/bin/python3.7m
      2 #!@GUILE@ -s
      2 #!@PHP@ -q
      2 #!@TCLSH@
      2 #! /usr/bin/perl
      2 #!/usr/bin/perl -- # -*- Perl -*-
      2  #! /usr/bin/perl -w
      2 #! /usr/bin/python
      2 #!/usr/bin/python -u
      2 #!@WISH@
      3 #!#{Gem.ruby}
      3 #!/gnu/store/81y6l9ggc5q6z44hp90ll4dv5jl582mq-texlive-bin-20180414/bin/texlua 
      3 #!/gnu/store/hw0cz0mis43z19i76pl6ijx5risx4lf0-texlive-bin-20180414/bin/texlua 
      3 #!/gnu/store/lgbiv7q1b6m141nrkjm92qkl9ih5gamw-python2-2.7.15/bin/python -O
      3 #!/gnu/store/pyrlmxqx3g1mhzpnfpw4w94rj08wxfhj-texlive-bin-20180414/bin/texlua 
      3 #!/gnu/store/x9c77i6r5fmarslij6ng81awgrxblplm-texlive-bin-20180414/bin/texlua 
      3 #!/gnu/store/xwzyy0q261brxmafkvinrrvkq4rgwiq6-texlive-bin-20180414/bin/texlua 
      3                    #!if(WithStride,".stride","")
      3                 #!if(WithStride,".stride","")
      3 #! libapr-1.so
      3  #!/usr/bin/env ruby
      4                 #! $key eq '-range'    and  $key .= 's';
      4             #! $pod_parser->select(@{ $opts{'-ranges'} })
      4 #!$^X -w
      4 #! at all.)
      4 #!/gnu/store/9jjnk994sg3kynx7w2p873x60yr27q1p-pulseaudio-12.2/bin/pulseaudio -nF
      4 #!/gnu/store/cwla78yg7vnngk51jp81j4phy2fpgbhm-pulseaudio-12.2/bin/pulseaudio -nF
      4 #!/gnu/store/glvv9jyp28f8454laig76agc3jig4f4z-pulseaudio-12.2/bin/pulseaudio -nF
      4 #!/gnu/store/gvwf71vddp8c1d7ydqg02p43mgdjrx6s-bash
      4 #!/gnu/store/qqfrzd5jrpq7i1gn9spv7hzpj4kllvj0-pulseaudio-12.2/bin/pulseaudio -nF
      4 #!/gnu/store/qsvja1gy86vrdkcqygkamg5j0sfq6ry4-pulseaudio-12.2/bin/pulseaudio -nF
      4 #!/gnu/store/s795jav4270x940spl48a885nhw4axnx-pulseaudio-12.2/bin/pulseaudio -nF
      4 #!/gnu/store/wsd8i4dy3vvkpfjlg5m1q5cy0b2ld95q-pulseaudio-12.2/bin/pulseaudio -nF
      4 #!/gnu/store/yw409j5hzvhgj54p2xxaqbh3bz9zfhpg-pulseaudio-12.2/bin/pulseaudio -nF
      4 #!/gnu/store/zvhp49cvslhjdv7n19nssv2kr2jqa87h-pulseaudio-12.2/bin/pulseaudio -nF
      4             #!     if ( (defined $opts{'-ranges'})
      4 #!include_default, #!include /Path/to/another/manifest.skip
      4 #! libaprutil-1.so
      4     #! /opt/perl5/bin/perl
      4   #!/path/to/a/custom_perl --some --args
      4    #!/path/to/jperl
      4    #!/path/to/perl -Mencoding=euc-jp
      4 #!/path/to/perl script invocation.  There is a PTF available from
      4     #! -*-perl-*-
      4   #!perl
      4 #! perl
      4 #!@PERL@
      4    #!perl -l
      4     #!perl -T
      4 #!./perl -w
      4 #!/pro/bin/perl
      4 #!/QOpenSys/perl/bin/perl should always work.
      4             #!          && ((ref $opts{'-ranges'}) eq 'ARRAY') );
      4             #! ## Select the desired paragraph ranges
      4   #!/usr/bin/env perl use lib qw( lib );      # Add ./lib to @INC
      4 #!/usr/bin/perl MakeMaker will change this to the path of the perl
      4     #!/usr/bin/perl -n
      4     #!/usr/bin/perl -pi.orig
      4     #!/usr/bin/perl -s
      4     #!/usr/bin/perl -spi.orig	# same as -s -p -i.orig
      4     #!/usr/bin/perl -T -w
      4     #!/usr/bin/perl  -w
      4   #!/usr/bin/perl -wl
      4     #!/usr/bin/perl -w -T
      4   #!/usr/bin/php 
      4 #! /usr/bin/sh
      4     #!/usr/local/bin/perl5.14
      4     #!/usr/local/bin/perl     # just a comment really
      4   #!/usr/local/perl-5.6/bin/perl -w
      4     #!/usr/locl/bin/perl
      5 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -W
      5 #!/gnu/store/g87hamjyipk1j6dfq5pjfzfnfb64spbv-python2-2.7.15/bin/python -O
      5 #!/gnu/store/iqx98v4rnw26n4qn555l4pbj96navxiv-python2-2.7.15/bin/python -O
      5 #!/usr/bin/env python2
      6 #!2_]r;QWmr;HTnrVZTls&f@&'E.jlrVud)rr5ao!5AL4r;?NmrVlcos83-$s!e*NeGfI2rVud!
      6     #![allow(dead_code, unused_imports)]
      6 #! /bin/bash
      6   #!/bin/bash^^J%
      6         #!/bin/sh
      6 #!bQ7"8Gg6b3eoe>$R71>:0O.S=?1;7XQV?G"!XuWkieE.A([)Gb:<g^IbF&+pDD
      6 #!cslatex
      6 #! <fmtname> <enginename> <hyphen> <args>
      6 #!GaH0,lQdqUHRI!sXe9eQO3Ee^,L\eVF^Wbnu,aSH[**!_"<Pp=0tM"j#6E8hJM_"j#6E?QmeH
      6 #!/gnu/store/2k67pvrdq9hygg2ysgflk94jhbnc9s9g-tcsh-6.20.00/bin/csh
      6 #!/gnu/store/2k67pvrdq9hygg2ysgflk94jhbnc9s9g-tcsh-6.20.00/bin/csh -xv
      6 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -n
      6 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -p -i
      6 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -p -i.bak
      6 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -T
      6 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -T -w
      6 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -w
      6 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -w 
      6 #!H!IX"''9Wa>D7VYA@E`L5suKOJFl<>^ul(bEXhP*HM"9Cbeu,BGMsN,"AdAt[@0
      6 #!*k<&fW2FrVus62#[IT!r2g.8PT6c"onDor;HKjrVQBcqo8O6&-;h3!XT9::G`Fa"TSNE1E60,
      6 #!Kmci!<<*"Z2t"+!g3]e!<<*"\cMj3"Hj)l!<<*"_?'];"d0#h!<<*"aoVPC#Ef
      6 #!kTb'N:-k+U6(!m^1q$6QNUqf%C$^9!K[Ab31,32$=gB!5?i/?h?%VXZd%RmtRZfZE*me2U0QZ'3/
      6 #!latex
      6 #! Map belleek.map
      6 #! Map mapname.map
      6 #! MixedMap mapname.map
      6 #!/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-2.18/bin/sh
      6 #!P5"q7-/;:!\TuP1=X[Q1lGL6k.rYpP!p4b6-X*ZAl;G!b8,cGrd14Q5D0jpXMON
      6 #!pdfcslatex
      6 #!pdflatex
      6 #! @PERL@ -w
      6 #!rF>2s`M\gb\?pQ[)lRMVXD7X%;@d6\M.@oPbQ)'8mjcqSsDGM79n2$XtTN<DZbi
      6 #!topic/comp.text.tex/o14P2e83o4A}{comp.text.tex} for a macro that will define commands and also save the commands being defined in a file or a container macro, \eg, for spelling exceptions on editors that don't support \tex syntax.
      6 #!UGlO1/(4)%t4-m<.kt,%uoHGtV4M7IFIlnDr.!2?[>P^t.[[P$W\[/V0J8eAS<P
      6 #! /usr/bin/env perl
      6 #!/usr/bin/env pfaedit
      6 #!/usr/bin/fontforge -lang=ff
      6 #!/usr/bin/fontforge -script
      6 #!/usr/bin/fontforge -script 
      6 #!/usr/local/bin/perl
      7 #!/gnu/store/lgbiv7q1b6m141nrkjm92qkl9ih5gamw-python2-2.7.15/bin/python2
      8 #!/gnu/store/81y6l9ggc5q6z44hp90ll4dv5jl582mq-texlive-bin-20180414/bin/texlua  
      8 #!/gnu/store/8z9avbgm73nzrbkhscps68gcpfipgllc-bootstrap-binaries-0/bin/bash
      8 #!/gnu/store/hw0cz0mis43z19i76pl6ijx5risx4lf0-texlive-bin-20180414/bin/texlua  
      8 #!/gnu/store/pyrlmxqx3g1mhzpnfpw4w94rj08wxfhj-texlive-bin-20180414/bin/texlua  
      8 #!/gnu/store/qn1ax1fkj16x280m1rv7mcimfmn9l2pf-bash-4.4.23/bin/sh
      8 #!/gnu/store/x9c77i6r5fmarslij6ng81awgrxblplm-texlive-bin-20180414/bin/texlua  
      8 #!/gnu/store/xwzyy0q261brxmafkvinrrvkq4rgwiq6-texlive-bin-20180414/bin/texlua  
      8 #!/gnu/store/zzakf905mzla4csi1dn9qpcwmgbxj29b-bash-static-4.4.23/bin/bash
      8 #!/gnu/store/zzakf905mzla4csi1dn9qpcwmgbxj29b-bash-static-4.4.23/bin/sh
      8  #!/usr/bin/perl -n
      8  #!/usr/bin/perl -Tw
      8     #!/usr/local/bin/perl
      8     #!/usr/local/bin/perl5.10.0
      8     #!/your/path/to/perl
     10 #!/gnu/store/0xfmkqpi7xk3ixhrqvjijk4ibsglif62-python-3.7.0/bin/python3
     10 #!/gnu/store/cl42c73h609bp2gy92qkh8q56spnnl2n-python-3.7.0/bin/python3
     10    #!/usr/bin/emacs --script
     11 #!/bin/sh -x
     11 #!!!!!!!!???  Check @pwd_log
     11 #!/gnu/store/g30znz9vwkvi23k41dgallfg85sj65hp-python-wrapper-3.7.0/bin/python
     11 #!/gnu/store/iqx98v4rnw26n4qn555l4pbj96navxiv-python2-2.7.15/bin/python2
     11 #!/usr/bin/emacs -script
     11 #! /usr/local/bin/python
     12        #!/bin/sh
     12   #! /bin/sh
     12 #! cont-fr pdftex cont-usr.tex -8bit *cont-fr.mkii
     12 #! cont-it pdftex cont-usr.tex -8bit *cont-it.mkii
     12 #! cont-nl pdftex cont-usr.tex -8bit *cont-nl.mkii
     12 #! cont-ro pdftex cont-usr.tex -8bit *cont-ro.mkii
     12 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -n -s
     12 #!/gnu/store/l67sib1ld0fgyf0f4vrzyxnmn4yvimvb-gawk-4.2.1/bin/awk -f
     12 #!/gnu/store/q19l04vd2za80mk1845pz7r8cz29qk43-bash-minimal-4.4.23/bin/sh -vx
     12     #! Map belleek.map
     12 #! mflua mflua-nowin - mf.ini
     12  #!/usr/bin/env perl
     12 #!/usr/bin/fontforge
     12     #!/usr/bin/perl -Tw
     12 #!/usr/bin/python
     12 #!/usr/local/bin/fontforge
     12 #! /usr/local/bin/perl
     12     #!/usr/local/bin/perl -w
     13 #!/gnu/store/0xfmkqpi7xk3ixhrqvjijk4ibsglif62-python-3.7.0/bin/python3.7
     13 #!/gnu/store/b7fqhszxl02g6pfm3vw6b3cjz472qrly-python-3.7.0/bin/python3.7
     13 #!/gnu/store/cl42c73h609bp2gy92qkh8q56spnnl2n-python-3.7.0/bin/python3.7
     13 #!/gnu/store/g87hamjyipk1j6dfq5pjfzfnfb64spbv-python2-2.7.15/bin/python2
     13 #!/gnu/store/h8l1pby3cm6b4fxsfwwr65b4d1hyh6cs-python-3.7.0/bin/python3.7
     13 #!/gnu/store/zm3188ipzi262s0m8bxm24br77yh9pd8-python-3.7.0/bin/python3.7
     14 #!@EMACS@ --script
     14 #!/gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4/bin/guile -ds
     14 #!/gnu/store/q19l04vd2za80mk1845pz7r8cz29qk43-bash-minimal-4.4.23/bin/sh -
     14 #!/gnu/store/q19l04vd2za80mk1845pz7r8cz29qk43-bash-minimal-4.4.23/bin/sh -x
     14 #!@GUILE@ \
     14 #!@GUILE@ -ds
     14     #! luajitlatex luajittex language.dat,language.dat.lua lualatex.ini
     16 #!$PERL
     16 #!/usr/local/bin/perl -w
     17 #!/gnu/store/3w3nz0h93h7jif9d9c3hdfyimgkpx1a4-python-wrapper-3.7.0/bin/python
     18 #!
     18 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -s
     18 #! luajitlatex luajittex language.dat,language.dat.lua lualatex.ini
     18 #!./perl
     18           #!perl.exe (versions below 4)
     18 #!/usr/bin/env perl
     20 #! /gnu/store/q19l04vd2za80mk1845pz7r8cz29qk43-bash-minimal-4.4.23/bin/bash
     20  #!/usr/bin/perl -w
     21 #!/gnu/store/b7fqhszxl02g6pfm3vw6b3cjz472qrly-python-3.7.0/bin/python3
     22 #!/gnu/store/iqx98v4rnw26n4qn555l4pbj96navxiv-python2-2.7.15/bin/python2.7
     22 #!/usr/bin/env wish
     23 #!/gnu/store/r68bi4640vm0s7zsgyk7shsag8ibl3nc-python-wrapper-3.7.0/bin/python
     24 #!/bin/lua
     24 #!/usr/bin/lua
     24  #!/usr/bin/perl
     25 #!/gnu/store/57daq0hkwvmwx4asiy669cmln868brfm-python2-2.7.15/bin/python2.7
     25 #!perl -w
     28 #!/gnu/store/lgbiv7q1b6m141nrkjm92qkl9ih5gamw-python2-2.7.15/bin/python2.7
     28 #!perl
     29 #!/gnu/store/bs6bwq60sh3zamgiqmkyryf1lxbfjkgd-lua-5.3.5/bin/lua
     30  #![allow(dead_code, unused_variables)]
     30 #!/usr/bin/env python
     32     #!/usr/bin/env perl
     33 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl 
     35  #![allow(unused_variables)]
     35  #! /bin/sh -e
     35  #![feature(omit_gdb_pretty_printer_section)]
     36 #! $SHELL
     38 #!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds
     38 #!/gnu/store/g87hamjyipk1j6dfq5pjfzfnfb64spbv-python2-2.7.15/bin/python2.7
     40     #!/bin/sh
     40 #!/gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4/bin/guile --no-auto-compile
     42 #!/gnu/store/r658y3cgpnf99nxjxqgjiaizx20ac4k0-guile-2.2.4/bin/guile --no-auto-compile
     42 #!/usr/bin/env ../utility/fontforge-interp.sh
     44   #!/usr/bin/perl
     45 #!/usr/bin/env ruby
     46   #!location/of/bin/ruby
     47 #!@BASH@
     48 #!/usr/bin/env texlua
     50 #!/gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4/bin/guile \
     51 #!/usr/bin/perl -w
     53 #!/usr/bin/env fontforge
     56 #!@SHELL@
     56     #!/usr/bin/perl
     57 #!/gnu/store/5wp8mhmlq2xbd6kg0dq7armjgva7j7cs-perl-5.28.0/bin/perl
     60 #!/gnu/store/2k67pvrdq9hygg2ysgflk94jhbnc9s9g-tcsh-6.20.00/bin/csh -f
     61 #!/gnu/store/zvm2hcnbcv9mygzwpbrb6pvj1nc9wbfv-perl-boot0-5.28.0/bin/perl
     63   #!location/of/bin/bash
     64 #! /bin/sh
     66     #!/usr/bin/perl -w
     80 #! /usr/bin/env python
     90 #! /usr/bin/env python3
    108 #!/gnu/store/fndcvkn64ycw720d3ikjvmyvhsqk2v4n-ruby-2.5.3/bin/ruby
    110 #!~a
    116 #!/usr/bin/perl
    137  #!/bin/sh
    140 #!/gnu/store/61sixy2zjzlrpqwxphzf7v6h0yaysx1s-ruby-2.5.3/bin/ruby
    140 #!/gnu/store/lgbiv7q1b6m141nrkjm92qkl9ih5gamw-python2-2.7.15/bin/python
    145 #!/gnu/store/8z9avbgm73nzrbkhscps68gcpfipgllc-bootstrap-binaries-0/bin/sh
    146 #!/gnu/store/hw0cz0mis43z19i76pl6ijx5risx4lf0-texlive-bin-20180414/bin/texlua
    146 #!/gnu/store/xwzyy0q261brxmafkvinrrvkq4rgwiq6-texlive-bin-20180414/bin/texlua
    150 #!/gnu/store/81y6l9ggc5q6z44hp90ll4dv5jl582mq-texlive-bin-20180414/bin/texlua
    150 #!/gnu/store/pyrlmxqx3g1mhzpnfpw4w94rj08wxfhj-texlive-bin-20180414/bin/texlua
    150 #!/gnu/store/x9c77i6r5fmarslij6ng81awgrxblplm-texlive-bin-20180414/bin/texlua
    162 #!/usr/bin/env python3
    167 #!/bin/bash
    169 #!/usr/bin/env python
    207 #!/gnu/store/iqx98v4rnw26n4qn555l4pbj96navxiv-python2-2.7.15/bin/python
    209 #!/gnu/store/g87hamjyipk1j6dfq5pjfzfnfb64spbv-python2-2.7.15/bin/python
    228 #!/bin/sh
    292 #!/gnu/store/5s2nib1lrd2101bbrivcl17kjx1mspw6-coreutils-8.30/bin/false
    292 #!/gnu/store/8z9avbgm73nzrbkhscps68gcpfipgllc-bootstrap-binaries-0/bin/false
    319 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -w
    362  #!/bin/bash
   1589 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl
   2706 #!/gnu/store/q19l04vd2za80mk1845pz7r8cz29qk43-bash-minimal-4.4.23/bin/bash
   3294 #!/gnu/store/q19l04vd2za80mk1845pz7r8cz29qk43-bash-minimal-4.4.23/bin/sh
   3871 #!/gnu/store/qn1ax1fkj16x280m1rv7mcimfmn9l2pf-bash-4.4.23/bin/bash
-----------------------------------------------------

Some look a bit weird, like
      6 #!/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-2.18/bin/sh
but I guess it could be a template for some remote context. Idk.
There is no /nix directory on my disk anyway. Maybe inside a ramdisk image?

(There were lots of matches in what appears binary to grep, but they were
all to inside /gnu/store, so I  eliminated them for here, with -I)

BTW, I haven't yet started shepherd automatically, and it isn't running in the above.
Just guix-daemon:
from emacs I'm in now: Esc-1 Esc-! ps -e f |grep -i guix
  530 ?        Ss     0:00 /var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild
31185 ?        Ss     0:00              \_ /home/bokr/.guix-profile/bin/bash -c ps -e f |grep -i guix
31187 ?        S      0:00                  \_ grep -i guix

I have set SHELL=/home/bokr/.guix-profile/bin/bash in ~/.bash_profile,
but as seen, that doesn't take effect for the immediate login shell.

I wonder if I could exec it at the end of ~/.bash_profile -- or even as the first and only thing, hm...

Hope someone can point to to enlightening reading re names in guix and its environments. TIA ;-)

Regards,
Bengt Richter

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#37249: console shell upon login is not ~/.guix-profile/bash -- is this always/never ok?
  2019-08-31 22:21 bug#37249: console shell upon login is not ~/.guix-profile/bash -- is this always/never ok? Bengt Richter
@ 2019-09-07  8:50 ` 宋文武
  2019-09-09 13:40   ` Bengt Richter
  2019-09-10  7:00 ` Efraim Flashner
  1 sibling, 1 reply; 4+ messages in thread
From: 宋文武 @ 2019-09-07  8:50 UTC (permalink / raw)
  To: Bengt Richter; +Cc: 37249

Bengt Richter <bokr@bokr.com> writes:

> Hello,
>
> In the pursuit of causes for problems as yet not clear enough to
> post as bugs, I am looking for ambivalences in name searches
> in /gnu/... and /(the-rest).

Hello, I think most guix packages (some won't or require manual
configurations) will work on a foreign GNU/Linux distribution, and guix
shouldn't cause problems for the distribution.

>
> The first is immediately bash:
> To duplicate, log into a fresh console and look at what's running
> and invoked. I did an Alt-F4 and logged in fresh, and captured the
> terminal screen seen in the following:
>
> ---------8<---------
>
> [ ... snip some output from .bash_profile ... ]
>
> [13:33 ~/bs]$ ps -o pid,tty,args
>   PID TT       COMMAND
> 25500 tty4     -bash
> 25966 tty4     ps -o pid,tty,args
> [13:35 ~/bs]$ which -a ps
> /usr/bin/ps
> [13:35 ~/bs]$ file /proc/25500/exe
> /proc/25500/exe: symbolic link to /usr/bin/bash
>
> So, the shell I am talking to right after login is /usr/bin/bash,
> but if I type bash, the guix version will be found first:
>
> [13:36 ~/bs]$ which -a bash
> /home/bokr/.guix-profile/bin/bash
> /usr/bin/bash
> [13:38 ~/bs]$ which -a bash|xargs readlink -f
> /gnu/store/qn1ax1fkj16x280m1rv7mcimfmn9l2pf-bash-4.4.23/bin/bash
> /usr/bin/bash

After login, user's shell program as specified in /etc/passwd will be
executed.  So you should have '/usr/bin/bash' or '/bin/bash' in
/etc/passwd, and your $PATH have '$HOME/.guix-profile/bin' before
'/usr/bin', so when type 'bash' in a shell, the guix one got executed.

>
> So, nesting into the guix one,
>
> [13:39 ~/bs]$ bash
> [13:39 ~/bs]$ ps -o pid,tty,args
>   PID TT       COMMAND
> 25500 tty4     -bash
> 26226 tty4     bash
> 26253 tty4     ps -o pid,tty,args
> [13:40 ~/bs]$ file /proc/26226/exe
> /proc/26226/exe: symbolic link to /gnu/store/qn1ax1fkj16x280m1rv7mcimfmn9l2pf-bash-4.4.23/bin/bash
>
> Indeed our current pid belongs to guix bash.
> What is the difference? They were built differently...
>
> [13:41 ~/bs]$
> [13:42 ~/bs]$ which -a bash
> /home/bokr/.guix-profile/bin/bash
> /usr/bin/bash
> [13:43 ~/bs]$ which -a bash|xargs readlink -f|while read line;do echo -ne "$line:\n    "; file "$line";done
> /gnu/store/qn1ax1fkj16x280m1rv7mcimfmn9l2pf-bash-4.4.23/bin/bash:
>     /gnu/store/qn1ax1fkj16x280m1rv7mcimfmn9l2pf-bash-4.4.23/bin/bash:
>     ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter
>     /gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib/ld-linux-x86-64.so.2,
>     for GNU/Linux 2.6.32, not stripped
> /usr/bin/bash:
>     /usr/bin/bash: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked,
>     interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=21a51cb5f7d727370e4d8099d283d7cd20222571,
>     for GNU/Linux 3.2.0, stripped
>
> Are the differences possibly dangerous?

It's totally OK, you can use both :-)

>
> The way I got the above, and this tail part itself:
> [13:45 ~/bs]$ tty
> /dev/tty4
> [13:47 ~/bs]$ su -c 'setterm -file login-bashes.txt -dump 4'
> ------------------------------------
>
> Looking for dependencies outside of /gnu from within /gnu, I grepped the whole
> as you see below. I am sure most of this is fine and coming out of documentation
> and stuff meant for other than normally booted runtime. But does it all look ok?
>
> Or is my foreign-host twilight-zone shared ArchLinux/guix namespace really not
> meant to be. I.e., is guix really defined to use /usr/ as a trusted base namespace
> when it is defined by e.g. linux-libre in GuixSD ?
>
> Where would be the best docs to read about the guix name and environment rationales?

There are no 'namespace' involed, guix and your ArchLinux packages share
the same filesystem.  And guix binaries are self-contained, they can
work without any dependenices outsite of /gnu (sometimes they will use
what's available in PATH, etc. which may be provided by your distribution).

>
> Ok, here is the grep:
> (most of the bashes are in the store, as seen at the bottom, but many not)
> -------------------------------
> This was generated by:
>     grep -Ihr '^ *#!' /gnu|sort|uniq -c|sort -h > gnu-bin-hash-bangs.txt
>
>       2       #!/bin/csh
>       2 #!/bin/tcsh
>       2 #!@GAWK@ -f
>       2 #!/gnu/store/03n7p9g78ixkrmra674pkx2c9cx8fwmz-guile-1.8.8/bin/guile \
>       2 #!/gnu/store/0xfmkqpi7xk3ixhrqvjijk4ibsglif62-python-3.7.0/bin/python3.7m
>       2 #!/gnu/store/57daq0hkwvmwx4asiy669cmln868brfm-python2-2.7.15/bin/python2
>       2 #!/gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4/bin/guile
>       2 #!/gnu/store/b7fqhszxl02g6pfm3vw6b3cjz472qrly-python-3.7.0/bin/python3.7m
>       2 #!/gnu/store/cl42c73h609bp2gy92qkh8q56spnnl2n-python-3.7.0/bin/python3.7m
>       2 #! /gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl
>       2 #!/gnu/store/h8l1pby3cm6b4fxsfwwr65b4d1hyh6cs-python-3.7.0/bin/python3.7m
>       2 #!/gnu/store/l67sib1ld0fgyf0f4vrzyxnmn4yvimvb-gawk-4.2.1/bin/gawk -f
>       2 #!/gnu/store/qn1ax1fkj16x280m1rv7mcimfmn9l2pf-bash-4.4.23/bin/sh -
>       2 #!/gnu/store/ybglr7nfs8v9kpnm8vf4drg3gafnvd15-guile-static-stripped-2.2.4/bin/guile --no-auto-compile
>       2 #!/gnu/store/zm3188ipzi262s0m8bxm24br77yh9pd8-python-3.7.0/bin/python3
>       2 #!/gnu/store/zm3188ipzi262s0m8bxm24br77yh9pd8-python-3.7.0/bin/python3.7m
>       2 #!@GUILE@ -s
>       2 #!@PHP@ -q
>       2 #!@TCLSH@
>       2 #! /usr/bin/perl
>       2 #!/usr/bin/perl -- # -*- Perl -*-
>       2  #! /usr/bin/perl -w
>       2 #! /usr/bin/python
>       2 #!/usr/bin/python -u
>       2 #!@WISH@
>       3 #!#{Gem.ruby}
>       3 #!/gnu/store/81y6l9ggc5q6z44hp90ll4dv5jl582mq-texlive-bin-20180414/bin/texlua 
>       3 #!/gnu/store/hw0cz0mis43z19i76pl6ijx5risx4lf0-texlive-bin-20180414/bin/texlua 
>       3 #!/gnu/store/lgbiv7q1b6m141nrkjm92qkl9ih5gamw-python2-2.7.15/bin/python -O
>       3 #!/gnu/store/pyrlmxqx3g1mhzpnfpw4w94rj08wxfhj-texlive-bin-20180414/bin/texlua 
>       3 #!/gnu/store/x9c77i6r5fmarslij6ng81awgrxblplm-texlive-bin-20180414/bin/texlua 
>       3 #!/gnu/store/xwzyy0q261brxmafkvinrrvkq4rgwiq6-texlive-bin-20180414/bin/texlua 
>       3                    #!if(WithStride,".stride","")
>       3                 #!if(WithStride,".stride","")
>       3 #! libapr-1.so
>       3  #!/usr/bin/env ruby
>       4                 #! $key eq '-range'    and  $key .= 's';
>       4             #! $pod_parser->select(@{ $opts{'-ranges'} })
>       4 #!$^X -w
>       4 #! at all.)
>       4 #!/gnu/store/9jjnk994sg3kynx7w2p873x60yr27q1p-pulseaudio-12.2/bin/pulseaudio -nF
>       4 #!/gnu/store/cwla78yg7vnngk51jp81j4phy2fpgbhm-pulseaudio-12.2/bin/pulseaudio -nF
>       4 #!/gnu/store/glvv9jyp28f8454laig76agc3jig4f4z-pulseaudio-12.2/bin/pulseaudio -nF
>       4 #!/gnu/store/gvwf71vddp8c1d7ydqg02p43mgdjrx6s-bash
>       4 #!/gnu/store/qqfrzd5jrpq7i1gn9spv7hzpj4kllvj0-pulseaudio-12.2/bin/pulseaudio -nF
>       4 #!/gnu/store/qsvja1gy86vrdkcqygkamg5j0sfq6ry4-pulseaudio-12.2/bin/pulseaudio -nF
>       4 #!/gnu/store/s795jav4270x940spl48a885nhw4axnx-pulseaudio-12.2/bin/pulseaudio -nF
>       4 #!/gnu/store/wsd8i4dy3vvkpfjlg5m1q5cy0b2ld95q-pulseaudio-12.2/bin/pulseaudio -nF
>       4 #!/gnu/store/yw409j5hzvhgj54p2xxaqbh3bz9zfhpg-pulseaudio-12.2/bin/pulseaudio -nF
>       4 #!/gnu/store/zvhp49cvslhjdv7n19nssv2kr2jqa87h-pulseaudio-12.2/bin/pulseaudio -nF
>       4             #!     if ( (defined $opts{'-ranges'})
>       4 #!include_default, #!include /Path/to/another/manifest.skip
>       4 #! libaprutil-1.so
>       4     #! /opt/perl5/bin/perl
>       4   #!/path/to/a/custom_perl --some --args
>       4    #!/path/to/jperl
>       4    #!/path/to/perl -Mencoding=euc-jp
>       4 #!/path/to/perl script invocation.  There is a PTF available from
>       4     #! -*-perl-*-
>       4   #!perl
>       4 #! perl
>       4 #!@PERL@
>       4    #!perl -l
>       4     #!perl -T
>       4 #!./perl -w
>       4 #!/pro/bin/perl
>       4 #!/QOpenSys/perl/bin/perl should always work.
>       4             #!          && ((ref $opts{'-ranges'}) eq 'ARRAY') );
>       4             #! ## Select the desired paragraph ranges
>       4   #!/usr/bin/env perl use lib qw( lib );      # Add ./lib to @INC
>       4 #!/usr/bin/perl MakeMaker will change this to the path of the perl
>       4     #!/usr/bin/perl -n
>       4     #!/usr/bin/perl -pi.orig
>       4     #!/usr/bin/perl -s
>       4     #!/usr/bin/perl -spi.orig	# same as -s -p -i.orig
>       4     #!/usr/bin/perl -T -w
>       4     #!/usr/bin/perl  -w
>       4   #!/usr/bin/perl -wl
>       4     #!/usr/bin/perl -w -T
>       4   #!/usr/bin/php 
>       4 #! /usr/bin/sh
>       4     #!/usr/local/bin/perl5.14
>       4     #!/usr/local/bin/perl     # just a comment really
>       4   #!/usr/local/perl-5.6/bin/perl -w
>       4     #!/usr/locl/bin/perl
>       5 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -W
>       5 #!/gnu/store/g87hamjyipk1j6dfq5pjfzfnfb64spbv-python2-2.7.15/bin/python -O
>       5 #!/gnu/store/iqx98v4rnw26n4qn555l4pbj96navxiv-python2-2.7.15/bin/python -O
>       5 #!/usr/bin/env python2
>       6 #!2_]r;QWmr;HTnrVZTls&f@&'E.jlrVud)rr5ao!5AL4r;?NmrVlcos83-$s!e*NeGfI2rVud!
>       6     #![allow(dead_code, unused_imports)]
>       6 #! /bin/bash
>       6   #!/bin/bash^^J%
>       6         #!/bin/sh
>       6 #!bQ7"8Gg6b3eoe>$R71>:0O.S=?1;7XQV?G"!XuWkieE.A([)Gb:<g^IbF&+pDD
>       6 #!cslatex
>       6 #! <fmtname> <enginename> <hyphen> <args>
>       6 #!GaH0,lQdqUHRI!sXe9eQO3Ee^,L\eVF^Wbnu,aSH[**!_"<Pp=0tM"j#6E8hJM_"j#6E?QmeH
>       6 #!/gnu/store/2k67pvrdq9hygg2ysgflk94jhbnc9s9g-tcsh-6.20.00/bin/csh
>       6 #!/gnu/store/2k67pvrdq9hygg2ysgflk94jhbnc9s9g-tcsh-6.20.00/bin/csh -xv
>       6 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -n
>       6 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -p -i
>       6 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -p -i.bak
>       6 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -T
>       6 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -T -w
>       6 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -w
>       6 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -w 
>       6 #!H!IX"''9Wa>D7VYA@E`L5suKOJFl<>^ul(bEXhP*HM"9Cbeu,BGMsN,"AdAt[@0
>       6 #!*k<&fW2FrVus62#[IT!r2g.8PT6c"onDor;HKjrVQBcqo8O6&-;h3!XT9::G`Fa"TSNE1E60,
>       6 #!Kmci!<<*"Z2t"+!g3]e!<<*"\cMj3"Hj)l!<<*"_?'];"d0#h!<<*"aoVPC#Ef
>       6 #!kTb'N:-k+U6(!m^1q$6QNUqf%C$^9!K[Ab31,32$=gB!5?i/?h?%VXZd%RmtRZfZE*me2U0QZ'3/
>       6 #!latex
>       6 #! Map belleek.map
>       6 #! Map mapname.map
>       6 #! MixedMap mapname.map
>       6 #!/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-2.18/bin/sh
>       6 #!P5"q7-/;:!\TuP1=X[Q1lGL6k.rYpP!p4b6-X*ZAl;G!b8,cGrd14Q5D0jpXMON
>       6 #!pdfcslatex
>       6 #!pdflatex
>       6 #! @PERL@ -w
>       6 #!rF>2s`M\gb\?pQ[)lRMVXD7X%;@d6\M.@oPbQ)'8mjcqSsDGM79n2$XtTN<DZbi
>       6 #!topic/comp.text.tex/o14P2e83o4A}{comp.text.tex} for a macro that will define commands and also save the commands being defined in a file or a container macro, \eg, for spelling exceptions on editors that don't support \tex syntax.
>       6 #!UGlO1/(4)%t4-m<.kt,%uoHGtV4M7IFIlnDr.!2?[>P^t.[[P$W\[/V0J8eAS<P
>       6 #! /usr/bin/env perl
>       6 #!/usr/bin/env pfaedit
>       6 #!/usr/bin/fontforge -lang=ff
>       6 #!/usr/bin/fontforge -script
>       6 #!/usr/bin/fontforge -script 
>       6 #!/usr/local/bin/perl
>       7 #!/gnu/store/lgbiv7q1b6m141nrkjm92qkl9ih5gamw-python2-2.7.15/bin/python2
>       8 #!/gnu/store/81y6l9ggc5q6z44hp90ll4dv5jl582mq-texlive-bin-20180414/bin/texlua  
>       8 #!/gnu/store/8z9avbgm73nzrbkhscps68gcpfipgllc-bootstrap-binaries-0/bin/bash
>       8 #!/gnu/store/hw0cz0mis43z19i76pl6ijx5risx4lf0-texlive-bin-20180414/bin/texlua  
>       8 #!/gnu/store/pyrlmxqx3g1mhzpnfpw4w94rj08wxfhj-texlive-bin-20180414/bin/texlua  
>       8 #!/gnu/store/qn1ax1fkj16x280m1rv7mcimfmn9l2pf-bash-4.4.23/bin/sh
>       8 #!/gnu/store/x9c77i6r5fmarslij6ng81awgrxblplm-texlive-bin-20180414/bin/texlua  
>       8 #!/gnu/store/xwzyy0q261brxmafkvinrrvkq4rgwiq6-texlive-bin-20180414/bin/texlua  
>       8 #!/gnu/store/zzakf905mzla4csi1dn9qpcwmgbxj29b-bash-static-4.4.23/bin/bash
>       8 #!/gnu/store/zzakf905mzla4csi1dn9qpcwmgbxj29b-bash-static-4.4.23/bin/sh
>       8  #!/usr/bin/perl -n
>       8  #!/usr/bin/perl -Tw
>       8     #!/usr/local/bin/perl
>       8     #!/usr/local/bin/perl5.10.0
>       8     #!/your/path/to/perl
>      10 #!/gnu/store/0xfmkqpi7xk3ixhrqvjijk4ibsglif62-python-3.7.0/bin/python3
>      10 #!/gnu/store/cl42c73h609bp2gy92qkh8q56spnnl2n-python-3.7.0/bin/python3
>      10    #!/usr/bin/emacs --script
>      11 #!/bin/sh -x
>      11 #!!!!!!!!???  Check @pwd_log
>      11 #!/gnu/store/g30znz9vwkvi23k41dgallfg85sj65hp-python-wrapper-3.7.0/bin/python
>      11 #!/gnu/store/iqx98v4rnw26n4qn555l4pbj96navxiv-python2-2.7.15/bin/python2
>      11 #!/usr/bin/emacs -script
>      11 #! /usr/local/bin/python
>      12        #!/bin/sh
>      12   #! /bin/sh
>      12 #! cont-fr pdftex cont-usr.tex -8bit *cont-fr.mkii
>      12 #! cont-it pdftex cont-usr.tex -8bit *cont-it.mkii
>      12 #! cont-nl pdftex cont-usr.tex -8bit *cont-nl.mkii
>      12 #! cont-ro pdftex cont-usr.tex -8bit *cont-ro.mkii
>      12 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -n -s
>      12 #!/gnu/store/l67sib1ld0fgyf0f4vrzyxnmn4yvimvb-gawk-4.2.1/bin/awk -f
>      12 #!/gnu/store/q19l04vd2za80mk1845pz7r8cz29qk43-bash-minimal-4.4.23/bin/sh -vx
>      12     #! Map belleek.map
>      12 #! mflua mflua-nowin - mf.ini
>      12  #!/usr/bin/env perl
>      12 #!/usr/bin/fontforge
>      12     #!/usr/bin/perl -Tw
>      12 #!/usr/bin/python
>      12 #!/usr/local/bin/fontforge
>      12 #! /usr/local/bin/perl
>      12     #!/usr/local/bin/perl -w
>      13 #!/gnu/store/0xfmkqpi7xk3ixhrqvjijk4ibsglif62-python-3.7.0/bin/python3.7
>      13 #!/gnu/store/b7fqhszxl02g6pfm3vw6b3cjz472qrly-python-3.7.0/bin/python3.7
>      13 #!/gnu/store/cl42c73h609bp2gy92qkh8q56spnnl2n-python-3.7.0/bin/python3.7
>      13 #!/gnu/store/g87hamjyipk1j6dfq5pjfzfnfb64spbv-python2-2.7.15/bin/python2
>      13 #!/gnu/store/h8l1pby3cm6b4fxsfwwr65b4d1hyh6cs-python-3.7.0/bin/python3.7
>      13 #!/gnu/store/zm3188ipzi262s0m8bxm24br77yh9pd8-python-3.7.0/bin/python3.7
>      14 #!@EMACS@ --script
>      14 #!/gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4/bin/guile -ds
>      14 #!/gnu/store/q19l04vd2za80mk1845pz7r8cz29qk43-bash-minimal-4.4.23/bin/sh -
>      14 #!/gnu/store/q19l04vd2za80mk1845pz7r8cz29qk43-bash-minimal-4.4.23/bin/sh -x
>      14 #!@GUILE@ \
>      14 #!@GUILE@ -ds
>      14     #! luajitlatex luajittex language.dat,language.dat.lua lualatex.ini
>      16 #!$PERL
>      16 #!/usr/local/bin/perl -w
>      17 #!/gnu/store/3w3nz0h93h7jif9d9c3hdfyimgkpx1a4-python-wrapper-3.7.0/bin/python
>      18 #!
>      18 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -s
>      18 #! luajitlatex luajittex language.dat,language.dat.lua lualatex.ini
>      18 #!./perl
>      18           #!perl.exe (versions below 4)
>      18 #!/usr/bin/env perl
>      20 #! /gnu/store/q19l04vd2za80mk1845pz7r8cz29qk43-bash-minimal-4.4.23/bin/bash
>      20  #!/usr/bin/perl -w
>      21 #!/gnu/store/b7fqhszxl02g6pfm3vw6b3cjz472qrly-python-3.7.0/bin/python3
>      22 #!/gnu/store/iqx98v4rnw26n4qn555l4pbj96navxiv-python2-2.7.15/bin/python2.7
>      22 #!/usr/bin/env wish
>      23 #!/gnu/store/r68bi4640vm0s7zsgyk7shsag8ibl3nc-python-wrapper-3.7.0/bin/python
>      24 #!/bin/lua
>      24 #!/usr/bin/lua
>      24  #!/usr/bin/perl
>      25 #!/gnu/store/57daq0hkwvmwx4asiy669cmln868brfm-python2-2.7.15/bin/python2.7
>      25 #!perl -w
>      28 #!/gnu/store/lgbiv7q1b6m141nrkjm92qkl9ih5gamw-python2-2.7.15/bin/python2.7
>      28 #!perl
>      29 #!/gnu/store/bs6bwq60sh3zamgiqmkyryf1lxbfjkgd-lua-5.3.5/bin/lua
>      30  #![allow(dead_code, unused_variables)]
>      30 #!/usr/bin/env python
>      32     #!/usr/bin/env perl
>      33 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl 
>      35  #![allow(unused_variables)]
>      35  #! /bin/sh -e
>      35  #![feature(omit_gdb_pretty_printer_section)]
>      36 #! $SHELL
>      38 #!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds
>      38 #!/gnu/store/g87hamjyipk1j6dfq5pjfzfnfb64spbv-python2-2.7.15/bin/python2.7
>      40     #!/bin/sh
>      40 #!/gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4/bin/guile --no-auto-compile
>      42 #!/gnu/store/r658y3cgpnf99nxjxqgjiaizx20ac4k0-guile-2.2.4/bin/guile --no-auto-compile
>      42 #!/usr/bin/env ../utility/fontforge-interp.sh
>      44   #!/usr/bin/perl
>      45 #!/usr/bin/env ruby
>      46   #!location/of/bin/ruby
>      47 #!@BASH@
>      48 #!/usr/bin/env texlua
>      50 #!/gnu/store/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4/bin/guile \
>      51 #!/usr/bin/perl -w
>      53 #!/usr/bin/env fontforge
>      56 #!@SHELL@
>      56     #!/usr/bin/perl
>      57 #!/gnu/store/5wp8mhmlq2xbd6kg0dq7armjgva7j7cs-perl-5.28.0/bin/perl
>      60 #!/gnu/store/2k67pvrdq9hygg2ysgflk94jhbnc9s9g-tcsh-6.20.00/bin/csh -f
>      61 #!/gnu/store/zvm2hcnbcv9mygzwpbrb6pvj1nc9wbfv-perl-boot0-5.28.0/bin/perl
>      63   #!location/of/bin/bash
>      64 #! /bin/sh
>      66     #!/usr/bin/perl -w
>      80 #! /usr/bin/env python
>      90 #! /usr/bin/env python3
>     108 #!/gnu/store/fndcvkn64ycw720d3ikjvmyvhsqk2v4n-ruby-2.5.3/bin/ruby
>     110 #!~a
>     116 #!/usr/bin/perl
>     137  #!/bin/sh
>     140 #!/gnu/store/61sixy2zjzlrpqwxphzf7v6h0yaysx1s-ruby-2.5.3/bin/ruby
>     140 #!/gnu/store/lgbiv7q1b6m141nrkjm92qkl9ih5gamw-python2-2.7.15/bin/python
>     145 #!/gnu/store/8z9avbgm73nzrbkhscps68gcpfipgllc-bootstrap-binaries-0/bin/sh
>     146 #!/gnu/store/hw0cz0mis43z19i76pl6ijx5risx4lf0-texlive-bin-20180414/bin/texlua
>     146 #!/gnu/store/xwzyy0q261brxmafkvinrrvkq4rgwiq6-texlive-bin-20180414/bin/texlua
>     150 #!/gnu/store/81y6l9ggc5q6z44hp90ll4dv5jl582mq-texlive-bin-20180414/bin/texlua
>     150 #!/gnu/store/pyrlmxqx3g1mhzpnfpw4w94rj08wxfhj-texlive-bin-20180414/bin/texlua
>     150 #!/gnu/store/x9c77i6r5fmarslij6ng81awgrxblplm-texlive-bin-20180414/bin/texlua
>     162 #!/usr/bin/env python3
>     167 #!/bin/bash
>     169 #!/usr/bin/env python
>     207 #!/gnu/store/iqx98v4rnw26n4qn555l4pbj96navxiv-python2-2.7.15/bin/python
>     209 #!/gnu/store/g87hamjyipk1j6dfq5pjfzfnfb64spbv-python2-2.7.15/bin/python
>     228 #!/bin/sh
>     292 #!/gnu/store/5s2nib1lrd2101bbrivcl17kjx1mspw6-coreutils-8.30/bin/false
>     292 #!/gnu/store/8z9avbgm73nzrbkhscps68gcpfipgllc-bootstrap-binaries-0/bin/false
>     319 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -w
>     362  #!/bin/bash
>    1589 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl
>    2706 #!/gnu/store/q19l04vd2za80mk1845pz7r8cz29qk43-bash-minimal-4.4.23/bin/bash
>    3294 #!/gnu/store/q19l04vd2za80mk1845pz7r8cz29qk43-bash-minimal-4.4.23/bin/sh
>    3871 #!/gnu/store/qn1ax1fkj16x280m1rv7mcimfmn9l2pf-bash-4.4.23/bin/bash
> -----------------------------------------------------

Yeah, a guix package should patch all those shell interperters from
/bin, /usr/bin, etc to the store path under /gnu/store, but may miss
some cases (which should be fixed).

>
> Some look a bit weird, like
>       6 #!/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-2.18/bin/sh
> but I guess it could be a template for some remote context. Idk.
> There is no /nix directory on my disk anyway. Maybe inside a ramdisk image?

I don't know, guess it should be fine...
>
> (There were lots of matches in what appears binary to grep, but they were
> all to inside /gnu/store, so I  eliminated them for here, with -I)
>
> BTW, I haven't yet started shepherd automatically, and it isn't running in the above.
> Just guix-daemon:
> from emacs I'm in now: Esc-1 Esc-! ps -e f |grep -i guix
>   530 ?        Ss     0:00 /var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild
> 31185 ?        Ss     0:00              \_ /home/bokr/.guix-profile/bin/bash -c ps -e f |grep -i guix
> 31187 ?        S      0:00                  \_ grep -i guix
>
> I have set SHELL=/home/bokr/.guix-profile/bin/bash in ~/.bash_profile,
> but as seen, that doesn't take effect for the immediate login shell.
>
> I wonder if I could exec it at the end of ~/.bash_profile -- or even as the first and only thing, hm...

Both should work, but you might try the guix system if have so much
choices trouble you :-)
>
> Hope someone can point to to enlightening reading re names in guix and its environments. TIA ;-)
>
> Bengt Richter

I'm not sure what you mean about "names" and "environments", in the
low-level, they are:

filesystem:
  guix use /gnu, /var/guix, /var/log/guix, and $HOME/.guix-profile, your
  distribution doesn't use those, so guix can live within it happily.

environment variables:
  PATH, MANPATH, INFOPATH (and more...), both guix and your distribution
  share the same ones, so there maybe some conflicts.

Hope it helps!

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#37249: console shell upon login is not ~/.guix-profile/bash -- is this always/never ok?
  2019-09-07  8:50 ` 宋文武
@ 2019-09-09 13:40   ` Bengt Richter
  0 siblings, 0 replies; 4+ messages in thread
From: Bengt Richter @ 2019-09-09 13:40 UTC (permalink / raw)
  To: 宋文武; +Cc: 37249

On +2019-09-07 16:50:12 +0800, 宋文武 wrote:
> Bengt Richter <bokr@bokr.com> writes:
> 
> > Hello,
> >
> > In the pursuit of causes for problems as yet not clear enough to
> > post as bugs, I am looking for ambivalences in name searches
> > in /gnu/... and /(the-rest).
> 
> Hello, I think most guix packages (some won't or require manual
> configurations) will work on a foreign GNU/Linux distribution, and guix
> shouldn't cause problems for the distribution.
>

Hi ???iyzsong,

Thank you for caring to answer, and for your time working on it!

Unfortunately for me, perhaps, I am interested in pursuing purity
in the definition of systems, so "shoulds" are not that reassuring ;-)

I think your advice,

   > "... you might try the guix system if have so much
   > choices trouble you :-)

may be the easiest way to improve my current situation, so
I will see about doing that. Thanks :)

[...]

> 
> After login, user's shell program as specified in /etc/passwd will be
> executed.  So you should have '/usr/bin/bash' or '/bin/bash' in
> /etc/passwd, and your $PATH have '$HOME/.guix-profile/bin' before
> '/usr/bin', so when type 'bash' in a shell, the guix one got executed.
> 

Yes, but I don't normally type bash -- I type the name of some script
I've written and put in ~/bin, and it was typically written years ago
with a #!/usr/bin/bash first line, and I don't want to have to modify
all those ;-) Especially those that I might have put in a personal git
repo.

Would I have to, to migrate all those little helpers to my GuixSD ??

[...]

> > [13:42 ~/bs]$ which -a bash
> > /home/bokr/.guix-profile/bin/bash
> > /usr/bin/bash
> > [13:43 ~/bs]$ which -a bash|xargs readlink -f|while read line;do echo -ne "$line:\n    "; file "$line";done
> > /gnu/store/qn1ax1fkj16x280m1rv7mcimfmn9l2pf-bash-4.4.23/bin/bash:
> >     /gnu/store/qn1ax1fkj16x280m1rv7mcimfmn9l2pf-bash-4.4.23/bin/bash:
> >     ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter
> >     /gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib/ld-linux-x86-64.so.2,
> >     for GNU/Linux 2.6.32, not stripped
> > /usr/bin/bash:
> >     /usr/bin/bash: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked,
> >     interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=21a51cb5f7d727370e4d8099d283d7cd20222571,
> >     for GNU/Linux 3.2.0, stripped
> >
> > Are the differences possibly dangerous?
> 
> It's totally OK, you can use both :-)
>
Until I have to diagnose a difference in behaviour ;-)
 
> >
> > Looking for dependencies outside of /gnu from within /gnu, I grepped the whole
> > as you see below. I am sure most of this is fine and coming out of documentation
> > and stuff meant for other than normally booted runtime. But does it all look ok?
> >
> > Or is my foreign-host twilight-zone shared ArchLinux/guix namespace really not
> > meant to be. I.e., is guix really defined to use /usr/ as a trusted base namespace
> > when it is defined by e.g. linux-libre in GuixSD ?
> >
> > Where would be the best docs to read about the guix name and environment rationales?
> 
> There are no 'namespace' involed, guix and your ArchLinux packages share
> the same filesystem.  And guix binaries are self-contained, they can
> work without any dependenices outsite of /gnu (sometimes they will use
> what's available in PATH, etc. which may be provided by your distribution).
>
I meant namespace in the general sense of a "space" to look for the meaning
of a name in, sorry to abuse the term.

Anyhow, that "sometimes" leaves me guessing ;-) 
> >
> > Ok, here is the grep:
[...]
> >     162 #!/usr/bin/env python3
> >     167 #!/bin/bash
> >     169 #!/usr/bin/env python
> >     207 #!/gnu/store/iqx98v4rnw26n4qn555l4pbj96navxiv-python2-2.7.15/bin/python
> >     209 #!/gnu/store/g87hamjyipk1j6dfq5pjfzfnfb64spbv-python2-2.7.15/bin/python
> >     228 #!/bin/sh
> >     292 #!/gnu/store/5s2nib1lrd2101bbrivcl17kjx1mspw6-coreutils-8.30/bin/false
> >     292 #!/gnu/store/8z9avbgm73nzrbkhscps68gcpfipgllc-bootstrap-binaries-0/bin/false
> >     319 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl -w
> >     362  #!/bin/bash
> >    1589 #!/gnu/store/dna8kpb00kq176rz8x69yy4j33my2q55-perl-5.28.0/bin/perl
> >    2706 #!/gnu/store/q19l04vd2za80mk1845pz7r8cz29qk43-bash-minimal-4.4.23/bin/bash
> >    3294 #!/gnu/store/q19l04vd2za80mk1845pz7r8cz29qk43-bash-minimal-4.4.23/bin/sh
> >    3871 #!/gnu/store/qn1ax1fkj16x280m1rv7mcimfmn9l2pf-bash-4.4.23/bin/bash
> > -----------------------------------------------------
> 
> Yeah, a guix package should patch all those shell interperters from
> /bin, /usr/bin, etc to the store path under /gnu/store, but may miss
> some cases (which should be fixed).
> 
I can live with work in progress ;-)

[...]

> > I have set SHELL=/home/bokr/.guix-profile/bin/bash in ~/.bash_profile,
> > but as seen, that doesn't take effect for the immediate login shell.
> >
> > I wonder if I could exec it at the end of ~/.bash_profile -- or even as the first and only thing, hm...
> 
> Both should work, but you might try the guix system if have so much
> choices trouble you :-)
> >
Actually, neither exec worked the ways I tried. Idk, maybe by design, so as
not to allow exec to replace the process that catches seg faults etc and
cleans up on logout.

> > Hope someone can point to to enlightening reading re names in guix and its environments. TIA ;-)
> >
> > Bengt Richter
> 
> I'm not sure what you mean about "names" and "environments", in the
> low-level, they are:
> 
> filesystem:
>   guix use /gnu, /var/guix, /var/log/guix, and $HOME/.guix-profile, your
>   distribution doesn't use those, so guix can live within it happily.
> 
> environment variables:
>   PATH, MANPATH, INFOPATH (and more...), both guix and your distribution
>   share the same ones, so there maybe some conflicts.
>
Yup, I am experiencing those ;-)
 
> Hope it helps!
Yes, actually. Thank you!

Regards,
Bengt Richter

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#37249: console shell upon login is not ~/.guix-profile/bash -- is this always/never ok?
  2019-08-31 22:21 bug#37249: console shell upon login is not ~/.guix-profile/bash -- is this always/never ok? Bengt Richter
  2019-09-07  8:50 ` 宋文武
@ 2019-09-10  7:00 ` Efraim Flashner
  1 sibling, 0 replies; 4+ messages in thread
From: Efraim Flashner @ 2019-09-10  7:00 UTC (permalink / raw)
  To: Bengt Richter; +Cc: 37249

[-- Attachment #1: Type: text/plain, Size: 601 bytes --]

This is something I'm also interested in. Something I've found while
looking around online is checking 'ssh server env | grep PATH', and on
my Guix System machines I see it is PATH=/run/current-system/profile/bin.
It seems that playing with ~/.ssh/environment and/or ~/.ssh/rc might
yield changes, but the real question IMO is if you can change things
without changing sshd_config.

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-09-10  7:01 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-31 22:21 bug#37249: console shell upon login is not ~/.guix-profile/bash -- is this always/never ok? Bengt Richter
2019-09-07  8:50 ` 宋文武
2019-09-09 13:40   ` Bengt Richter
2019-09-10  7:00 ` Efraim Flashner

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).