"tmux" 패키지를 컴파일하는 동안 "$tmux -V"에 의해 보고된 버전 번호를 어떻게 설정합니까?

"tmux" 패키지를 컴파일하는 동안 "$tmux -V"에 의해 보고된 버전 번호를 어떻게 설정합니까?

나는 컴파일 중이다멀티플렉서다음과 같은 스크립트를 통해 소스 코드에서 가져옵니다.

set -e
DIR="${HOME}/Programs/"
build() {
  [[ -d "${DIR}" ]] || mkdir -p "${DIR}"
  cd "${DIR}"
  if [[ ! -d tmux ]]; then
    git clone https://github.com/tmux/tmux
  fi
  cd tmux
  git stash
  git checkout master
  git pull
  make clean; make distclean
  sh autogen.sh
  ./configure
  make
}
install() {
  dpkg -r tmux
  checkinstall --pkgname tmux --pkgversion '9999:9999.9999' -y
}
build
install

예상대로 tmux를 컴파일하고 설치합니다.
그러나 보고된 버전에는 여전히 문제가 있습니다 $ tmux -V.

$ tmux -V
tmux master

tmux master내가 선호하지만 tmux X.Y최신 X.Y버전인 버전을 보고합니다 . 예를 들어 현재 최신 버전은2.8$ tmux -V, 그래서 출력 하고 싶습니다 tmux 2.8.

이 출력을 변경할 수 있는 방법이 있나요?

tmux 프로세스 버전을 설정하는 옵션 의 출력을 보고 ./configure --help검색했지만 찾을 수 없습니다.

현재 sed스크립트에 명령을 포함시켜 자동으로 파일을 편집 configure.ac하고 큰 버전 번호를 할당했습니다 99.99(프로그래밍 방식으로 최신 버전의 버전 번호를 얻는 방법을 모르겠습니다).

sh autogen.sh
sed -i 's/AC_INIT(tmux, master)/AC_INIT(tmux, 99.99)/' configure.ac
./configure

더 좋은 방법이 있나요?


내가 이 질문을 하는 이유는 내가 사용하기 때문이다.tmux-오픈$ tmux -V플러그인 출력 시 예상대로 작동하지 않습니다 tmux master.

후자는이 코드 줄현재 tmux 프로세스의 버전을 확인합니다.

$ tmux_version="$(tmux -V | cut -d ' ' -f 2)"

그런 다음 플러그인은 이 변수를 사용합니다.키 바인딩을 설치하는 명령의 구문을 결정합니다..

내 컴퓨터에 키 바인딩이 설치되어 있지 않습니다 $ tmux -V. 교체하면 .이 줄플러그인에서:

if [[ $tmux_version == $1 ]]

다음 줄을 사용하세요.

if [[ $tmux_version == $1 ]] || [[ $tmux_version == 'master' ]]

그러면 플러그인이 키 바인딩을 올바르게 설치합니다.

답변1

다음과 같은 행을 삽입하십시오.

sed '/AC_INIT/s/master/m4_esyscmd_s([git describe])/' -i configure.ac

sh autogen.sh스크립트를 호출하기 전에.

답변에 따르면여기

관련 정보