2025-06-05

理查德·汉明《你和你的研究》 - 阮一峰的网络日志

理查德·汉明《你和你的研究》 - 阮一峰的网络日志

理查德·汉明《你和你的研究》

作者: 阮一峰

日期: 2016年4月16日

理查德·汉明(Richard Hamming,1915--1998)是著名美国计算机学家,图灵奖得主,"汉明码"的发明人。

1986年3月7日,他在贝尔通信研究中心给200多名科学家们,做了一次演讲,题目叫做《你和你的研究》(英文版中文版)。他试图回答下面这样一个问题。

"为什么有的科学家做出了影响深远的重大成果,而大多数其他人的成果都被历史遗忘了?"

这篇演讲非常有名,属于经典文献。不仅对科学工作者有启发意义,每一个从事创造性工作的人,都应该读一下。

下面是我的摘录,删除了一些涉及具体的人和事的段落,内容更集中易读,并且为每个部分加上了小标题。

=============================

你和你的研究(精简版)

You and Your Research

作者:理查德·汉明(Richard Hamming)

译者:未知

时间:1986年3月7日

我演讲的题目是"你和你的研究"。我要谈的不是普通的研究,而是重大的研究,就是相当诺贝尔奖那一级别的研究。比如,相对论,香农的信息论,以及其他杰出的理论----这就是我要讲的。

1945年,我进入洛斯阿拉莫斯国家实验室,负责计算机方面的事,因此见过费曼、费米、奥本海默等大科学家。我一直问自己这样的问题: "为什么他们做出了这样的成果?"和"我和他们的差别是什么" 。我读了传记、自传,去问他们本人:"你是怎么干起来这样的事的?" 我试着搞清原因,这就是今天要谈的内容。

为什么这个话题重要?因为你只有一次生命。即使你相信来世,那也没关系,为什么不在今生就做一些重大的事呢。

一、要有做大事的想法

首先,你要有干大事的想法。很多人毕生只是例行公事般地从事安全的工作,所以产出有限。就这么简单:如果你要干大事,你必须毫不迟疑地去解决重大难题。

我遇到费曼时,就知道他肯定能得诺贝尔奖。因为他会从事伟大的工作。不论未来走哪个方向,这个人都会干大事。

你要跟自己说,往前走,去做大事!

二、年轻的时候就要有勇气追求答案

成功科学家的重要品质之一就是勇气。

一旦你鼓起了勇气,相信自己能解决重要的问题,那么你就行。如果你觉得你不行,几乎肯定你不会去做。伟大的科学家都充满勇气,他们不管周围境况,勇往直前;他们思考、思考、再思考。

年龄是另一个因素。你要做就得趁年轻。爱因斯坦做事就早,所有的量子理论的大科学家开始做他们的"事"的时候,都早得吓人。大多数数学家、理论物理学家,以及天体物理学家都在他们的早年,作出了我们公认的他们最好的成就。这并不是说他们岁数大了以后,就不能做有益的工作。是我们认为他们最有价值的事是他们年轻的时候所为。另一方面,在音乐、政治和文学方面,通常的情况是,那些我们仰慕的大作品往往出炉较晚。

三、忍受不确定的状态

伟大科学家还有另一个性格方面的特点,那就是"似是而非"。大多数人愿意相信世上万物非此即彼,是非分明。大科学家们却能很大程度地容忍"似是而非"。他们对自己的想法非常自信,但是又保持足够的警觉,随时挑出其中的错误和瑕疵。

如果你过于自信,你将忽视其中的破绽;如果你过分怀疑,你甚至将无从起步。这需要一个良好的平衡。多数大科学家非常清楚为什么他们的理论是真知灼见,同时也知道哪里还有些小毛病。

四、比别人多努力10%

大多数伟大的科学家都有惊人的动力。他们总是比别人投入更多。假设两个人拥有几乎一样的能力,其中一个人比另一个人多干10%,几年后他将多产一倍。

