首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PKGBUILD和make all

PKGBUILD和make all
EN

Stack Overflow用户
提问于 2016-02-18 09:39:23
回答 2查看 1.5K关注 0票数 1

我正在为一个github项目为AUR编写一个PKGBUILD,该项目由几个子应用程序组成。

因此,基本上,这个项目的CMake文件只是运行一个make &&。

以下是我的构建和包步骤:

代码语言:javascript
复制
build() {
  cd "$srcdir/$_gitname"
  [[ -d build ]] && rm -r build
  mkdir build && cd build
  cmake -DCMAKE_INSTALL_PREFIX=/opt/od ..
}

package() {
  cd "${_gitname}/build"
  sudo make all
}

我现在的问题是,除了:

  • makepkg -i从不在构建过程中要求sudo的权利(因此我不得不在make前面添加sudo )。
  • 当要求安装时,makepkg不承认软件包的大小。因此,在运行packman -R packagename时,包也不会卸载。

但是,我不能更改CMake文件,因为这个项目不是我的,所有不同的子应用程序都属于一起,如果我尝试做&&让分别安装它们,我会得到很多错误,它们是相互依赖的。

EN

回答 2

Stack Overflow用户

发布于 2016-02-19 02:47:14

包函数无法安装到根层次结构中。相反,makepkg打算安装到fakeroot下的pkgdir中,其中pkgdir复制了实际的根目录结构。见ArchWiki/创建包

可以通过将DESTDIR="$pkgdir/"添加到包函数中的make选项来实现这一点。

当在创建的包上调用pacman时,它会将文件复制到实际的根层次结构中。

票数 0
EN

Stack Overflow用户

发布于 2021-08-20 05:29:55

像枫树一样

代码语言:javascript
复制
package()
{
    cd "$pkgname"
    DESTDIR="$pkgdir" cmake --install out 
} 

这将安装到$pkgdir中,然后打包到zst文件中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35477739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档