📄 net-snmp.nsi
字号:
; Script generated by the HM NIS Edit Script Wizard.; HM NIS Edit Wizard helper defines!define PRODUCT_NAME "Net-SNMP"!define PRODUCT_MAJ_VERSION "5"!define PRODUCT_MIN_VERSION "2"!define PRODUCT_REVISION "0"!define PRODUCT_EXE_VERSION "1"!define PRODUCT_WEB_SITE "http://www.net-snmp.org"!define PRODUCT_DIR_REGKEY "Software\Net-SNMP"!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"!define PRODUCT_UNINST_ROOT_KEY "HKLM"!define PRODUCT_STARTMENU_REGVAL "Net-SNMP:StartMenuDir"; For environment variables!define ALL_USERS!include "SetEnVar.nsi"!include "Add2Path.nsi"; MUI 1.67 compatible ------!include "MUI.nsh"; MUI Settings!define MUI_ABORTWARNING!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"!define MUI_HEADERIMAGE_BITMAP "net-snmp-header1.bmp"!define MUI_HEADERIMAGE_UNBITMAP "net-snmp-header1.bmp"; Welcome page!insertmacro MUI_PAGE_WELCOME; License page!define MUI_LICENSEPAGE_RADIOBUTTONS!insertmacro MUI_PAGE_LICENSE "docs\COPYING"; Components page!insertmacro MUI_PAGE_COMPONENTS; Directory page!insertmacro MUI_PAGE_DIRECTORY; Start menu pagevar ICONS_GROUP!define MUI_STARTMENUPAGE_NODISABLE!define MUI_STARTMENUPAGE_DEFAULTFOLDER "Net-SNMP"!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"!define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${PRODUCT_STARTMENU_REGVAL}"!insertmacro MUI_PAGE_STARTMENU Application $ICONS_GROUP; Instfiles page!insertmacro MUI_PAGE_INSTFILES; Finish page!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt"!insertmacro MUI_PAGE_FINISH; Uninstaller pages!insertmacro MUI_UNPAGE_INSTFILES; Language files!insertmacro MUI_LANGUAGE "English"; MUI end ------Name "${PRODUCT_NAME} ${PRODUCT_MAJ_VERSION}.${PRODUCT_MIN_VERSION}.${PRODUCT_REVISION}"OutFile "..\\net-snmp-${PRODUCT_MAJ_VERSION}.\ ${PRODUCT_MIN_VERSION}.\ ${PRODUCT_REVISION}\ -${PRODUCT_EXE_VERSION}\ .win32.exe"InstallDir "C:\usr"InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir"ShowInstDetails showShowUnInstDetails show; Variables for writing config filesVar conf_fileSection "Base Components" SEC01 SetOutPath "$INSTDIR" SetOverwrite ifnewer File "README.txt" SetOutPath "$INSTDIR\bin" File "bin\netsnmp.dll" File "bin\encode_keychange.exe" File "bin\snmpvacm.exe" File "bin\snmpusm.exe" File "bin\snmptrap.exe" File "bin\snmptranslate.exe" File "bin\snmptest.exe" File "bin\snmptable.exe" File "bin\snmpstatus.exe" File "bin\snmpset.exe" File "bin\snmpnetstat.exe" File "bin\snmpgetnext.exe" File "bin\snmpget.exe" File "bin\snmpdf.exe" File "bin\snmpdelta.exe" File "bin\snmpbulkwalk.exe" File "bin\snmpbulkget.exe" File "bin\snmpwalk.exe" File "bin\mib2c" File "bin\mib2c.bat" Call CreateMib2cBat File "bin\snmpconf" File "bin\snmpconf.bat" Call CreateSnmpconfBat File "bin\traptoemail" File "bin\traptoemail.bat" Call CreatTraptoemailBat SetOutPath "$INSTDIR\share\snmp\mibs" File "share\snmp\mibs\AGENTX-MIB.txt" File "share\snmp\mibs\DISMAN-EVENT-MIB.txt" File "share\snmp\mibs\DISMAN-EXPRESSION-MIB.txt" File "share\snmp\mibs\DISMAN-NSLOOKUP-MIB.txt" File "share\snmp\mibs\DISMAN-PING-MIB.txt" File "share\snmp\mibs\DISMAN-SCHEDULE-MIB.txt" File "share\snmp\mibs\DISMAN-SCRIPT-MIB.txt" File "share\snmp\mibs\DISMAN-TRACEROUTE-MIB.txt" File "share\snmp\mibs\EtherLike-MIB.txt" File "share\snmp\mibs\HCNUM-TC.txt" File "share\snmp\mibs\HOST-RESOURCES-MIB.txt" File "share\snmp\mibs\HOST-RESOURCES-TYPES.txt" File "share\snmp\mibs\IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt" File "share\snmp\mibs\IANAifType-MIB.txt" File "share\snmp\mibs\IANA-LANGUAGE-MIB.txt" File "share\snmp\mibs\IF-INVERTED-STACK-MIB.txt" File "share\snmp\mibs\IF-MIB.txt" File "share\snmp\mibs\INET-ADDRESS-MIB.txt" File "share\snmp\mibs\IP-FORWARD-MIB.txt" File "share\snmp\mibs\IP-MIB.txt" File "share\snmp\mibs\IPV6-ICMP-MIB.txt" File "share\snmp\mibs\IPV6-MIB.txt" File "share\snmp\mibs\IPV6-TC.txt" File "share\snmp\mibs\IPV6-TCP-MIB.txt" File "share\snmp\mibs\IPV6-UDP-MIB.txt" File "share\snmp\mibs\LM-SENSORS-MIB.txt" File "share\snmp\mibs\MTA-MIB.txt" File "share\snmp\mibs\NET-SNMP-AGENT-MIB.txt" File "share\snmp\mibs\NET-SNMP-EXAMPLES-MIB.txt" File "share\snmp\mibs\NET-SNMP-EXTEND-MIB.txt" File "share\snmp\mibs\NET-SNMP-MIB.txt" File "share\snmp\mibs\NET-SNMP-MONITOR-MIB.txt" File "share\snmp\mibs\NET-SNMP-SYSTEM-MIB.txt" File "share\snmp\mibs\NET-SNMP-TC.txt" File "share\snmp\mibs\NETWORK-SERVICES-MIB.txt" File "share\snmp\mibs\NOTIFICATION-LOG-MIB.txt" File "share\snmp\mibs\RFC1155-SMI.txt" File "share\snmp\mibs\RFC1213-MIB.txt" File "share\snmp\mibs\RFC-1215.txt" File "share\snmp\mibs\RMON-MIB.txt" File "share\snmp\mibs\SMUX-MIB.txt" File "share\snmp\mibs\SNMP-COMMUNITY-MIB.txt" File "share\snmp\mibs\SNMP-FRAMEWORK-MIB.txt" File "share\snmp\mibs\SNMP-MPD-MIB.txt" File "share\snmp\mibs\SNMP-NOTIFICATION-MIB.txt" File "share\snmp\mibs\SNMP-PROXY-MIB.txt" File "share\snmp\mibs\SNMP-TARGET-MIB.txt" File "share\snmp\mibs\SNMP-USER-BASED-SM-MIB.txt" File "share\snmp\mibs\SNMP-USM-AES-MIB.txt" File "share\snmp\mibs\SNMP-USM-DH-OBJECTS-MIB.txt" File "share\snmp\mibs\SNMPv2-CONF.txt" File "share\snmp\mibs\SNMPv2-MIB.txt" File "share\snmp\mibs\SNMPv2-SMI.txt" File "share\snmp\mibs\SNMPv2-TC.txt" File "share\snmp\mibs\SNMPv2-TM.txt" File "share\snmp\mibs\SNMP-VIEW-BASED-ACM-MIB.txt" File "share\snmp\mibs\TCP-MIB.txt" File "share\snmp\mibs\TRANSPORT-ADDRESS-MIB.txt" File "share\snmp\mibs\TUNNEL-MIB.txt" File "share\snmp\mibs\UCD-DEMO-MIB.txt" File "share\snmp\mibs\UCD-DISKIO-MIB.txt" File "share\snmp\mibs\UCD-DLMOD-MIB.txt" File "share\snmp\mibs\UCD-IPFILTER-MIB.txt" File "share\snmp\mibs\UCD-IPFWACC-MIB.txt" File "share\snmp\mibs\UCD-SNMP-MIB.txt" File "share\snmp\mibs\UCD-SNMP-MIB-OLD.txt" File "share\snmp\mibs\UDP-MIB.txt" SetOutPath "$INSTDIR\share\snmp" File "share\snmp\mib2c.access_functions.conf" File "share\snmp\mib2c.array-user.conf" File "share\snmp\mib2c.check_values.conf" File "share\snmp\mib2c.check_values_local.conf" File "share\snmp\mib2c.column_defines.conf" File "share\snmp\mib2c.column_enums.conf" File "share\snmp\mib2c.column_storage.conf" File "share\snmp\mib2c.conf" File "share\snmp\mib2c.container.conf" File "share\snmp\mib2c.create-dataset.conf" File "share\snmp\mib2c.genhtml.conf" File "share\snmp\mib2c.int_watch.conf" File "share\snmp\mib2c.iterate.conf" File "share\snmp\mib2c.iterate_access.conf" File "share\snmp\mib2c.mfd.conf" File "share\snmp\mib2c.notify.conf" File "share\snmp\mib2c.old-api.conf" File "share\snmp\mib2c.scalar.conf" File "share\snmp\mib2c.table_data.conf" SetOutPath "$INSTDIR\docs" File "docs\COPYING" File "docs\Net-SNMP.chm" SetOutPath "$INSTDIR\share\snmp\snmpconf-data\snmp-data" File "share\snmp\snmpconf-data\snmp-data\authopts" File "share\snmp\snmpconf-data\snmp-data\debugging" File "share\snmp\snmpconf-data\snmp-data\mibs" File "share\snmp\snmpconf-data\snmp-data\output" File "share\snmp\snmpconf-data\snmp-data\snmpconf-config" SetOutPath "$INSTDIR\etc\snmp" ; File "etc\snmp\snmp.conf" SetOutPath "$INSTDIR\include\net-snmp" File "include\net-snmp\net-snmp-config.h" SetOutPath "$INSTDIR\include\net-snmp\agent" File "include\net-snmp\agent\agent_module_config.h" File "include\net-snmp\agent\mib_module_config.h" CreateDirectory "$INSTDIR\temp" CreateDirectory "$INSTDIR\snmp" CreateDirectory "$INSTDIR\snmp\persist" CreateDirectory "$INSTDIR\log" ; Add bin directory to the search path Push "$INSTDIR\bin" Call AddToPath Call CreateSnmpConfSectionEndSection "Net-SNMP Agent Service" SEC02 SetOutPath "$INSTDIR\bin" File "bin\snmpd.exe" SetOutPath "$INSTDIR\share\snmp\snmpconf-data\snmpd-data" File "share\snmp\snmpconf-data\snmpd-data\acl" File "share\snmp\snmpconf-data\snmpd-data\basic_setup" File "share\snmp\snmpconf-data\snmpd-data\extending" File "share\snmp\snmpconf-data\snmpd-data\monitor" File "share\snmp\snmpconf-data\snmpd-data\operation" File "share\snmp\snmpconf-data\snmpd-data\snmpconf-config" File "share\snmp\snmpconf-data\snmpd-data\system" File "share\snmp\snmpconf-data\snmpd-data\trapsinks" ;SetOutPath "$INSTDIR\etc\snmp" ;File "etc\snmp\snmpd.conf" ; If we are on an NT system then install the service batch files. Call IsNT Pop $1 StrCmp $1 0 NoService SetOutPath "$INSTDIR\" File "registeragent.bat" File "unregisteragent.bat" Call CreateAgentBats CreateDirectory "$SMPROGRAMS\$ICONS_GROUP\Service" CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Service\Register Agent Service.lnk" "$INSTDIR\registeragent.bat" CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Service\Unregister Agent Service.lnk" "$INSTDIR\unregisteragent.bat" NoService:SectionEndSection "Net-SNMP Trap Service" SEC03 SetOutPath "$INSTDIR\bin" File "bin\snmptrapd.exe" SetOutPath "$INSTDIR\share\snmp\snmpconf-data\snmptrapd-data" File "share\snmp\snmpconf-data\snmptrapd-data\formatting" File "share\snmp\snmpconf-data\snmptrapd-data\snmpconf-config" File "share\snmp\snmpconf-data\snmptrapd-data\traphandle" File "share\snmp\snmpconf-data\snmptrapd-data\authentication" File "share\snmp\snmpconf-data\snmptrapd-data\logging" File "share\snmp\snmpconf-data\snmptrapd-data\runtime" ;SetOutPath "$INSTDIR\etc\snmp" ;File "etc\snmp\snmptrapd.conf" ; If we are on an NT system then install the service batch files. Call IsNT Pop $1 StrCmp $1 0 NoTrapService SetOutPath "$INSTDIR\" File "registertrapd.bat" File "unregistertrapd.bat" Call CreateTrapdBats CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Service\Register Trap Service.lnk" "$INSTDIR\registertrapd.bat" CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Service\Unregister Trap Service.lnk" "$INSTDIR\unregistertrapd.bat" NoTrapService:SectionEndSection "Perl SNMP Modules" SEC04 SetOutPath "$INSTDIR\perl\x86" File "perl\x86\Net-SNMP.tar.gz" SetOutPath "$INSTDIR\perl" File "perl\Net-SNMP.ppd" SetOutPath "$INSTDIR\bin" File "bin\net-snmp-perl-test.pl"SectionEndSection -AdditionalIcons CreateDirectory "$SMPROGRAMS\$ICONS_GROUP" CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk" "$INSTDIR\uninst.exe" CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Net-SNMP Help.lnk" "$INSTDIR\docs\Net-SNMP.chm" CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\README.lnk" "$INSTDIR\README.txt"SectionEndSection -Post WriteUninstaller "$INSTDIR\uninst.exe" WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" ${PRODUCT_MAJ_VERSION}.${PRODUCT_MIN_VERSION}.${PRODUCT_REVISION} WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\bin\encode_keychange.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_MAJ_VERSION}.${PRODUCT_MIN_VERSION}.${PRODUCT_REVISION}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "${PRODUCT_STARTMENU_REGVAL}" "$ICONS_GROUP" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"SectionEnd; Section descriptions!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} \ "The Base Components provide basic means for interrogating SNMP devices. These \ include the command-line client applications, a short list of Management \ Information Base MIB files, and a user-friendly Help subsystem" !insertmacro MUI_DESCRIPTION_TEXT ${SEC02} \ "The Net-SNMP Agent Service provides information to a remote management system." !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} \ "The Net-SNMP Trap Service receives SNMP notifications traps and informs) \ from other SNMP-enabled devices." !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} \ "The Perl SNMP Modules can be used if this computer will be used to \ run or develop Perl-based SNMP programs (e.g. 'mib2c')"!insertmacro MUI_FUNCTION_DESCRIPTION_ENDFunction CreateSnmpConf SetOutPath "$INSTDIR\etc\snmp" StrCpy $conf_file "snmp.conf" ; Slash it Push $INSTDIR Push "\" Push "/" Call StrRep Pop $R0 IfSilent overwrite_conf IfFileExists "$conf_file" 0 overwrite_conf MessageBox MB_YESNO|MB_ICONQUESTION "File $conf_file exists. Overwrite?" IDYES overwrite_conf StrCpy $conf_file "$conf_file.new" MessageBox MB_OK "File saved as $conf_file" overwrite_conf: ClearErrors FileOpen $0 "$conf_file" "w" IfErrors cleanup FileWrite $0 "mibdirs $R0/share/snmp/mibs$\r$\n" FileWrite $0 "persistentDir $R0/snmp/persist$\r$\n" FileWrite $0 "tempFilePattern $R0/temp/snmpdXXXXXX$\r$\n" cleanup: FileClose $0 ; For environment variables ;!define ALL_USERS ; Set the conf path ;Push "SNMPCONFPATH" ;Push "$R0/etc/snmp" ;Call WriteEnvStr WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "SNMPCONFPATH" "$R0/etc/snmp" ;Push "SNMPSHAREPATH" ;Push "$R0/share/snmp" ;Call WriteEnvStr WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "SNMPSHAREPATH" "$R0/share/snmp"FunctionEndFunction CreateAgentBats SetOutPath "$INSTDIR\" ClearErrors ; Slash it Push $INSTDIR Push "\" Push "/" Call StrRep Pop $R0 FileOpen $0 "registeragent.bat" "w" IfErrors cleanup FileWrite $0 "@echo off $\r$\n \ set cmdline=$\"$INSTDIR\bin\snmpd.exe$\" -register $\r$\n\ set additionaloptions= -Lf $\"$R0/log/snmpd.log$\"$\r$\n" FileWrite $0 "echo Registering snmpd as a service using the following additional options: $\r$\n \ echo . $\r$\n \ echo %additionaloptions% $\r$\n \ $\r$\n" FileWrite $0 "echo . $\r$\n \ %cmdline% %additionaloptions% $\r$\n \ echo . $\r$\n \ echo For information on running snmpd.exe and snmptrapd.exe as a Windows $\r$\n \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -