Change the way of guarantee idempotence. And support the gem / cpanm.