为什么 Aegisub 在 Ubuntu 中不再可用?

为什么 Aegisub 在 Ubuntu 中不再可用?

我最近更新到了 Bionic Beaver,但 Aegisub 不再在 Ubuntu 存储库中可用。

我不知道还有其他选择,而且这也不是我第一次在升级时丢失程序 :(

有人知道吗:

  1. 为什么它被从 Ubuntu 存储库中删除了?
  2. 有没有我可以使用而无需添加第三方存储库的替代方案?

谢谢〜

答案1

我找不到任何关于 Aegisub 消失的原因,尽管我相信它是从 Debian Buster(Bionic Beaver 所基于的)中删除的。

更新弗克莱姆找到了相关的 Debian 条目相关错误报告

尽管 Debian 在“Buster”上存在问题,但我还是设法在 Bionic Beaver 上编译了自己的 Aegisub 副本。这是一个很好的选择,可以让您重新获得对该应用程序的访问权限没有使用第三方存储库。

由于它是一个较旧的应用程序,因此需要使用 sed 对源代码进行一些处理,否则实际上只有2 个简单步骤采取:

1.依赖项和构建工具:

复制并粘贴此全部的代码块放入终端窗口来下载并安装一些所需的依赖项和构建工具:

sudo apt-get install build-essential checkinstall libx11-dev libwxgtk3.0-gtk3-dev \
libfreetype6-dev pkg-config libfontconfig1-dev libass-dev libboost1.62-all-dev \
liblua50-dev libasound2-dev libffms2-dev intltool

2.下载、编译并安装源:

将以下行复制并粘贴到终端窗口中,以下载、提取、修改、编译和安装 Aegisub 源:

mkdir -v $HOME/aegisub_build && cd $HOME/aegisub_build
wget http://ftp.aegisub.org/pub/archives/releases/source/aegisub-3.2.2.tar.xz
tar xvf aegisub-3.2.2.tar.xz && cd aegisub-3.2.2
sed -i 's/$(LIBS_BOOST) $(LIBS_ICU)/$(LIBS_BOOST) $(LIBS_ICU) -pthread/' tools/Makefile
sed -i '46 a\#include <unicode/unistr.h>' src/utils.cpp
CPPFLAGS="-DU_USING_ICU_NAMESPACE=1" ./configure && make -j 2
sudo checkinstall -D --install=yes --fstrans=no --pakdir "$HOME/aegisub_build" \
   --pkgname aegisub --backup=no --deldoc=yes --deldesc=yes --delspec=yes --default \
   --pkgversion "3.2.2"

sed 的魔力来自多个来源,看起来 Arch 和 Slackware 都让应用程序保持活力:)。

3.截图:

最后一张截图证明 Aegisub 在我的 Bionic 系统上成功运行:

在此处输入图片描述

答案2

好吧,您提出的解决方案是使用 aegisub 源提供的供应商源 luajit,该源可追溯到 ~ 2014 年。在 Debian 和 Ubuntu 中,我们使用系统安装的库来构建 aegisub 包,这些库由开发人员定期升级。这意味着从现在开始,我们使用 luajit 版本 2.1.0 而不是版本 2.0.x。通常的程序是使用这些库的应用程序的开发人员更新他们的代码。但是,aegisub 不再受到其开发人员的支持……

与之前的 2.0.x 版本的 luajit 库相比,C 代码解释似乎有一些差异。阻塞错误来自文件 vendor/luabins/src/luabins.c

/* luabins Lua module API */
static const struct luaL_reg R[] =
{
  { "save", l_save },
  { "load", l_load },
  { NULL, NULL }
};

给出上面提到的错误:

aegisub/aegisub-3.2.2/vendor/luabins/src/luabins.c:57:30: error: array type has incomplete element type ‘struct luaL_reg’
 static const struct luaL_reg R[] =
                              ^
/home/ubuntu-xenial/pascal/Downloads/Launchpad/aegisub/aegisub-3.2.2/vendor/luabins/src/luabins.c:57:30: warning: ‘R’ defined but not used [-Wunused-variable]
Makefile.target:99: recipe for target '/home/ubuntu-xenial/pascal/Downloads/Launchpad/aegisub/aegisub-3.2.2/vendor/luabins/src/luabins.o' failed

即使针对 lua5.2 而不是 lua5.1 进行构建,错误仍然存​​在。

因此,由于 Debian 包管理器无法联系任何 aegisub 开发人员来请求更新,该应用程序已从 Debian 存储库中删除。

欲了解更多参考信息,请参阅:

Lua 5.2 兼容性 数组元素的类型不完整

相关内容