[实践OK]FreeBSD 11.1下的md5和Linux下的md5sum不一样输出格式统一成md5deep以及自己编译出Linunx一样的md5sum可执行文件的瞎折腾。 不指定

jackxiang 2018-5-10 15:10 | |
背景:公司网不好传入rz -bye的稍微大点的文件就断开了,再运行rz -bye,还会继续重头再传(只要失败再SSH上去运行rz -bye就会继续传,和默认SSH的目录无关,这个有点意思,但要是rz -bye支持断点上传就好了。),于是这就有一个比对文件是否是真的传上去了的md5sum比对,而Linux下有md5sum filename,FreeBSD下有md5,但输出格式和Linux下的不大一样,但都是求Md5,于是找了找,发现一个叫md5deep的可以Port安装,输出还和Linux下的一样,相当友好,偶尔会用到,记录三种都能达到目录,个人认为以第二种较为精简有力,符合Linux思想,现在用FreeBSD多吗?嘿嘿。

零)系统自己默认的md5也能求出文件内容的md5值:
md5 harbor-offline-installer-v1.2.0.tgz
MD5 (harbor-offline-installer-v1.2.0.tgz) = 235fcfb9fe00ad61f6cbc2de4920b477
#which md5
/sbin/md5
#ln -sf /sbin/md5 /sbin/md5sum  #作个软链接且名字修改成md5sum
#md5sum harbor-offline-installer-v1.2.0.tgz  #SecureCRT下新开SSH窗口:
MD5 (harbor-offline-installer-v1.2.0.tgz) = 235fcfb9fe00ad61f6cbc2de4920b477

==== 上面格式和Linux有点出入,找到一个和Linux一样的类似md5sum的Port安装包命令md5deep====

一)/usr/port/security/md5deep
make && make install
上面这个md5deep的输出和Linux的md5sum一样的:
On FreeBSD:
#md5deep /opt/harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477  /opt/harbor-offline-installer-v1.2.0.tgz

On Linux:
#md5sum  harbor-offline-installer-v1.2.0.tgz  
235fcfb9fe00ad61f6cbc2de4920b477  harbor-offline-installer-v1.2.0.tgz


于是这样:
#which md5deep
/usr/local/bin/md5deep
#rm -rf  /sbin/md5sum    #删除前面的软链接。
vi /root/.cshrc
alias md5sum '/usr/local/bin/md5deep'

#which md5sum
md5sum:          aliased to /usr/local/bin/md5deep

重新开一个FreeBSD的终端,和Linux一样运行md5sum filename获取文件内容的md5值:
#md5sum harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477  /opt/harbor-offline-installer-v1.2.0.tgz



二)/usr/ports/sysutils/coreutils
make clean
make deinstall
make && make install
弹出一个窗体,选取消:
coreutils-8.25.tar.xz                          12% of 5590 kB  382 kBps 00m20s
md5sum is part of GNU coreutils. The FreeBSD port to install is sysutils/coreutils. This will install all the GNU coreutils with a g prefix, so md5sum will be available as gmd5sum.
安装完后,md5sum生成在这个位置,直接拷贝到/usr/local/bin下面得了:
/usr/ports/sysutils/coreutils/work/coreutils-8.25/src/md5sum /opt/harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477  /opt/harbor-offline-installer-v1.2.0.tgz
cp -rf /usr/ports/sysutils/coreutils/work/coreutils-8.25/src/md5sum /bin/md5sum   #和Linux目录一样。
#which md5sum
/bin/md5sum
#md5sum /opt/harbor-offline-installer-v1.2.0.tgz   #/bin/md5sum
235fcfb9fe00ad61f6cbc2de4920b477  /opt/harbor-offline-installer-v1.2.0.tgz
#ldd /bin/md5sum
/bin/md5sum:
        libc.so.7 => /lib/libc.so.7 (0x800836000)
我只要这一个coreutils编译出来的md5sum,于是make deinstall卸载掉没有用到的一些东西:
cd /usr/ports/sysutils/coreutils
make clean && make deinstall
因为它只是用到libc.so.7这个动态链接库,即使卸载掉后,依然能够运行这个md5sum的可执行文件求出输出文件的MD5值:
#md5sum /opt/harbor-offline-installer-v1.2.0.tgz
235fcfb9fe00ad61f6cbc2de4920b477  /opt/harbor-offline-installer-v1.2.0.tgz

参考:https://unix.stackexchange.com/questions/439974/how-to-install-md5sum-in-freebsd
文中两Port摘自:https://forums.freebsd.org/threads/md5-compare-long-file-list-to-md5-file-contents.21795/

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/9742/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2018-5-10 16:29
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]