第2.02节 下载源码
第2.02節(jié) 下載源碼
最新版本的sendmail可以通過(guò)以下方式獲得:
http://www.sendmail.org/
當(dāng)你下載源碼時(shí),你必須從所列的源碼中選擇滿足你的需求的一個(gè)。除了選擇你想要的sendmail的版本,你還要在兩種發(fā)布版本中選擇一種tar包的壓縮形式。那些以.Z結(jié)尾的是用unix命令compress壓縮的。
以.gz結(jié)尾的是用GNU工具gzip進(jìn)行壓縮的。后者更受歡迎,因?yàn)榘募「子趥鬏敗?/font>
除了兩種發(fā)布的形式外,每個(gè)版本帶有一個(gè)PGP簽名文件。在V8.11版本前,這個(gè)簽名用來(lái)驗(yàn)證解壓文件,也就是說(shuō)在你驗(yàn)證它之前要先解壓tar包。從V8.11版本起,每個(gè)壓縮包對(duì)應(yīng)一個(gè)簽名文件,因此,沒(méi)有必要在在驗(yàn)證之前解壓。
簽名文件與發(fā)布包文件同名但帶有一個(gè).sig后綴。
sendmail.8.14.1.tar.gz ? ? ? ? ?← the distribution file
sendmail.8.14.1.tar.gz.sig ? ? ?← the signature file for this distribution file
sendmail.8.14.1.tar.Z ? ? ? ? ? ← the distribution file
sendmail.8.14.1.tar.Z.sig ? ? ? ← the signature file for this distribution file
如果你對(duì)早期的sendmail版本還沒(méi)有驗(yàn)證,那么你現(xiàn)在就要從sendmail.org下載并安裝PGPKEYS文件:
ftp://ftp.sendmail.org/pub/sendmail/PGPKEYS
下載這個(gè)文件后,用下列命令將它所含的keys加到PGP key ring中:
pgp -ka PGPKEYS ? ? ?← for pgp version 2.x
pgpk -a PGPKEYS ? ? ?← for pgp version 5.x
gpg --import PGPKEYS ← for gpg
如果使用gpg命令,你的輸出可能看起來(lái)是這個(gè)樣子的:
% gpg --import PGPKEYS
gpg: key 16F4CCE9: "Sendmail Security <sendmail-security@sendmail.org>" 22 new
signatures
gpg: key 7093B841: public key "Sendmail Signing Key/2007 <sendmail@Sendmail.ORG>"
imported
gpg: key AF959625: "Sendmail Signing Key/2006 <sendmail@Sendmail.ORG>" 7 new
signatures
gpg: key 1EF99251: "Sendmail Signing Key/2005 <sendmail@Sendmail.ORG>" 9 new
signatures
gpg: key 95F61771: "Sendmail Signing Key/2004 <sendmail@Sendmail.ORG>" 7 new
signatures
gpg: key 396F0789: "Sendmail Signing Key/2003 <sendmail@Sendmail.ORG>" 27 new
signatures
gpg: key 678C0A03: "Sendmail Signing Key/2002 <sendmail@Sendmail.ORG>" 13 new
signatures
gpg: key CC374F2D: "Sendmail Signing Key/2001 <sendmail@Sendmail.ORG>" 14 new
signatures
gpg: key E35C5635: "Sendmail Signing Key/2000 <sendmail@Sendmail.ORG>" 5 new
signatures
gpg: key A39BA655: "Sendmail Signing Key/1999 <sendmail@Sendmail.ORG>" 4 new
signatures
gpg: key D432E19D: "Sendmail Signing Key/1998 <sendmail@Sendmail.ORG>" 4 new
signatures
gpg: key 12D3461D: "Sendmail Signing Key/1997 <sendmail@Sendmail.ORG>" 4 new
signatures
gpg: key A0F8AA0C: public key "Sendmail, Inc. Security Officer <security-
officer@sendmail.com>" imported
gpg: key BF7BA421: "Eric Allman <eric@allman.name>" 4 new user IDs
gpg: key BF7BA421: "Eric Allman <eric@allman.name>" 44 new signatures
gpg: key A00E1563: "Gregory Neil Shapiro <gshapiro@sendmail.com>" 48 new signatures
gpg: key 22327A01: "Claus Assmann (PGP2) <ca+pgp2@Sendmail.ORG>" 14 new signatures
gpg: Total number processed: 15
gpg: ? ? ? ? ? ? ? imported: 1
gpg: ? ? ? ? ? new user IDs: 4
gpg: ? ? ? ? new signatures: 222
gpg: 3 marginal(s) needed, 1 complete(s) needed, classic trust model
gpg: depth: 0 ?valid: ? 1 ?signed: ? 0 ?trust: 0-, 0q, 0n, 0m, 0f, 1u
注意看在前面所導(dǎo)入的最新的key是key7093B841(2007的簽名),用以下命令打印它的指紋來(lái)驗(yàn)證這個(gè)key是合法的。
% gpg --fingerprint 7093B841
pub ?1024R/7093B841 2006-12-16
? ? ?Key fingerprint = D9 FD C5 6B EE 1E 7A A8 ?CE 27 D9 B9 55 8B 56 B6
uid ? ? ? ? ? ? ? ? ?Sendmail Signing Key/2007 <sendmail@Sendmail.ORG>
然后與下列顯示出的合法指紋作比較:
18 A4 51 78 CA 72 D4 A7 ?ED 80 BA 8A C4 98 71 1D← Sendmail Security
CA AE F2 94 3B 1D 41 3C ?94 7B 72 5F AE 0B 6A 11← 1997
F9 32 40 A1 3B 3A B6 DE ?B2 98 6A 70 AF 54 9D 26← 1998
25 73 4C 8E 94 B1 E8 EA ?EA 9B A4 D6 00 51 C3 71← 1999
81 8C 58 EA 7A 9D 7C 1B ?09 78 AC 5E EB 99 08 5D← 2000
59 AF DC 3E A2 7D 29 56 ?89 FA 25 70 90 0D 7E C1← 2001
7B 02 F4 AA FC C0 22 DA ?47 3E 2A 9A 9B 35 22 45← 2002
C4 73 DF 4A 97 9C 27 A9 ?EE 4F B2 BD 55 B5 E0 0F← 2003
46 FE 81 99 48 75 30 B1 ?3E A9 79 43 BB 78 C1 D4← 2004
4B 38 0E 0B 41 E8 FC 79 ?E9 7E 82 9B 04 23 EC 8A← 2005
18 A4 51 78 CA 72 D4 A7 ?ED 80 BA 8A C4 98 71 1D← 2006
E3 F4 97 BC 9F DF 3F 1D ?9B 0D DF D5 77 9A C9 79← 2006
D9 FD C5 6B EE 1E 7A A8 ?CE 27 D9 B9 55 8B 56 B6← 2007
如果所下載的PGPKEYS文件的指紋列表中的不匹配,那么這個(gè)文件是不可靠的。
需要注意的是,一旦你在你的key ring中增加了一個(gè)正確的PGPKEYS文件,你就可以執(zhí)行下面的命令,任何新下載的源碼的完整性和可靠性可以通過(guò)這些命令來(lái)驗(yàn)證。
pgp signature-file distribution-file ? ? ? ? ? ? ← for pgp version 2.x
pgpv signature-file distribution-file ? ? ? ? ? ?← for pgp version 5.x
gpg --verify signature-file distribution-file ? ?← for gpg
如果tar包沒(méi)有問(wèn)題,gpg命令會(huì)顯示簽名是合法的。例如:
% gpg --verify sendmail.8.14.1.tar.gz.sig sendmail.8.14.1.tar.gz
gpg: Signature made Tue Jan 09 12:11:36 2007 PST using RSA key ID 7093B841
gpg: Good signature from "Sendmail Signing Key/2007 <sendmail@Sendmail.ORG>"
Primary key fingerprint: D9 FD C5 6B EE 1E 7A A8 ?CE 27 D9 B9 55 8B 56 B6
上面的短語(yǔ)Good signature意味著發(fā)布的文件是完整可靠的并且在簽名后沒(méi)有被修改。另一種預(yù)防措施是確認(rèn)上面所顯示的指紋與官方之前發(fā)布的指紋是否匹配。
除了正確的輸出信息,你也許也會(huì)碰巧遇見關(guān)于自身設(shè)置的warnings。例如,下列warns和本地gpg命令設(shè)置有關(guān),而與發(fā)布版本的合法性無(wú)關(guān)。
gpg: checking the trustdb
gpg: checking at depth 0 signed=0 ot(-/q/n/m/f/u)=0/0/0/0/0/1
gpg: WARNING: This key is not certified with a trusted signature!
gpg: ? ? ? ? ?There is no indication that the signature belongs to the owner.
如果驗(yàn)證失敗,那么檢查可能的錯(cuò)誤:
每個(gè)版本的簽名與對(duì)應(yīng)的tar包相匹配。重新取得匹配正確的版本。
使用ftp命令下載時(shí),要確定使用二進(jìn)制模式。用正確的模式重新取得版本。
所相信的映像FTP站點(diǎn)可能不像我們所期望的正式。如果它們發(fā)布的版本不能通過(guò)驗(yàn)證,那么從官方站點(diǎn)重新取得之前發(fā)布的版本。
官方發(fā)布的版本可能出現(xiàn)問(wèn)題。如果這個(gè)版本不能通過(guò)驗(yàn)證,那么先檢查一下你的PGP復(fù)本是否安裝正確,然后確認(rèn)一下你的網(wǎng)絡(luò)暢通并且沒(méi)有被損壞。如果上述方法都不起作用(包括重新取得發(fā)布版本),在郵件中描述你的問(wèn)題發(fā)送給sendmail@sendmail.org的相關(guān)人員。
轉(zhuǎn)載于:https://blog.51cto.com/01051192/813123
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的第2.02节 下载源码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 开源Linux 3.3内核首次融合And
- 下一篇: 触发器before和after的区别