如何编译 LESS 寻呼机?

Igo*_*nko 2 compiling less

我想less用最新的修复程序进行编译。

我这样做:

git clone https://github.com/gwsw/less
cd less/
autoheader
autoconf
./configure
make
Run Code Online (Sandbox Code Playgroud)

但是这样make说:

make: *** No rule to make target 'funcs.h', needed by 'main.o'. Stop.
Run Code Online (Sandbox Code Playgroud)

没有创建的 Makefile 规则 funcs.h

那么,如何less从源代码编译呢?

Ste*_*itt 5

正如Thomas Dickey 的回答中所述,git 存储库在用于构建之前需要进行准备,并且无法使用提供的文件重新创建所需的文件。

要减少构建,请下载其最新版本的 tarball并构建:

wget http://greenwoodsoftware.com/less/less-530.tar.gz
tar xf less-530.tar.gz
cd less-530
./configure && make
Run Code Online (Sandbox Code Playgroud)

但是请注意,版本 530 有一些烦人的错误,这些错误已在 git 存储库中修复。(这可能是 Debian 软件包尚未更新的原因。)

或者,您可以更新 Debian 软件包:

sudo apt build-dep less
sudo apt install devscripts
apt source less
cd less-487
uscan
cd ..
tar xf less_530.orig.tar.gz
cd less-530
cp -a ../less-487/debian .
dch -v 530-0.1 "New upstream release."
dch -r ignored
debuild -uc -uc
Run Code Online (Sandbox Code Playgroud)

这将产生一个less_530-0.1_yourarch.debyourarch可能是amd64),您可以使用sudo dpkg -i. 正如JdeBP 指出的那样,这将确保应用 Debian 补丁并使用适当的configure选项;它还将为您提供使用软件包而不是手动安装的好处。

对于gbp像我这样的粉丝,以下配方使用了一个 git 存储库,这使得任何更改都更加明显:

sudo apt build-dep less
sudo apt install devscripts git-buildpackage
gbp import-dsc --pristine-tar apt://less/sid
cd less
gbp import-orig --pristine-tar --uscan
dch -v 530-0.1 "New upstream release."
dch -r ignored
gbp buildpackage -us -uc --git-ignore-new
Run Code Online (Sandbox Code Playgroud)

(在这两种情况下,严格来说,您应该使用dch -nand dch -v,或者至少在变更日志中添加“非维护者上传”,但这很难以可复制的方式进行。)