你知道得越多,就学得越多;你学得越多,就做得越多;你做得越多,机会就越多。

五、全力投入重要的问题

如果你找到一件真正重要的事情,就不要让任何别的事情分散你的注意力。

多数大科学家口袋里约有一二十个大问题,想方设法去攻克。每当他们发现一个新想法出现的时候,你就会听到他们说:"唔,这个与该问题有关。" 他们于是抛开其他一切,全力投入此问题。

他们的思想是时刻准备着的,看见机会就紧跟其后。当然,很多时候也不能奏效,一个主要的诀窍就是活得长一点。

六、敞开办公室大门

另一个性格特点,我一开始没注意到:有人的办公室大门是关着的,另一些人是开着的。

我观察到,如果关上办公室的门,你今天或明天确实会比别人多干不少的活。但是,十年后就未必了。因为你可能干了不少不值得干的事。那些把门敞开的人,的确受了很多的打扰,但他也不时地获得线索,了解这世界什么更重要。

我可以说,那些敞开了门干活的人和最终成就了大事的人之间,存在千丝万缕的联系。

七、做可以成为他人基石的工作

早年,我在攻克一个又一个难题,成功的多,失败的少。可是,周五解决了一个问题回到家里后,我却并不快活,反而很沮丧。我看到生活就是一个问题接着一个问题又接着另一个问题。

想了相当长一阵子后,我决定以另一种方式干活:你的工作要成为别人工作的基石!于是别人就会说: "看哪,我站在他的肩膀之上,我看得更远了。"

科学的本质是积累!我再也不去做相互孤立的问题,除非它能代表某一类问题的共性。我决不再去解决单一的问题。

你要么让人们在你的成果上有所建树,要么别人不得不把你干的活从头再来复制一遍。

八、重视推销和表达自己

做完一件事情还不够,你还得把它"贩卖"出去。

对于一个科学家而言,推销是一件棘手的事。这很讨厌,你本不该做这事,这世界就该等着,当你做成某件大事时,他们就该赶快出来主动迎接。但是,事与愿违,每个人都忙着他们自己的活。你必须很好地主动介绍,使得他们能把手头的活放在一边,过来瞧瞧你的东西,理解它,然后回过头来说:"是,那玩意不错。" 现实是即使你发表了研究成果,如果读者们把你的文章翻过去,不停下来读它,你就会竹篮打水一场空。

你得学会写好、写清楚以便人们愿意看;你必须学会发表相当正式的发言;你还必须学会作出非正式的谈话。我们有不少所谓的"后排科学家"。在一个会议上,他们更愿意闭口不谈。他们不愿站在一个炙手可热的会议的中央,在大庭广众之下说:"我们应该做这件事,为了这些原因......" 你必须掌握这种形式的交流,准备发表演说。

我刚开始做演讲的时候,非常非常紧张,几乎表现出生理上的病态。我意识到,我得学习作演讲,否则整个职业生涯就不会有很好的发展。我决定一定要做一个非常好的演讲,一个真正符合听众需要的演讲,不只针对专业人士,而是针对更广泛的听众。

现在,我认为,研究要只花50%的时间,另外50%的时间用来表达,这是一个非常大的数字。

九、阅读方法比数量更重要

你也不要在图书馆花太多时间,一味追随别人的研究成果。

贝尔实验室有个同事,一个非常非常聪明的家伙。他老在图书馆里呆着,读所有的东西。如果你想要参考资料,你到他那里去,他就会告诉你所有的参考资料。但我觉得,长此以往,他不会有任何以他命名的成果。他现在已退休,成为了一个副教授。他是很有价值,我对此没有疑问。他写了一些不错的文章登在《物理评论》上,但他没有以他命名的成果,因为他读得太多。如果你成天研究别人怎么做,你就会按别人的老路子思考。

如果你想要有不同的新思维,你需要去搞清问题,而不是成天靠读书去找答案。这不是可取的方法。

