Hi Gottfried, I see several problems with `update-profiles.sh`. - You wrote `GUIX_PROFILES=home/gfp/Projekte`, without leading slash. This makes the shell treat this path as a relative one. You need to use either `/home/gfp/Projekte` or just '$HOME/Projekte'. - This script assumes manifests to be stored in a completely different place than they really are in your case. - There's no need to `unset` the loop variables at every iteration. At least as long as this script is executed and not sourced. I'm mentioning this although a few extraneous `unset`s are not going to cause problems. Don't worry too much about this. I edited the script. Try with this version ``` #!/bin/sh GUIX_PROFILES=$HOME/Projekte for dir in $GUIX_PROFILES/* do name=$(basename "$dir" | tr '[:upper:]' '[:lower:]') manifest="$dir"/$name.scm profile=$dir/$name if [ -r $manifest ] then guix package --manifest="$manifest" --profile="$profile" fi done ``` -- (sig_start) website: https://koszko.org/koszko.html PGP: https://koszko.org/key.gpg fingerprint: E972 7060 E3C5 637C 8A4F 4B42 4BC5 221C 5A79 FD1A ♥ R29kIGlzIHRoZXJlIGFuZCBsb3ZlcyBtZQ== | ÷ c2luIHNlcGFyYXRlZCBtZSBmcm9tIEhpbQ== ✝ YnV0IEplc3VzIGRpZWQgdG8gc2F2ZSBtZQ== | ? U2hhbGwgSSBiZWNvbWUgSGlzIGZyaWVuZD8= -- (sig_end) On Mon, 24 Apr 2023 11:22:46 +0000 Gottfried wrote: > Hi, > > Sorry, > you provided me already with a script for activating all profiles at login, > I don’t know at the moment, why I have mixed it up with other things > and I didn’t use it. > ------------------------------------------------------------ > in the meantime all packages are available at login > through the help of Martin > ------------------------------------------------------------ > > so I tried to use your "update-profiles.sh" > I placed it in my home directory: ~/gfp > and changed one sentence, my the place of the profiles: > > update-profiles.sh > > #!/bin/sh > > GUIX_MANIFESTS=$HOME/sys/guix/manifests > GUIX_PROFILES=home/gfp/Projekte > > for dir in $GUIX_PROFILES/* > do > name=$(basename "$dir") > manifest=$GUIX_MANIFESTS/$name.scm > profile=$dir/$name > if [ -r $manifest ] > then > guix package --manifest="$manifest" --profile="$profile" > fi > unset profile > unset manifest > unset name > done > > ------------------------------------------------- > > but running it, it seems not doing anything. > > sometimes it’s difficult for me, to know so little, not knowing what I > have to do, not knowing the basics ... > > Is it connected with the other script to activate the profiles at login? > so that it doesn’t work? > I guess both scripts are independent. > > or is the path to it wrong? > I have the directory > ~/gfp/Projekte > > and in it many directories/which are the different profiles, e.g: > Musescore, Musik, Emacs, Calibre, Gnucash, Icecat, Libreoffice, > Photoflare, Lilypond > > and in each of these directories a scm.file with the same name but in > small letters like: musescore.scm, musik.scm, emacs.scm ... > > > > Kind regards > > Gottfried > > > I believe I already provided you with the code for updating profiles and > > activating them, but here it is again for reference: > > > > ```update-profiles.sh > > #!/bin/sh > > > > GUIX_MANIFESTS=$HOME/sys/guix/manifests > > GUIX_PROFILES=$HOME/sys/guix/profiles > > > > for dir in $GUIX_PROFILES/* > > do > > name=$(basename "$dir") > > manifest=$GUIX_MANIFESTS/$name.scm > > profile=$dir/$name > > if [ -r $manifest ] > > then > > guix package --manifest="$manifest" --profile="$profile" > > fi > > unset profile > > unset manifest > > unset name > > done > > ``` > > > > ```activate-profiles.sh > > #!/bin/sh > > > > GUIX_PROFILES=$HOME/sys/guix/profiles > > > > for dir in $GUIX_PROFILES/* > > do > > name=$(basename "$dir") > > profile=$dir/$name > > if [ -f "$profile"/etc/profile ] > > then > > GUIX_PROFILE="$profile" > > . "$GUIX_PROFILE"/etc/profile > > export MANPATH="$GUIX_PROFILE/share/man${MANPATH:+:}$MANPATH" > > export INFOPATH="$GUIX_PROFILE/share/info${INFOPATH:+:}$INFOPATH" > > fi > > unset profile > > unset name > > done > > ``` > > > > These scripts both loop over my manifests or profiles directories, > > running the upgrade or activate commands on each one. If you want to > > exclude a profile from being upgraded with this script, you can just > > take away its manifest's read permissons like so: > > > > ``` > > chmod -r $HOME/sys/guix/manifests/my-excluded-manifest.scm > > ``` > > > > Good luck, > > Gary > >