簡単なソースコードの修正を完了し、Raspberry Pi OS(ブルスアイマシン)で再構築しました。これは私にとって新しいものなので、あいまいさを避けるために私が従ったステップをリストします。
$ dhcpcd --version
dhcpcd 8.1.2 # "before" version
$ sudo apt install devscripts # build tools for using `debuild`
$ apt-get source dhcpcd5 # creates source tree ~/dhcpcd5-8.1.2; Debian git repo is far off!
$ cd dhcpcd5-8.1.2 # cd to source dir
$ nano src/dhcp.c # make required changes to the source (one line)
~/dhcpcd5-8.1.2 $ debuild -b -uc -us # successful build
$ cd ..
$ sudo dpkg -i dhcpcd5_8.1.2-1+rpt5_armhf.deb # install .deb file created by debuild
$ dhcpcd --version
dhcpcd 8.1.2 # "after" version
$
すべてが大丈夫ですが、「以前」と「以降」のバージョン番号はまったく同じなので、私のバージョン番号があるかどうかはわかりません。修正済みコードが実行されるか、校正されていないパスワード。インストールします 修正済み.debファイルは複数のホストに転送され、他のホストなどから要求を受け取ることもできるので考えました。特定の方法で簡単に区別するため修正済み~から校正されていないパスワード。
を使用すると、dhcpcd --version
これを行う簡単な方法のようです。 Debian にはバージョン番号に関する規則があることを読みましたが、「世界」には公開しないので、形式的である必要はないと思います。また、私はDebianリポジトリにフルリクエスト/マージリクエストを送信し、この問題についてRPi組織にアドバイスを提供しました。私はどちらからもフィードバックを受けませんでしたが、このバグは私に大きな迷惑をかけました。私はdhcpcd
「正しい」バージョン番号を持つ新しいバージョンを待ちたくありません。
原因になるにはどうすればよいですか?修正済みdhcpcd
報告されたバージョンdhcpcd 8.1.2.1
- またはそのようなもの?
明確にするために編集:
に基づいてこの回答、私が編集したものですdhcpcd5-8.1.2/debian/changelog
。これを変更すると、ユーティリティはapt
次のバージョンを一貫して報告します。dhcpcd
8.1.3
$ apt-cache policy dhcpcd5
dhcpcd5:
Installed: 1:8.1.3-1+rpt1
Candidate: 1:8.1.3-1+rpt1
Version table:
*** 1:8.1.3-1+rpt1 100
100 /var/lib/dpkg/status
1:8.1.2-1+rpt1 500
500 http://archive.raspberrypi.org/debian buster/main armhf Packages
7.1.0-2 500
500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages
$ #
$ dpkg -s dhcpcd5 | grep Version
Version: 1:8.1.3-1+rpt1
$
まだ:dhcpcd --version
まだ見ています8.1.2
。dhcpcd
エイリアスはdhcpcd5
にあります/etc/alternatives
。だからdhcpcd --version
実際にdhcpcd5 --version
はそうです。現れるdhcpcd5
実行可能ファイルはユーティリティ--version
とは異なるソースから来ますapt
。 ?
編集2:
結果レポートのバージョン番号は次のように定義dhcpcd --version
されますdefs.h
。
#define PACKAGE "dhcpcd"
#define VERSION "8.1.2"
私考える dhcpcd
少し異常値。 RPiチームは、バージョン8.1.2以降、複数のアップストリームバージョンがあるにもかかわらず、リリース時に(数年前)アップストリームバージョン9を放棄し、バージョン8.1.2に固執することを決定したようです。より混乱しているのは、ファイルがGitリポジトリとして.dsc
リストされていますが、実際にはバージョン7で停止していることです。Vcs-Browser: https://salsa.debian.org/smlx-guest/dhcpcd5
これは私にとってあまり意味がありません。それが私がパッケージマネージャではない理由の1つだと思います。 :)
答え1
上部に関連行を追加できますdebian/changelog
(検索ここファイル内容の詳細)。
現在の上部セクションをコピーしてバージョン番号を変更できます(有用なログコメントを作成することをお勧めします)。
dch
または、次のツール(から)を使用できますdevtools
。
dch --local your_package_name
インストールが完了したら、次の方法を使用してインストールされているパッケージのバージョンを確認できます。代替)
dpkg -l dhcpcd5
アップストリームバージョン識別子は常に正式に存在しないため、自動的にインポートすることはできません(例:python3-lzss)これを行うと、制限と注文と互換性がない可能性があります。パッケージシステムバージョン。たとえば、epoch
アップストリームバージョンからDebianバージョンに移行する必要がある場合があります。