小编Ave*_*han的帖子

如何配置 Emacs 以在 Mac OS X 上使用“ispell”?

brew将 Emacs 和 ispell 用作我的包管理器。我两个都安装了。做一个快速的谷歌,我无法弄清楚如何告诉 Emacs ispell 在哪里并加载适当的词典。

现在当我做 a 时M-x ispell-check-version,Emacs 俏皮地回复:Searching for program: No such file or directory.

如何配置Emacs使用ispell

osx emacs

28
推荐指数
2
解决办法
2万
查看次数

如何让“realpath”找到我的符号链接?

我在 MacOSX 上bash用作我的外壳。我有符号链接,创建如下:

ln -s /usr/bin/python python2 
Run Code Online (Sandbox Code Playgroud)

我有一个使用 python2 的包,我想在我当前的工作目录中创建一个/usr/bin/python实际上是 python2的符号链接。当我python2从命令行执行 a 时,我收到此错误:

python2: realpath couldn't resolve "/usr/bin/python2"
Run Code Online (Sandbox Code Playgroud)

但是像这样调用它./python2可以正确解析路径。我PATH已经.在里面。事实上,为了测试,我修改了它,使其只包含.在其中。

我该如何解决?谢谢!


语境

以下许多建议的解决方案对我不起作用。我试图将我的问题提炼得尽可能集中和简短,这样人们就不会淹没在文字的海洋中,但显然我需要提供更多的背景知识。

我正在尝试对从 git 克隆的包进行开发。原始软件包git-multimail是/是在 Linux 的某个变体上开发的(我猜是 Ubuntu)。我一直在尝试修改它,以便能够在 MacOSX 上使用它及其测试套件,并且尽可能少地修改。这就是为什么一些建议的解决方案不理想的原因:

  1. 以 rootpython2身份在 /usr/bin/ 中创建一个符号链接。我正在寻找不需要这个的解决方案。这在开始时是一个明显的选择,但我想要一个尽可能少修改主机系统的解决方案。这就是为什么我想在当前工作目录中创建一个临时符号链接,将 CWD(即.)添加到我的路径中,然后在完成后销毁它(即符号链接)。

  2. 创建一个包装脚本以使用现有的 python 调用 python 脚本。这样做的问题是,大部分测试套件使用实际的 script_files 作为可执行文件,这取决于 shebang 来找到正确的执行环境。这意味着要大量编辑测试套件。在这种情况下,(请参阅下面的测试框架片段),我必须为每个.py文件添加一个包装器;此外,用户/开发人员必须了解使用包的不同规则,具体取决于它们所在的系统(即在 MacOSX 上,请确保不要使用 python 文件而不通过包装器调用它们或显式调用/usr/bin/python file.py)。

    #! /bin/sh
    
    D=$(cd …
    Run Code Online (Sandbox Code Playgroud)

python symlink

12
推荐指数
3
解决办法
9866
查看次数

当我以 `sudo` 运行脚本时是否需要设置 SUID?

我需要将脚本作为root. 链接中给出的说明说我应该:

  • 在脚本上设置 SETUID 位(即chmod 4755)。
  • 以 sudo 身份运行脚本(即sudo /path/to/thescript.sh

从我正在阅读的有关 SETUID 位的文档中,我的理解是通过设置它,运行脚本的人将获得所有者的特权。因此,如果脚本的所有者是root,那么任何运行带有 SETUID 位的脚本的人都会以 root 权限运行脚本。

如果是这种情况,sudo如果设置了 SETUID 位,为什么我需要在运行脚本之前执行 a ?

如果我需要使用sudo来运行脚本,何必设置 SETUID 位。就像一个实验一样,我运行我的脚本只是使用sudo它,它能够做我需要做的事情(脚本递归地更改一堆文件的权限)。

setuid permissions sudo

4
推荐指数
1
解决办法
1195
查看次数

标签 统计

emacs ×1

osx ×1

permissions ×1

python ×1

setuid ×1

sudo ×1

symlink ×1