如何在存储库中有 v0.4.6 的 12.04 上获取 GPAC v0.5.0?

如何在存储库中有 v0.4.6 的 12.04 上获取 GPAC v0.5.0?

我目前正在开发一个需要流媒体视频的 Web 应用程序,我在 AWS 上使用 EC2 实例,上面运行着 Ubuntu 12.04 LTS。由于我需要对视频进行转码,因此我希望安装亚太地区政策咨询委员会但是 0.5.0 包

apt-get install gpac

安装版本 0.4.6 时,由于分段错误,某些功能无法使用。在我自己运行 Ubuntu 12.10 的桌面上,我可以使用相同的命令正确安装 0.5.0 并正确转码我的视频。

基本上,我的问题是,我是否可以期待在 12.04 LTS 上为 Ubuntu 发布 GPAC 0.5.0 软件包,或者是否有其他解决方法来获取较新的版本,而不是使用源代码(这显然是由于 Mozzila 更新了软件包所依赖的库的部分内容而导致的)。任何帮助或见解都将不胜感激。

答案1

不要从上游源代码构建,而是尝试为 12.04 构建 12.10 的包。

警告:这个包似乎严重损坏……不要指望它能构建出漂亮干净的版本。一个“漂亮”的包应该只用 构建debuild,而这个包却不是。

  1. echo 'DSCVERIFY_KEYRINGS="/etc/apt/trusted.gpg:~/.gnupg/pubring.gpg"' > ~/.devscripts因为已添加密钥,但 dget 仍然显示“gpg:无法检查签名:未找到公钥”

  2. gpg --keyserver keyserver.ubuntu.com --recv-key 311D765A这是下面验证源包的关键。

  3. dget http://archive.ubuntu.com/ubuntu/pool/universe/g/gpac/gpac_0.5.0~dfsg0-1.dsc下载源码包。

  4. cd gpac-0.5.0~dfsg0/

  5. debuild -uc -us未能预期(下面的例子!):

    dpkg-checkbuilddeps: Unmet build dependencies: freeglut3-dev liba52-0.7.4-dev libavcodec-dev libavformat-dev libfaad-dev libjack-dev libmad0-dev libogg-dev libopenjpeg-dev libpulse-dev libsdl1.2-dev libswscale-dev libtheora-dev libvorbis-dev libwxgtk2.8-dev libxmlrpc-c3-dev libxvidcore-dev
    
  6. 安装构建依赖项(从获得的输出中满足以上所有内容),例如:

    sudo apt-get install freeglut3-dev liba52-0.7.4-dev libavcodec-dev libavformat-dev libfaad-dev libjack-dev libmad0-dev libogg-dev libopenjpeg-dev libpulse-dev libsdl1.2-dev libswscale-dev libtheora-dev libvorbis-dev libwxgtk2.8-dev libxmlrpc-c3-dev libxvidcore-dev
    
  7. 降级到 Ubuntu 12.04 附带的 Firefox 11.0。(丑陋,但需要构建它!构建完成后再进行升级...)

    sudo apt-get install firefox=11.0+build1-0ubuntu4 firefox-dev=11.0+build1-0ubuntu4 firefox-globalmenu=11.0+build1-0ubuntu4
    
  8. 修复链接器配置以指向 Firefox 的库(也很丑):

    echo "/usr/lib/firefox" | sudo tee -a /etc/ld.so.conf.d/firefox-gpac.conf
    sudo ldconfig
    
  9. 再试一次:(debuild -uc -us编译需要一段时间)

  10. 在下面的一个目录中,cd ..您会找到您的包。

  11. 安装它们:

    sudo dpkg -i *gpac*.deb
    

注意:debuild clean构建失败后不会清除所有内容(错误!!)。删除整个目录并从dget命令中重新开始。


与单纯从源头构建相比,其优势如下:

  • 它会告诉您包名称未满足哪些构建依赖项。
  • 卸载它真的很容易。
  • 一切都由您的包管理处理。

如果不恢复到 Firefox 11.0,我将无法0.5.0在 12.04 中获得编译,因为出现以下错误:

scenegraph/vrml_smjs.c: In function ‘JS_InitScriptFields’:
scenegraph/vrml_smjs.c:4239:4: warning: passing argument 6 of ‘JS_DefineProperty’ from incompatible pointer type [enabled by default]
/usr/include/firefox/jsapi.h:4458:1: note: expected ‘JSStrictPropertyOp’ but argument is of type ‘JSBool (*)(struct JSContext *, struct JSObject *, jsid,  JSBool,  union jsval *)’
make[2]: *** [scenegraph/vrml_smjs.o] Error 1

安装 Firefox 11(而不是 18)后,出现其他错误:

../../bin/gcc/libgpac.so: undefined reference to `JS_NewCompartmentAndGlobalObject'
../../bin/gcc/libgpac.so: undefined reference to `JS_GC'
../../bin/gcc/libgpac.so: undefined reference to `JS_ConvertStub'
../../bin/gcc/libgpac.so: undefined reference to `JS_SetRuntimeThread'
[...] much more...
collect2: ld returned 1 exit status
make[3]: *** [MP4Client] Error 1

您需要修复链接器配置(ld.conf.so.d/firefox-gpac.conf步骤)。

答案2

为什么不从 GPAC Nightly Builds 网站获取您需要的版本呢?

https://gpac.wp.mines-telecom.fr/downloads/gpac-nightly-builds/

相关内容