class practice_oracle { $files_inst = [ "/tmp/packages/compat-libstdc++-33-3.2.3-47.3.x86_64.rpm", "/tmp/packages/elfutils-libelf-0.125-3.ML5.x86_64.rpm", "/tmp/packages/elfutils-libelf-devel-0.125-3.ML5.x86_64.rpm", "/tmp/packages/gcc-4.6.3-2.fu2012.x86_64.rpm", "/tmp/packages/gcc-c++-4.6.3-2.fu2012.x86_64.rpm", "/tmp/packages/glib2-2.28.8-1.fc15.x86_64.rpm", "/tmp/packages/glibc-common-2.9-3.x86_64.rpm", "/tmp/packages/glibc-devel-2.5-81.el5_8.2.x86_64.rpm", "/tmp/packages/libaio-0.3.99-2.x86_64.rpm", "/tmp/packages/libaio-devel-0.3.106-5.x86_64.rpm", "/tmp/packages/libgcc-3.4.3-9.EL4.x86_64.rpm", "/tmp/packages/libstdc++-3.3.2-6.x86_64.rpm", "/tmp/packages/libstdc++-4.7.2-8.fc18.x86_64.rpm", "/tmp/packages/libstdc++-devel-4.8.0-0.7.fc19.x86_64.rpm", "/tmp/packages/sysstat-5.0.5-1.x86_64.rpm", "/tmp/packages/unixODBC-2.2.12-2.fc7.x86_64.rpm", "/tmp/packages/unixODBC-devel-2.3.1-2.fc18.x86_64.rpm", ] file {$files_inst: ensure => present, owner => root, group => root, mode => 0755, source =>[ "puppet:///modules/practice_oracle/compat-libstdc++-33-3.2.3-47.3.x86_64.rpm", "puppet:///modules/practice_oracle/elfutils-libelf-0.125-3.ML5.x86_64.rpm", "puppet:///modules/practice_oracle/elfutils-libelf-devel-0.125-3.ML5.x86_64.rpm", "puppet:///modules/practice_oracle/gcc-4.6.3-2.fu2012.x86_64.rpm", "puppet:///modules/practice_oracle/gcc-c++-4.6.3-2.fu2012.x86_64.rpm", "puppet:///modules/practice_oracle/glib2-2.28.8-1.fc15.x86_64.rpm", "puppet:///modules/practice_oracle/glibc-common-2.9-3.x86_64.rpm", "puppet:///modules/practice_oracleglibc-devel-2.5-81.el5_8.2.x86_64.rpm", "puppet:///modules/practice_oracle/libaio-0.3.99-2.x86_64.rpm", "puppet:///modules/practice_oracle/libaio-devel-0.3.106-5.x86_64.rpm",], } } In this code, when I run the class on agent machine then there is a big problem. This declared file was present in that agent machine but whichever declared first in source, that source file size has same for all other files so how to overcome this problem. Please help me.