== Profiles and home configuration '''Q:''' I heard that there are different ways to declare or install software packages into the environment. What are the use cases, the pros and cons? '''A:''' You can manage and use packages in three different ways: * System wide (at OS configuration) * Manually in the users [[default profile]] * In your [[home configuration]] (portable across computers) * Use temporary environments (via guix shell python python-pandas bash --) '''WARNING''' Only packages installed in the same way play well together by default. If you install the same package in different ways it will shadow all but one. '''Explanation:''' You declared the vim editor package a system level package, so that it is available for everyone. But a user installed it in his default profile as well. The system level vim is then shadowed. If - for some reason - the user additionally declares vim in his home configuration, it will shadow the others as well. If you install extension packages like vim-nerdtree in the system profile it might not be available for the vim at default user profile or [[home configuration]] profile, because the matching vim is shadowed. == CI / CD '''Q:''' How do I guarantee that newer package versions are available on CI / CD? '''A:''' There are several steps involved ---- * Step 1 Run {{{#!sh guix refresh }}} on a twin machine to check for new package versions. ---- * Step 2 Run {{{#!sh guix graph }}} on the output of guix refresh to find dependencies. ---- * Step 3 Copy related source packages to CI / CD via USB drive ---- [WikiStart Back]