guix pull 抛出“匹配错误”

guix pull 抛出“匹配错误”

我已经安装了包吉克斯(在 Debian Bullseye 上)。

并尝试guix pull按照中所写的那样运行文档

$ sudo -i guix pull
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
Building from this channel:
  guix      https://git.savannah.gnu.org/git/guix.git   b329c21
Backtrace:
           6 (apply-smob/1 #<catch-closure 7faa14873220>)
In ice-9/boot-9.scm:
    705:2  5 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
In ice-9/eval.scm:
    619:8  4 (_ #(#(#<directory (guile-user) 7faa144f0140>)))
In guix/ui.scm:
  2117:12  3 (run-guix-command _ . _)
In ice-9/boot-9.scm:
    829:9  2 (catch _ _ #<procedure 7faa1446a280 at guix/ui.scm:702…> …)
    829:9  1 (catch _ _ #<procedure 7faa1446a298 at guix/ui.scm:842…> …)
    829:9  0 (catch _ _ #<procedure 7faa119b30a8 at guix/scripts/pu…> …)

ice-9/boot-9.scm:829:9: In procedure catch:
Throw to key `match-error' with args `("match" "no matching pattern" (
#:re-export-and-replace (delete) 
#:replace ((define-public* . define-public)) 
#:export (content-hash content-hash? content-hash-algorithm content-hash-value 
origin origin? this-origin origin-uri origin-method origin-hash origin-sha256 
origin-file-name origin-actual-file-name origin-patches origin-patch-flags 
origin-patch-inputs origin-patch-guile origin-snippet origin-modules 
base32 base64 package package? this-package package-name package-upstream-name 
package-version package-full-name package-source package-build-system 
package-arguments package-inputs package-native-inputs package-propagated-inputs 
package-outputs package-native-search-paths package-search-paths package-replacement 
package-synopsis package-description package-license package-home-page 
package-supported-systems package-properties package-location 
package-definition-location hidden-package hidden-package? package-superseded 
deprecated-package package-field-location this-package-input this-package-native-input 
lookup-package-input lookup-package-native-input lookup-package-propagated-input 
lookup-package-direct-input prepend replace modify-inputs package-direct-sources 
package-transitive-sources package-direct-inputs package-transitive-inputs 
package-transitive-target-inputs package-transitive-native-inputs 
package-transitive-propagated-inputs package-transitive-native-search-paths 
package-transitive-supported-systems package-mapping package-input-rewriting 
package-input-rewriting/spec package-source-derivation package-derivation 
package-cross-derivation package-output package-grafts package-patched-vulnerabilities 
package-with-patches package-with-extra-patches package-with-c-toolchain 
package/inherit transitive-input-references %supported-systems %hurd-systems 
%cuirass-supported-systems supported-package? &package-error package-error? 
package-error-package &package-input-error package-input-error? 
package-error-invalid-input &package-cross-build-system-error 
package-cross-build-system-error? package->bag bag->derivation bag-direct-inputs 
bag-transitive-inputs bag-transitive-host-inputs bag-transitive-build-inputs 
bag-transitive-target-inputs package-development-inputs package-closure 
default-guile default-guile-derivation set-guile-for-build package-file 
package->derivation package->cross-derivation origin->derivation)))'.

(我添加了换行符以提高可读性)。

如何修复这个错误?

答案1

作为流浪的卡斯卡迪亚人建议,应采取中间步骤。

  1. 将 guix 更新到标记为的提交v1.3.0(哈希a0178d3...):

    $ guix pull --commit=a0178d3
    ...
    
  2. 然后使用此版本的脚本来拉取 master 分支:

    $ ~/.config/guix/current/bin/guix pull
    
  3. 并安装任何软件包(guile例如):

    $ ~/.config/guix/current/bin/guix install guile
    

    初始化您的主要配置文件 ( ~/.guix-profile)。

    现在你有:

    1. ~/.config/guix/current/bin/guix— 最新版本的guix脚本。
    2. ~/.guix-profile— 您的主要资料。
  4. 要将所有内容放在一起并开始使用 guix,您需要重新登录。这将添加/etc/profile.d/guix.sh$PATH两个目录:${HOME}/.guix-profile/bin${HOME}/.config/guix/current/bin

相关内容