본문 바로가기

카테고리 없음

Solr 설치 도우미 (Apache)

소개

제가 쓴 영문 글을 번역한것입니다. https://www.kimmj.com/blog/one-click-solr-installer/

 

One Click Solr Installer

Install Solr as a Windows service with one click!

www.kimmj.com

One Click Solr Installer 이라는 설치 도우미를 소개하고자 합니다. 한 번의 클릭으로 Solr를 설치할수 있고 버전도 설정할수 있습니다. 설치하는 데 걸리는 시간을 줄이고 싶어서 만든 작품입니다. Jeremy Davis의 Low-Effort Solr 설치 게시물에서 영감을 얻은 후 이 스크립트를 만들었습니다. Jeremy Davis의 스크립트는 스크립트를 열어 버전, 설치 장소 등을 바꾸어야 되는 단점이 있었는데, One Click Solr Installer는 그럴 필요 없이 그냥 인스톨러 (installer) 만 열면 되게 만들었습니다.

Param(
    $installFolder = "c:\solr",
    $nssmVersion = "2.24",
    $solrVersion = "6.6.2",
    $solrPort = "8983",
    $solrHost = "localhost",
    $solrSSL = $true,
    $JREVersion = "1.8.0_151"
)

다운로드 링크!

제 스크립트는 GitHub에서 다운받고 사용할실수 있습니다: https://github.com/kimmminjae/one-click-solr-installer

두 파일을 모두 다운로드 한 다음 one-click-solr-installer.bat 를 실행하십시오. 관리자 권한이 필요합니다.

수정

JRE 버전 및 유효성 검사

JRE 버전을 구성하는 것이 가장 큰 문제였습니다.

try {
    $javaVerbose = java -verbose
    cls
    $javaVersionPath = ($javaVerbose -split '\n')[0]
    $javaVersionPath = $javaVersionPath -replace '\\lib\\rt.jar]' -replace ''
    $javaVersionPath = $javaVersionPath -replace '\[Opened ' -replace ''
    if ($javaVersionPath -Match 'x86') {
        Write-Host 'JRE (64-bit) not installed. Please install JRE (64-bit). Download: https://www.java.com/en/download/manual.jsp'
        Write-Host 'Press any key to exit...'
        $null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown');
        exit
    }
}
catch {
    Write-Host 'JRE (64-bit) not installed. Please install JRE (64-bit). Download: https://www.java.com/en/download/manual.jsp'
    Write-Host 'Press any key to exit...'
    $null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown');
    exit
}

java -verbose 명령을 호출하여 Java 버전을 얻을 수 있다는 것을 깨달았습니다. JRE가 설치된 위치를 리턴 했습니다.

[Opened C:\Program Files\Java\jre1.8.0_221\lib\rt.jar]

일부 문자 트리밍으로 경로를 추출 할 수있었습니다. 또한 사용자에게 JRE 64 비트가 설치되어 있는지 확인하는 몇 가지 유효성 검사를 추가했습니다. 이 유효성 검사는 나중에 Sitecore를 설치할 때 유용할수 있습니다.

사용 가능한 모든 Solr 버전 나열 및 입력

사용자가 원하는 버전을 입력 할 수 있도록 몇 가지 사항을 변경했습니다.

# Retrieve the list of Solr versions
$WebResponseObj = Invoke-WebRequest -Uri "https://archive.apache.org/dist/lucene/solr/" -UseBasicParsing
$innerHTMLofLinks = $WebResponseObj.links | select outerHTML
$innerHTMLs = $innerHTMLofLinks -split '\n'
$outItems = New-Object System.Collections.Generic.List[System.String]
foreach ($innerHTML in $innerHTMLs) {
    $innerHTML = $innerHTML -replace '\@\{outerHTML.*/\"\>' -replace ''
    $innerHTML = $innerHTML -replace '\/\<\/a\>\}' -replace ''
    if($innerHTML -match '([0-9].[0-9]?[0-9].?[0-9]?-?[A-B]?\w*)') {
    $version = $innerHTML
    $outItems.Add($version)
    }
}
$versionsString = ""
$itemCount = 1
foreach ($version in $outItems) {
    if ($itemCount % 4) {
        $versionsString = $versionsString + $version + "`t `t"
    } else {
        $versionsString = $versionsString + $version + "`n"    
    }
    $itemCount++
}
Write-Host $versionsString

Write-Host "`nAbove are all the available versions of Solr."
$versionInput = Read-Host -Prompt "Please enter the desired Solr version"
$isValidInput = $outItems -ccontains $versionInput
while (!$isValidInput) {
    Write-Host "Your input is invalid."
    $versionInput = Read-Host -Prompt "Please enter the desired Solr version (eg. 7.2.1)"
    $isValidInput = $outItems -ccontains $versionInput
}

구성

제목의 원클릭 (한번 클릭) 인스톨러는 거짓말입니다. Solr을 설치하려면 두 번 이상 입력해야합니다. 이 프로젝트를 계획할때 버전 설정을 추가하지 않았으므로 One-Click이라고 불렀던겁니다.

$solrVersion = $versionInput
$solrVersionText = $solrVersion -replace '\.' -replace ''
$installFolder = "c:\solr" + $solrVersionText
$solrHost = "solr" + $solrVersionText
Write-Host ' '
Write-Host ' '
Write-Host 'Host Name Options:'
Write-Host '1.' $solrHost
Write-Host '2. localhost'
Write-Host '3. Custom Input'
$confirmation = Read-Host 'Choose (1/2/3)'
if ($confirmation -eq '3') {
    $solrHost = Read-Host 'Input the desired Host Name: '
} elseif ($confirmation -eq '2') {
    $solrHost = 'localhost'
}
Write-Host $solrHost 'selected'
Write-Host ' '
Write-Host ' '
Write-Host 'Default Installation Folder: ' $installFolder
$confirmation2 = Read-Host 'Use Default? (Y/N)'
if ($confirmation2 -eq 'n') {
    $installFolder = Read-Host 'Input the desired installation location'
}
Write-Host 'Installation Folder:' $installFolder

Solr를 쉽게 설치할수 있도록 저는 최선을 다했습니다. 설정 기본값은 여전히 ​​있으며 enter 키를 두번 누르면이 기본값으로 설치합니다. 이용자가 원하는경우엔 호스트 이름과 설치 폴더를 선택할수 있습니다.