Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
存在于arch linux的PKGBUILD中的文件系统(由文件系统所有)_Linux_Bash_Archlinux_Pkgbuild - Fatal编程技术网

存在于arch linux的PKGBUILD中的文件系统(由文件系统所有)

存在于arch linux的PKGBUILD中的文件系统(由文件系统所有),linux,bash,archlinux,pkgbuild,Linux,Bash,Archlinux,Pkgbuild,我正在尝试用PKGBUILD构建我自己的mariaDB-arch-linux包,我有一些二进制文件需要安装。我有一个bash脚本(arch-linux-PKGBUILD),它运行fime并创建pkg.tar文件。当我尝试用pacman安装它时,我得到以下信息:- %sudo pacman -U mariadb-bin-10.3.7-1-x86_64.pkg.tar :( loading packages... resolving depende

我正在尝试用PKGBUILD构建我自己的mariaDB-arch-linux包,我有一些二进制文件需要安装。我有一个bash脚本(arch-linux-PKGBUILD),它运行fime并创建pkg.tar文件。当我尝试用pacman安装它时,我得到以下信息:-

%sudo pacman -U mariadb-bin-10.3.7-1-x86_64.pkg.tar                           :(
loading packages...
resolving dependencies...
looking for conflicting packages...

Packages (1) mariadb-bin-10.3.7-1

Total Installed Size:  539.71 MiB

:: Proceed with installation? [Y/n] y
(1/1) checking keys in keyring                                         [########################################] 100%
(1/1) checking package integrity                                       [########################################] 100%
(1/1) loading package files                                            [########################################] 100%
(1/1) checking for file conflicts                                      [########################################] 100%
error: failed to commit transaction (conflicting files)
mariadb-bin: /usr/lib64 exists in filesystem (owned by filesystem)
mariadb-bin: /usr/sbin exists in filesystem (owned by filesystem)
Errors occurred, no packages were upgraded.
这是我的PKGBUILD文件:-

# This is an example PKGBUILD file. Use this as a start to creating your own,
# and remove these comments. For more information, see 'man PKGBUILD'.
# NOTE: Please fill out the license field for your package! If it is unknown,
# then please put 'unknown'.

# Maintainer: Your Name <youremail@domain.com>
pkgname='mariadb-bin'
pkgver=10.3.7
pkgrel=1
pkgdesc="MariaDB for arch linux"
arch=('x86_64')
url="http://mirror.truenetwork.ru/mariadb/"
license=('GPL')
groups=()
depends=()
makedepends=()
checkdepends=()
optdepends=()
provides=("mariadb=${pkgver}")
conflicts=('mariadb')
replaces=()
backup=('etc/mysql/my.cnf',
        'etc/mysql/wsrep.cnf')
options=()
install=mariadb-bin.install
changelog=
source=()
noextract=()
md5sums=()
validpgpkeys=()

prepare() {
    echo "I am prepare fn";
    pwd
}


build() {
    echo "I am buid fn ";
    pwd
}

check() {
    echo "I am check fn";
    pwd
}

package() {
    echo "I am package fn";
    cp ../usr ${pkgdir} -r
    cp ../etc ${pkgdir} -r
    pwd
    cd ${pkgdir}
    find ${pkgdir}/ -name *.so -exec chmod 777 {} \;
    chmod 755 ${pkgdir}/usr/bin/*
}
#这是一个示例PKGBUILD文件。以此为起点,创建自己的,
#并删除这些评论。有关更多信息,请参阅“man PKGBUILD”。
#注意:请为您的软件包填写许可证字段!如果不知道,,
#那么请输入“未知”。
#维护者:你的名字
pkgname='mariadb-bin'
pkgver=10.3.7
pkgrel=1
pkgdesc=“MariaDB for arch linux”
arch=('x86_64')
url=”http://mirror.truenetwork.ru/mariadb/"
许可证=('GPL')
组=()
依赖=()
makedepends=()
检查依赖项=()
optdepends=()
提供=(“mariadb=${pkgver}”)
冲突=('mariadb')
替换=()
备份=('etc/mysql/my.cnf',
'etc/mysql/wsrep.cnf')
选项=()
install=mariadb-bin.install
变更日志=
来源=()
noextract=()
md5sums=()
validpgpkeys=()
准备(){
呼应“我在准备fn”;
pwd
}
构建(){
呼应“我是天生的”;
pwd
}
检查(){
呼应“我在检查fn”;
pwd
}
包(){
回声“我是包裹fn”;
cp../usr${pkgdir}-r
cp../etc${pkgdir}-r
pwd
cd${pkgdir}
查找${pkgdir}/-name*.so-exec chmod 777{};
chmod 755${pkgdir}/usr/bin/*
}

我该怎么办?我知道这个问题更多地适用于arch论坛,但因为我们可以询问bash和shell脚本,所以..

arch Linux在中实现了,从那时起,arch Linux包需要使用libdir“/usr/lib”和sbindir“/usr/bin”。如果不这样做,则尝试安装的文件将与磁盘上的符号链接冲突,pacman不允许这样做

您需要修复
package()
函数中的目录位置

如您所见,这实际上与bash脚本无关,而与pacman的打包格式和策略的性质有关