首页 > 解决方案 > PKGBUILD 和 makepkg:“警告:目录权限不同”

问题描述

向 setup.py 提供 --root ,例如:

package() {
    cd "$srcdir"/"$_gitname"
    python3 setup.py install --prefix=$pkgdir/usr --root=$pkgdir
}

使用以下 setup.py 文件:

import DistUtilsExtra.auto


DistUtilsExtra.auto.setup(
    name='alsacontrol',
    version='0.1.0',
    description='ALSA configuration interface',
    license='GPL-3.0',
)

在 PKGBUILD 文件中会产生以下错误:

warning: directory permissions differ on /mnt/data/
filesystem: 700  package: 755

什么时候makepkg -is使用。

标签: setup.pypacmanpkgbuild

解决方案


以下是带有 --root 和 --prefix 的文件权限:

➜  alsa-control pwd
/mnt/data/Code/alsacontrol-aur/pkg/alsa-control
➜  alsa-control ls -lha
total 80K
drwxr-xr-x 4 mango mango 4.0K Sep 15 00:50 .
drwxr-xr-x 3 mango mango 4.0K Sep 15 00:50 ..
-rw-r--r-- 1 mango mango  54K Sep 15 00:50 .BUILDINFO
drwxr-xr-x 3 mango mango 4.0K Sep 15 00:50 mnt
-rw-r--r-- 1 mango mango 3.2K Sep 15 00:50 .MTREE
-rw-r--r-- 1 mango mango  515 Sep 15 00:50 .PKGINFO
drwxr-xr-x 5 root  root  4.0K Sep 15 00:50 usr

这里没有--root,只有--prefix:

➜  alsa-control ls -lha
total 76K
drwxr-xr-x 3 mango mango 4.0K Sep 15 00:52 .
drwxr-xr-x 3 mango mango 4.0K Sep 15 00:52 ..
-rw-r--r-- 1 mango mango  54K Sep 15 00:52 .BUILDINFO
-rw-r--r-- 1 mango mango 3.1K Sep 15 00:52 .MTREE
-rw-r--r-- 1 mango mango  515 Sep 15 00:52 .PKGINFO
drwxr-xr-x 5 mango mango 4.0K Sep 15 00:52 usr

这里有--root,但没有--prefix:

➜  alsa-control pwd
/mnt/data/Code/alsacontrol-aur/pkg/alsa-control
➜  alsa-control ls -lha
total 76K
drwxr-xr-x 3 mango mango 4.0K Sep 15 01:06 .
drwxr-xr-x 3 mango mango 4.0K Sep 15 01:06 ..
-rw-r--r-- 1 mango mango  54K Sep 15 01:06 .BUILDINFO
-rw-r--r-- 1 mango mango 3.1K Sep 15 01:06 .MTREE
-rw-r--r-- 1 mango mango  515 Sep 15 01:06 .PKGINFO
drwxr-xr-x 5 mango mango 4.0K Sep 15 01:06 usr

如您所见,将 --root 与 --prefix 结合使用会产生奇怪的效果。

我保留了--root,这样我也可以将文件安装到/etc,并在我的脚本中删除了--prefix:

设置.py:

    data_files=[
        ('share/alsacontrol/', ['data/asoundrc-template']),
        ('share/applications/', ['data/alsacontrol.desktop']),
        ('/etc/xdg/autostart/', ['data/alsacontrol-daemon.desktop']),
    ],

PKGBUILD:

package() {
    cd "$srcdir"/"$_gitname"
    python3 setup.py install --root=$pkgdir
}

推荐阅读