我的建议是:阅读,但不是靠量,而是靠正确的阅读方法起作用。

十、重视写书

短期来看,论文非常重要。但如果你想要一个长期的认可,写书的作用更大,因为我们大多数人需要方向。现今的知识几乎是无穷的,我们需要寻找自己的方向。那些帮助我们融会贯通的、代表重要思想的书,会被后代珍视。

写论文也是必要的,但我倾向于认为,长期看,那些只写至关重要内容的书更重要。

十一、远见超出你的能力时,才去做管理

如果你想成为一名伟大的研究者,就不要成为一个公司的总裁。你得清楚你要什么。

一天,我到我的老板Bode那里,对他说:"为什么你要当这个部门的头呢?为什么你不去当一名大科学家呢?" 他说:"Hamming, 我有远见,知道贝尔实验室的数学部分要怎样,如果要让这个"远见"得到共识,我就得当上部门的头。"

当你觉得你想干什么的远见,正好在你的能力范围内,你就应努力获取它。如果有一天你的远见大大超过了你的能力时,你就应该去做管理工作。而且,远见越大,你就应做越大的管理。如果你拥有一个关于整个实验室应该向何处去,或者有关整个贝尔系统,你就得到该去的位子让它实现。你从底层是无法轻易让它实现的。

这取决于你的目标和对目标的渴望。我选择回避管理工作因为我更希望做我容易应付的事。但这是我的选择,只对我起作用。每个人有权做出自己的选择,保持一个开放的心态。但别试着两样都占。

(完)

2025-04-17

重装电脑用Scoop管理软件,清爽多了! - 开发调优 - LINUX DO

重装电脑用Scoop管理软件,清爽多了! - 开发调优 - LINUX DO

前言:你是否也曾被 Windows 软件安装折磨?

  还记得吗?每次重装 Windows 系统后,那令人头秃的软件安装环节:打开浏览器,搜索、下载 JDK、Node.js、Python、Git、VS Code、MySQL、Redis… 每个软件都要经历“寻找官网 → 下载 → 双击安装包 → 无脑点下一步(还得小心捆绑软件!) → 配置环境变量”的漫长旅程。一套操作下来,半天时间就没了,耐心也耗尽了。更别提各种依赖冲突、环境变量配置错误、软件卸载不干净留下的系统“垃圾”… 简直是噩梦!:scream:

  如果你对上述场景感同身受,那么恭喜你,找到了解放自己的钥匙!:key: 今天,我要向你隆重介绍一款 Windows 下的命令行包管理神器 —— Scoop。它就像一个专门为开发者和效率爱好者准备的“应用商店”,能让你用几行简单的命令,就闪电般地安装、更新、管理你需要的各种(尤其是命令行)工具和软件。从此,环境搭建不再是痛苦,而是几分钟就能搞定的轻松事!

  看看我用 Scoop 配置好环境后的样子,是不是清爽又高效?:backhand_index_pointing_down:

:hammer_and_wrench: 准备工作:磨刀不误砍柴工

  在开始之前,请确保你满足以下条件:

  • 操作系统: Windows 10 或 Windows 11(Windows 7 SP1+ 理论上也支持,但更推荐新版本)。
  • PowerShell: 版本 5.1 或更高版本。Windows 10/11 通常自带。
    • 检查方法:打开 PowerShell(按 Win + X,选择“Windows PowerShell”或“终端”),输入 $PSVersionTable.PSVersion 并回车,查看 Major 版本号是否 >= 5。
  • .NET Framework: 4.5 或更高版本 (通常新版 Windows 已满足)。
  • 网络连接: 稳定且能访问 GitHub (Scoop 的核心依赖)。
  • 管理员权限: 虽然 Scoop 的核心理念是非管理员权限安装,但在首次设置 PowerShell 执行策略或进行全局安装时可能需要。建议首次操作时,以管理员身份运行 PowerShell。
  • 基本命令行知识: 别担心!如果你是新手,只需跟着步骤复制粘贴命令即可。我会解释每一步的作用。
  • 网络环境: 全程代理网络。如果你在国内网络环境下遇到困难(如下载慢、连接失败),可能需要配置代理或使用其他网络优化方法。文末会提供一些解决方案思路。

