我想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
从源代码编译呢?
正如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.deb
(yourarch
可能是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 -n
and dch -v
,或者至少在变更日志中添加“非维护者上传”,但这很难以可复制的方式进行。)