首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最新的libinput在ubuntu上

最新的libinput在ubuntu上
EN

Ask Ubuntu用户
提问于 2018-09-11 11:23:42
回答 1查看 3K关注 0票数 11

我主要来自Fedora和Archlinux,我曾经在合理的时间内拥有最新的libinput。目前,在ubuntu18.04上,我不知道如何在我的机器上使用最新的libinput,例如1.12。是否有ppa或有人试图从源头安装它,而不破坏整个系统?

我不介意编译它,但我没有受过良好的教育,在测试它,并确保它与其他软件包一起正常工作。有了ThinkPad TrackPoint,我觉得拥有最新的libinput是至关重要的!

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2021-01-07 00:31:38

这是另一个答案,但已经一个月前作者删除了它。让我们写一个新的。

希望有一天会有人用最新的libinput来制造PPA。在此之前,下面是关于自己构建一个最新的libinput包的说明。

很简单,下面的说明主要是从这里取走,关于介子的提示是从删除的答案中提取的。我还假设您不需要生成文档,所以我不会为它们安装依赖项,并在meson调用中禁用它们。对于--prefix来说,在介子配置线上是usr也很重要,所以库被安装到标准位置。

Step1:安装构建依赖项

希望我没有错过任何一个,但如果我错过了,请随时发表评论。

代码语言:javascript
复制
$ sudo apt install -y git ninja-build
$ sudo apt build-dep libinput

您还需要meson。它在Ubuntu中,但是在下一个命令中,我用pip安装它。原因是:由于Ubuntu主要提供古老的软件,他们的介子版本可能太老,无法构建libinput。ATMUbuntu18.04已知存在这个问题,但我认为随着时间的推移,其他版本也可能会出现这种情况。

代码语言:javascript
复制
$ sudo apt install python3-pip
$ sudo pip3 install meson

Step2:克隆和构建libinput

代码语言:javascript
复制
$ git clone https://gitlab.freedesktop.org/libinput/libinput
$ cd libinput
$ meson --prefix=/usr -Ddocumentation=false build/
$ ninja -C build/

Step3:创建libinput包并安装

虽然安装内置libinput的最简单方法是运行ninja -C build install,但我强烈反对它,除非您知道自己在做什么(系统更新时可能会覆盖整个系统中的未跟踪文件,甚至可能会完全破坏libinput )。

相反,使用我写的剧本来组装一个包。

代码语言:javascript
复制
$ wget https://gist.githubusercontent.com/Hi-Angel/45030ab89a2378b42511612cbe48d247/raw/package-deb-libinput.sh
[…]
$ bash ./package-deb-libinput.sh  build/
[…]
dpkg-deb: building package 'libinput-git' in 'libinput_1.15.3-212-g60edbd2d.deb'.

您可以在脚本输出中看到新包的名称,因此只剩下安装它(注意:需要路径中的./部件使apt将参数正确解释为本地文件):

代码语言:javascript
复制
$ sudo apt install -y ./build/libinput_1.15.3-212-g60edbd2d.deb

要使用已安装的libinput,您需要重新启动图形会话(例如,重新启动)。

恢复到较老的libinput

如果您想拿回发行版提供的libinput,只需安装libinput10包(它将取代libinput-git__):

代码语言:javascript
复制
$ apt install -y libinput10

附录

如果github gist发生了什么事情,下面是脚本的当前内容:

代码语言:javascript
复制
#!/bin/bash
set -e

if [ "$#" -ne 1 ]; then
    echo "Wrong number of parameters.
Usage: $(basename $0) build_dir"
    exit 1
fi

MESON_BUILD_ROOT=$(readlink -f $1)
PACKAGE_VERSION=$(grep -Po 'LIBINPUT_GIT_VERSION.*"\K.+(?=")' "$MESON_BUILD_ROOT"/libinput-git-version.h)
PKG_DIR="$MESON_BUILD_ROOT"/deb
mkdir -p $PKG_DIR/DEBIAN/
cat > $PKG_DIR/DEBIAN/control <<- END_OF_TEXT
PACKAGE: libinput-git
Version: $PACKAGE_VERSION
Architecture: amd64
Maintainer: Mystique Packager
Description: input device management and event handling library
Depends: libevdev2, libmtdev1, libudev1, libwacom2
Conflicts: libinput10, libinput-bin, libinput-dev, libinput-tools
Provides:  libinput10, libinput-bin, libinput-dev, libinput-tools
Homepage: https://gitlab.freedesktop.org/libinput/libinput
END_OF_TEXT

cd "$MESON_BUILD_ROOT"
DESTDIR=$PKG_DIR ninja install
fakeroot dpkg-deb --build $PKG_DIR/ libinput_$PACKAGE_VERSION.deb
票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1074244

复制
相关文章

相似问题

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