本地运行 Open Build Service 的 _service 踩坑

在本地使用 osc 命令拉取的时候,大概率会遇到以下错误:

Error: Package ('obs-service-tar_scm_kernel_repo',) is required for this operation

我们需要手动安装这个 Pacakge,以下教程在 Ubuntu 22.04 LTS 上测试通过:

$ git clone https://github.com/openSUSE/obs-service-tar_scm.git
$ cd obs-service-tar_scm
$ sudo make install
$ # 此时有可能遇到 ModuleNotFoundError: No module named 'dateutil' 这个错误
$ sudo apt install python3-dateutil

此时应该就无问题了。如果要使用 osc up -s 在本地下载源的话,还需要做以下的操作

$ git clone https://github.com/openSUSE/obs-service-download_url.git
$ sudo cp obs-service-download_url/download_url /usr/lib/obs/service/
$ sudo cp obs-service-download_url/download_url.service /usr/lib/obs/service/

大功告成。osc up -sosc up -S 有什么区别呢?可以从 manpage 发现,前者是在本机上运行 _service 文件,后者是从 obs 实例上下载文件。


如果喜欢本文,欢迎点击下方的「鼓掌」按钮!

如果上面没有加载出任何东西,可以点击这里