每当您看到权限错误时,它是某个软件(在此特定情况下是操作系统)告诉您,您正在尝试执行不允许执行的操作。 首先,也是最重要的,你现在需要做的是 * 调查为什么会这样 *。不要试图找到任何变通方法,后门,技巧等。如果你不明白为什么会出现错误,你可以通过尝试解决错误来严重破坏你的系统。 基本上有两种可能性: 1.错误是正确的:你本来就不应该做你想做的事情,换句话说,限制是正确的,你做的事情是错误的。 1.错误是错误的:你应该被允许做你想做的事情,但是权限设置不正确。换句话说:限制是不正确的。 盲目地使用工具,如su,sudo,或doas在unixoid操作系统,或runas或UAC在Windows中,以简单地禁用安全屏障是 * 错误的事情 * 在这两种情况下。 在第一种情况下,正确的做法是“什么都不做”。你正在做一些你不应该做的事情。你需要找到一种不同的方法。 在情况#2中,正确的做法是要求系统管理员修复错误的权限,以便您可以访问您应该访问的资源。 换句话说:在第一种情况下,障碍的存在是有原因的,而在第二种情况下,障碍本来就不应该存在。在这两种情况下,跳过障碍都是错误的。 现在,系统管理员 * 有 * 合法的理由 * 使用sudo来对操作系统的基本配置 * 进行 * 根本性的更改。 不幸的是,用户习惯于通过使用sudo重试操作来简单地解决任何问题,甚至不考虑为什么会首先出现问题,这已经变得太普遍了。This answer to your question演示了这个问题:回答者告诉你使用sudo,但没有解释它在做什么,为什么你需要它,但更重要的是,甚至没有提到你所做的是错误的摆在首位。这是非常危险的。如果你是那些患有“sudo炎”的人之一,我鼓励你挂出Super User,Ask Ubuntu,Unix & Linux SE,或Ask Different,并观察心烦意乱的用户提出的问题,这些用户在不了解自己在做什么的情况下盲目使用sudo,从而丢失了宝贵的数据。 问问你自己:安装一个博客平台是不是需要你让系统管理员参与进来,并对操作系统进行根本性的修改?我想,你和我一样觉得这个想法很奇怪,所以这里肯定有什么问题。 答案是: 您正在尝试覆盖系统Ruby安装. Do not do that的部分内容。系统Ruby安装由Apple提供,供 * 系统本身使用 * 和“遗留软件”. It is not to be used by the user。 请参阅Apple的官方声明,作为macOS Catalina 发行说明的一部分: macOS中包含Python、Ruby和Perl等脚本语言运行时,以实现与旧版软件的兼容性。默认情况下,未来版本的macOS将不包含脚本语言运行时,并且可能需要您安装其他软件包。如果您的软件依赖于脚本语言,建议您在应用中捆绑运行时。 更糟糕的是,RubyGem可以在安装过程中运行任意代码。如果您使用sudo,you allow that Gem to run arbitrary code on your computer with full administrative privileges安装RubyGem。 那么,什么是正确的做法? 正确的做法是将您自己的Ruby安装到您可以访问的目录中,并使用该安装而不是系统安装。 有很多不同的方法可以做到这一点。我个人使用Homebrew作为包管理器。但我不直接使用ruby formula,而是使用rbenv formula安装rbenv来管理我的Ruby安装,使用ruby-install formula安装ruby-install来安装Ruby实现。 然后,我可以使用rbenv install来安装特定Ruby实现的特定版本,rbenv global设置我想要默认使用的版本,gem install为这个特定版本安装RubyGems。
2条答案
按热度按时间nukf8bse1#
每当您看到权限错误时,它是某个软件(在此特定情况下是操作系统)告诉您,您正在尝试执行不允许执行的操作。
首先,也是最重要的,你现在需要做的是 * 调查为什么会这样 *。不要试图找到任何变通方法,后门,技巧等。如果你不明白为什么会出现错误,你可以通过尝试解决错误来严重破坏你的系统。
基本上有两种可能性:
1.错误是正确的:你本来就不应该做你想做的事情,换句话说,限制是正确的,你做的事情是错误的。
1.错误是错误的:你应该被允许做你想做的事情,但是权限设置不正确。换句话说:限制是不正确的。
盲目地使用工具,如
su
,sudo
,或doas
在unixoid操作系统,或runas
或UAC在Windows中,以简单地禁用安全屏障是 * 错误的事情 * 在这两种情况下。在第一种情况下,正确的做法是“什么都不做”。你正在做一些你不应该做的事情。你需要找到一种不同的方法。
在情况#2中,正确的做法是要求系统管理员修复错误的权限,以便您可以访问您应该访问的资源。
换句话说:在第一种情况下,障碍的存在是有原因的,而在第二种情况下,障碍本来就不应该存在。在这两种情况下,跳过障碍都是错误的。
现在,系统管理员 * 有 * 合法的理由 * 使用
sudo
来对操作系统的基本配置 * 进行 * 根本性的更改。不幸的是,用户习惯于通过使用
sudo
重试操作来简单地解决任何问题,甚至不考虑为什么会首先出现问题,这已经变得太普遍了。This answer to your question演示了这个问题:回答者告诉你使用sudo
,但没有解释它在做什么,为什么你需要它,但更重要的是,甚至没有提到你所做的是错误的摆在首位。这是非常危险的。如果你是那些患有“sudo炎”的人之一,我鼓励你挂出Super User,Ask Ubuntu,Unix & Linux SE,或Ask Different,并观察心烦意乱的用户提出的问题,这些用户在不了解自己在做什么的情况下盲目使用sudo
,从而丢失了宝贵的数据。问问你自己:安装一个博客平台是不是需要你让系统管理员参与进来,并对操作系统进行根本性的修改?我想,你和我一样觉得这个想法很奇怪,所以这里肯定有什么问题。
答案是:
您正在尝试覆盖系统Ruby安装. Do not do that的部分内容。系统Ruby安装由Apple提供,供 * 系统本身使用 * 和“遗留软件”. It is not to be used by the user。
请参阅Apple的官方声明,作为macOS Catalina 发行说明的一部分:
macOS中包含Python、Ruby和Perl等脚本语言运行时,以实现与旧版软件的兼容性。默认情况下,未来版本的macOS将不包含脚本语言运行时,并且可能需要您安装其他软件包。如果您的软件依赖于脚本语言,建议您在应用中捆绑运行时。
更糟糕的是,RubyGem可以在安装过程中运行任意代码。如果您使用
sudo
,you allow that Gem to run arbitrary code on your computer with full administrative privileges安装RubyGem。那么,什么是正确的做法?
正确的做法是将您自己的Ruby安装到您可以访问的目录中,并使用该安装而不是系统安装。
有很多不同的方法可以做到这一点。我个人使用Homebrew作为包管理器。但我不直接使用ruby formula,而是使用rbenv formula安装rbenv来管理我的Ruby安装,使用ruby-install formula安装ruby-install来安装Ruby实现。
然后,我可以使用
rbenv install
来安装特定Ruby实现的特定版本,rbenv global
设置我想要默认使用的版本,gem install
为这个特定版本安装RubyGems。clj7thdc2#
你似乎正在使用osx默认的ruby版本,所以要安装gem,你需要在命令前面加上 sudo(超级用户do),因为ruby安装在一个路径中,你登录的普通用户没有写权限:
字符串