:rocket: 核心步骤:开始你的 Scoop 之旅!

步骤一:安装 Scoop 本体 - 神器的第一步

  Scoop 本身就是一个需要被“安装”的工具。

  1. 打开 PowerShell:

    • 按下 Win + X 快捷键,在菜单中选择 “Windows PowerShell (管理员)” 或 “终端 (管理员)”。建议首次使用管理员权限,以确保后续步骤顺利。
  2. 设置执行策略:

    • 为了允许 PowerShell 运行像 Scoop 安装脚本这样的本地或远程签名的脚本,需要调整执行策略。输入以下命令:

      Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    • 按下回车。如果系统询问是否更改执行策略,输入 Y 并回车确认。

    • :light_bulb: 小科普:

      • Set-ExecutionPolicy: 这是设置 PowerShell 执行策略的命令。
      • RemoteSigned: 这是一种安全策略,允许运行本地创建的脚本,对于从网络下载的脚本,则要求它们具有可信发布者的数字签名。这比 Unrestricted(允许所有脚本)更安全。
      • -Scope CurrentUser: 表示这个设置仅对当前登录的用户生效,通常不需要管理员权限(但首次设置可能需要确认),也更安全。
  3. 执行安装命令:

    • 接下来,粘贴并运行以下命令来下载并执行 Scoop 的官方安装脚本:

      Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression # 或者使用别名更简洁的版本 (iwr = Invoke-RestMethod, iex = Invoke-Expression) # iwr -useb get.scoop.sh | iex
    • :light_bulb: 小科普:

      • Invoke-RestMethod (或 iwr): 从指定的 URL (https://get.scoop.sh) 下载内容(这里是安装脚本)。
      • | (管道符): 将前一个命令的输出(下载的脚本内容)传递给后一个命令。
      • Invoke-Expression (或 iex): 执行接收到的字符串内容(也就是运行安装脚本)。
    • 网络问题提示: 如果这条命令因为网络问题(如无法连接 GitHub)失败,请参考文末的“常见问题解决”。

  4. 预期结果:

    • 等待脚本执行完毕。如果一切顺利,你会在 PowerShell 窗口看到类似 “Scoop was installed successfully!” 的成功信息。
    • 默认情况下,Scoop 会安装在你的用户目录下:C:\Users\你的用户名\scoop
  5. (可选) 修改默认安装路径:

    • 如果你不想把 Scoop 安装在 C 盘,或者想统一管理软件,可以在执行安装命令之前,先运行以下两条命令来指定路径(例如,安装到 D:\Apps\Scoop):

      # 1. 设置 Scoop 的安装目录环境变量 $env:SCOOP='D:\Apps\Scoop' # 2. 将这个环境变量永久写入用户配置 (下次打开 PowerShell 依然有效) [Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User') # 3. (可选) 设置全局安装路径 (如果需要全局安装软件) # $env:SCOOP_GLOBAL='D:\GlobalApps' # [Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine') # Machine 级别需要管理员权限
    • 设置完路径后,再执行上面的第 3 步安装命令

步骤二:验证安装与添加软件仓库 (Bucket)

  Scoop 使用 “Bucket”(桶)来管理软件包列表,每个 Bucket 就是一个 Git 仓库,里面包含了软件的安装信息(称为 Manifest,清单文件)。默认只有 main Bucket,主要包含常用的命令行工具。我们需要添加更多 Buckets 来发现和安装更多软件。

  1. 验证 Scoop:

    • 在 PowerShell 中输入 scoop help 并回车。如果看到 Scoop 的帮助信息和可用命令列表,说明 Scoop 已成功安装并可以工作了。
  2. 添加常用 Bucket:

    • extras Bucket 包含了大量流行的 GUI 软件和非 main Bucket 的常用工具。强烈建议添加:

      scoop bucket add extras
    • :light_bulb: 提示: 添加 Bucket 需要从 GitHub 克隆仓库,如果网络慢请耐心等待。如果失败,检查网络或代理设置。

    • 重要: Scoop 依赖 git 来管理 Buckets。如果你的系统没有安装 git,Scoop 在添加第一个 Bucket 时通常会提示并自动尝试安装。你也可以手动安装:scoop install git

  3. 添加其他常用 Buckets (可选):

    • 根据你的需要,可以添加更多社区维护的 Buckets。例如:
      • 安装各种 Java 版本:scoop bucket add java
      • 安装 Nerd Fonts (美化终端字体):scoop bucket add nerd-fonts
      • 安装特定旧版本的软件:scoop bucket add versions
      • 安装非便携应用 (需要特殊处理):scoop bucket add nonportable (安装里面的软件可能需要管理员权限)
    • 去哪里找更多 Buckets?
  4. 注意事项:

    • 添加 Bucket 时需要良好的网络连接。
    • 如果命令出错,请检查 Bucket 名称是否拼写正确。
    • 有时网络波动会导致添加失败,重试一次可能就好了。

步骤三:用 Scoop 安装你的常用软件

  激动人心的时刻到了!现在你可以像逛超市一样,用简单的命令安装软件了。

  1. 搜索软件:

    • 不确定软件是否在已添加的 Buckets 里?用 search 命令!

      scoop search <你想搜索的软件名或关键词> # 例如: 搜索 python 相关 scoop search python
    • Scoop 会列出匹配的软件包及其所在的 Bucket。

    • 更方便的搜索: 你也可以直接访问 Scoop 的官方网站 https://scoop.sh/,它提供了一个图形化的搜索界面。注意取消勾选页面上的 “main” 筛选器可以搜索到 extras 等其他 Bucket 中的包。

  2. 安装单个软件:

    • 找到你需要的软件名后,使用 install 命令安装。

      # 安装 OpenJDK (来自 java bucket) scoop install openjdk # 安装 Git (来自 main bucket) scoop install git # 安装 7zip (来自 main bucket) scoop install 7zip # 安装 VS Code (来自 extras bucket) scoop install vscode
  3. 一次安装多个软件:

    • 提高效率,一次性安装多个!用空格隔开软件名即可。

      scoop install nodejs python mysql nginx putty everything powertoys
  4. (可选) 全局安装:

    • 默认情况下,Scoop 安装的软件只对当前用户可用,并且安装在用户目录下的 scoop 文件夹中(如 C:\Users\你的用户名\scoop\apps)。这通常不需要管理员权限,也更干净、便携。

    • 如果你希望软件对系统上的所有用户都可用,可以使用 -g 或 --global 参数。这需要管理员权限运行 PowerShell,并且软件会被安装到全局路径(默认为 C:\ProgramData\scoop,或你通过 $env:SCOOP_GLOBAL 指定的路径)。

      # 全局安装 OpenJDK (需要管理员权限运行 PowerShell) scoop install openjdk --global
    • :light_bulb: 建议: 除非你明确知道需要全局安装,否则优先使用默认的用户模式安装,这更能体现 Scoop 的优势。

  5. 预期结果:

    • Scoop 会自动下载软件包、解压、处理依赖,并将可执行文件通过 “shim” 机制添加到你的 PATH 中。安装完成后,你通常可以直接在新的 PowerShell 或 CMD 窗口中使用该软件的命令。
    • 例如,安装 openjdk 后,打开一个新的 PowerShell 窗口,输入 java -version,应该能看到 Java 的版本信息。
  6. :light_bulb: Scoop 的魔法:Shim 是什么?

    • Scoop 的一个核心优势是不污染系统的 PATH 环境变量。它怎么做到的?答案是 “Shim” (垫片)。
    • 当你安装一个软件(比如 git)后,Scoop 不会把 git.exe 所在的整个目录加到系统 PATH。它只做一件事:在 ~/scoop/shims 目录下(这个目录在安装 Scoop 时会被自动添加到用户 PATH 中)创建一个名为 git.exe 的极小的可执行文件 (shim)。
    • 当你运行 git 命令时,系统在 PATH 里找到了 ~/scoop/shims/git.exe。这个 shim 文件知道真正 git.exe 的位置(比如在 ~/scoop/apps/git/current/bin/git.exe),然后它会启动真正的 git.exe
    • 这样做的好处是:你的 PATH 变量非常干净,只增加了一个 shims 目录。卸载软件时,只需删除对应的 shim 和软件目录,对系统几乎没有影响。对于 GUI 程序,Scoop 会在开始菜单创建一个 “Scoop Apps” 文件夹存放快捷方式。

步骤四:软件的更新与管理

  安装只是开始,Scoop 还能帮你轻松管理已安装的软件。

  1. 检查更新:

    • 想知道哪些软件有新版本了?

      # 检查 Scoop 自身和所有 Buckets 的更新,并列出可更新的软件 scoop status # 或者直接更新 Scoop 自身和 Buckets 的信息 scoop update
    • scoop update 首先会更新 Scoop 自身和所有已添加的 Bucket(相当于对每个 Bucket 的 Git 仓库执行 git pull),获取最新的软件包清单。

  2. 更新所有软件:

    • 一键更新所有已安装且有新版本的软件:

      scoop update *
  3. 更新指定软件:

    • 只想更新某个特定的软件?

      scoop update <软件名> # 例如: 更新 nodejs scoop update nodejs
  4. 查看已安装列表:

    • 想看看自己都装了些什么?

      scoop list
  5. 卸载软件:

    • 不再需要某个软件了?干干净净地移除它!

      scoop uninstall <软件名> # 例如: 卸载 mysql scoop uninstall mysql
    • Scoop 会删除软件文件和对应的 shim/快捷方式,非常彻底。

  6. 查看软件信息:

    • 想了解某个已安装或可用软件的详细信息(版本、来源、依赖等)?

      scoop info <软件名> # 例如: 查看 git 的信息 scoop info git
  7. 回退到旧版本:

    • 更新后发现新版本有 Bug?可以尝试回退。

      # 先查看可用版本 scoop info <软件名> # 回退到指定版本 (例如回退 git 到 2.30.0.windows.1) scoop reset <软件名>@<版本号> scoop reset git@2.30.0.windows.1
  8. 其他常用命令:

    • scoop cleanup * : 清理所有软件的旧版本,释放磁盘空间。
    • scoop cache rm * : 清除下载缓存。
    • scoop home <软件名> : 在浏览器中打开软件的官方主页。
    • scoop which <命令名> : 显示某个命令对应的可执行文件的实际路径 (类似 Linux 的 which)。

:thinking: 常见问题解决 (FAQ)

问题 1:Scoop 安装或添加 Bucket 时提示网络错误/超时?

  • 原因分析:

    • 国内访问 GitHub 网络不稳定。
    • 公司或学校网络限制。
    • 系统代理设置未被 PowerShell 正确识别。
  • 解决方案:

    1. 检查网络: 确保你的基本网络连接是通的。

    2. 配置代理: 如果你有可用的 HTTP 代理,可以为 Scoop 单独设置:

      # 设置代理 (将 'http://代理服务器地址:端口' 替换为你的实际代理) scoop config proxy http://代理服务器地址:端口 # 查看当前代理设置 scoop config proxy # 取消代理 scoop config proxy none

      注意:这只为 Scoop 设置代理,不影响系统其他应用。

    3. 使用网络加速工具: 尝试使用 Watt Toolkit (原 Steam++) 或其他类似工具进行 GitHub 加速。

    4. 手动下载安装脚本:

      • 在浏览器中访问 https://get.scoop.sh
      • 将页面内容完整复制并保存为一个名为 install.ps1 的文件(例如保存在桌面)。
      • 在 PowerShell 中,切换到该文件所在的目录(例如 cd ~/Desktop),然后运行:.\install.ps1 (注意前面的 .\)。如果之前修改了安装路径的环境变量,这里也需要先设置好。
    5. 更换 DNS: 尝试将系统的 DNS 服务器更换为更可靠的公共 DNS,如 1.1.1.1 (Cloudflare) 或 8.8.8.8 (Google)。

问题 2:安装软件后,在命令行中输入命令提示“不是内部或外部命令”?

  • 原因分析:
    • ~/scoop/shims 目录没有被正确添加到系统的 PATH 环境变量中。
    • 你没有重新打开一个新的 PowerShell 或 CMD 窗口(环境变量更改通常需要新会话才能生效)。
    • 安装的是 GUI 程序,它可能没有提供命令行接口。
    • 极少数情况下,shim 创建失败。
  • 解决方案:
    1. 重启终端最常见的原因! 关闭当前的 PowerShell/CMD 窗口,然后重新打开一个新的窗口再试。
    2. 检查 PATH 环境变量:
      • 在 PowerShell 中输入 $env:Path 查看当前 PATH。确认其中是否包含类似 C:\Users\你的用户名\scoop\shims 的路径。
      • 如果没有,尝试运行 scoop fix path 看是否能自动修复。
      • 如果还不行,可能需要手动添加:右键“此电脑” → 属性 → 高级系统设置 → 环境变量 → 在“用户变量”或“系统变量”中找到 Path → 编辑 → 新建 → 添加 C:\Users\你的用户名\scoop\shims (请替换为你的实际路径) → 一路确定。然后重启终端
    3. 确认安装: 使用 scoop list 确认软件是否真的安装成功了。
    4. 检查软件类型: 确认你安装的是命令行工具还是纯 GUI 应用。GUI 应用通常通过开始菜单的 “Scoop Apps” 文件夹启动。
    5. 检查 Shim: 使用 scoop which <命令名> 看看是否能找到对应的 shim 文件。

问题 3:执行 Set-ExecutionPolicy 时出错或无效?

  • 原因分析:
    • 权限不足 (尤其是在尝试更改 LocalMachine 范围时)。
    • 组策略限制 (在企业环境中常见)。
  • 解决方案:
    1. 使用管理员权限: 确保你是以管理员身份运行 PowerShell。
    2. 检查作用域: 确认你使用的是 -Scope CurrentUser。更改 LocalMachine 作用域通常需要更高的权限,并且会影响所有用户。
    3. 检查组策略: 如果你在公司电脑上,可能需要联系 IT 管理员,确认是否有组策略限制了执行策略的更改。
    4. 了解策略级别: PowerShell 执行策略有多个作用域(MachinePolicy, UserPolicy, Process, CurrentUser, LocalMachine),它们有优先级。可以使用 Get-ExecutionPolicy -List 查看各作用域的设置。CurrentUser 通常能覆盖 LocalMachine (除非有策略限制)。

问题 4:杀毒软件报警或阻止 Scoop/软件安装?

  • 原因分析: Scoop 的工作方式(下载、解压、创建 shim)有时会被某些敏感的杀毒软件误判为可疑行为。
  • 解决方案:
    1. 添加排除项: 在你的杀毒软件设置中,将 Scoop 的安装目录 (C:\Users\你的用户名\scoop 或你自定义的路径) 添加到信任区域或排除列表。
    2. 临时禁用: 在安装特定软件时,可以考虑临时禁用杀毒软件的实时防护,安装完成后再开启(请确保你信任要安装的软件来源!)。

:light_bulb: 进阶技巧:让 Scoop 更得心应手

  1. 创建自己的 Bucket:

    • 如果你有一些内部工具或者 Scoop 官方/社区没有收录的软件,可以创建自己的 Git 仓库作为 Bucket,编写 JSON 格式的 Manifest 文件来描述如何安装它们。这对于团队共享工具配置非常有用。学习如何编写 Manifest: Scoop Wiki
  2. 一键重装脚本:

    • 将你所有需要安装的常用软件整理到一个 PowerShell 脚本文件中(例如 setup-my-env.ps1):

      # setup-my-env.ps1 # 添加需要的 Buckets scoop bucket add extras scoop bucket add java scoop bucket add nerd-fonts # 安装常用工具 scoop install git python nodejs openjdk maven gradle vscode 7zip everything powertoys curl wget grep sed bandizip # ... 添加你需要的其他软件 # 清理旧版本 scoop cleanup * Write-Host "环境配置完成!"
    • 每次重装系统后,只需运行 Scoop 安装命令,然后执行这个脚本 .\setup-my-env.ps1,即可快速恢复你的开发环境!

  3. 极致便携性:

    • Scoop 的一大魅力在于其便携性。默认情况下,所有软件都安装在 ~/scoop 目录下。这意味着,理论上你可以将整个 scoop 文件夹复制到另一台电脑的相同用户目录下(或者通过环境变量指定路径),然后简单运行一些 Scoop 命令(如 scoop reset * 或 scoop fix path)来修复路径和 shim,就能在新电脑上获得几乎一致的环境!
  4. 与其他包管理器的比较 (简单):

    • Scoop: 默认用户级安装、无需管理员权限、干净不污染 PATH、主要面向开发者和命令行工具、便携性好、仓库相对 Chocolatey 较小。
    • Chocolatey (Choco): 历史悠久、软件包仓库非常庞大 (覆盖面广)、通常需要管理员权限、安装方式更接近传统 Windows 安装(可能安装到 Program Files)、有付费版提供高级功能。
    • Winget: 微软官方出品、内置于新版 Windows、可以管理来自 Microsoft Store 和其社区仓库的应用、更新机制有时能同步非 Winget 安装的应用、更偏向通用软件管理。
    • 可以共存吗? 可以!很多人会同时使用它们,根据软件可用性和个人偏好选择。例如,用 Scoop 管理开发工具,用 Winget 或 Chocolatey 管理大型 GUI 应用。

:tada: 总结:拥抱 Scoop,告别繁琐!

  恭喜你!通过这篇(希望是)生动有趣的教程,你已经掌握了使用 Scoop 在 Windows 上高效、整洁地管理软件的秘诀。Scoop 以其简洁的命令行操作、出色的便携性、对系统环境的“零污染”以及强大的脚本能力,正成为越来越多 Windows 用户(尤其是开发者)的装机必备神器。

  从现在开始,忘掉那些繁琐的手动下载、安装、配置吧!让 Scoop 成为你得力的助手,把宝贵的时间投入到真正重要的事情上——无论是编码、创作,还是享受生活。


:speech_balloon: 交流时间!

  你觉得 Scoop 怎么样?在你的使用过程中,遇到了哪些有趣的问题或独到的技巧?你最喜欢用 Scoop 安装哪些软件?欢迎在评论区分享你的经验和看法,或者提出你的疑问。让我们一起交流,让 Windows 环境配置变得前所未有的简单和愉快!

  如果觉得这篇文章对你有帮助,别忘了点赞、收藏,并分享给你身边还在被软件安装折磨的朋友们! :wink:

精选文章

理查德·汉明《你和你的研究》 - 阮一峰的网络日志

理查德·汉明《你和你的研究》 - 阮一峰的网络日志 n/a 添加到词汇 Audio 理查德·汉明《你和你的研究》 作者:  阮一峰 日期:  2016年4月16日 理查德·汉明 (Richard Hamming,1915--1998)是著名美国计算机学家,图灵奖得主, ...