NSIS 사용자 설명서

4.8.2 컴파일러 플래그

본 토픽은 현재 준비중입니다.공동공부에 참여하시면 완성 되었을 때 알려드립니다.

 다음 명령어들은 컴파일러가 코드를 생성하고 데이터를 압축하는 방법을 지정합니다. 별로도 언급하지 않는 한 이 명령어들은 스크립트 어디에서든 유효하며 각 명령이 위치한 모든 행에 영향을 미칩니다. (다른 명령으로 대체될 때까지) 이 명령어들은 f흐름 제어 인스트럭션low control instructions을 사용해서 분기할 수 없습니다..

 다음 코드에서 blah.dat은 절대 덮어쓰기되지 않습니다.

${If} $0 == 0
  SetOverwrite on
${Else}
  SetOverwrite off
${EndIf}
File blah.dat # overwrite is always off here!

 Instead, the following should be used.

${If} $0 == 0
  SetOverwrite on
  File blah.dat
${Else}
  SetOverwrite off
  File blah.dat
${EndIf}

4.8.2.1 AllowSkipFiles
on|off

 최종 사용자가 파일을 건너뛸 수 있는지 여부를 지정합니다. 사용자는 A user has an option to skip a file if SetOverwrite가 설정되고 (기본값) 인스톨러가 파일을 압축 해제 할 때 쓰기 도중 파일을 여는데 실패하면 파일을 건너뛸 수 있는 옵션을 가집니다. off로 지정 시 파일을 건너뛰는 무시 버튼은 나타나지 않으며, 사용자는 설치 중단 옵션만을 가집니다. (취소 버튼) 또는 파일에 대한 쓰기를 재시도합니다. (재시도 버튼). on으로 지정 시 사용자는 파일을 건너뛰는 옵션을 가집니다. (오류 플래그가 지정되며 SetOverwrite 참조하십시오.)

4.8.2.2 FileBufSize
buffer_size_in_mb

 컴파일러의 내부 파일 버퍼 크기를 지정합니다. 메모리에 한번에 로드되는 파일의 양을 제한하여 컴파일러의 메모리 사용을 제어합니다. 컴파일러는 입력과 출력이 필요하기 때문에 파일 버퍼에 대한 주어진 시간에 두 지정된 메모리 크기가 사용됩니다. 이 명령어는 또 다른 두 개의 MB를 가질 수 있는 압축 버퍼를 제한하지 않으며, 컴파일러의 다른 내부 버퍼도 제한하지 않지만 일반적으로 1MB를 초과할 수 없습니다. 아주 작은 수를 지정하면 성능이 감소할 수 있습니다. 아주 큰 수를 지정하면 시스템 리소스가 낭비되며 컴파일러가 컴파일 과정을 취소하게 할 수 있습니다. 기본값은 32MB입니다.

4.8.2.3 SetCompress
auto|force|off

 인스톨러의 데이터 압축 여부를 지정합니다. 일반적으로 SetCompress 플래그는 뒤에 오는 명령어에 영향을 미치며 파일의 마지막 SetCompress 명령어 또한 설치 정보 섹션 및 설치 제어 데이터가 압축되어 있는지 여부를 결정합니다. compressflag가 'auto'로 지정되고  압축 크기가 압축 해제 크기보다 작으면 파일들은 압축됩니다. compressflag가 'force'로 지정 시 압축 버전은 항상 사용됩니다. compressflag가 'off'로 지정 시 압축은 사용되지 않습니다. (더 빠를 수 있습니다.)

 이 옵션은 솔리드 압축에서는 영향을 미치지 않습니다.

4.8.2.4 SetCompressor
[/SOLID] [/FINAL] zlib|bzip2|lzma

 인스톨러의 파일/데이터를 압축할 때 사용하는 압축 알고리즘을 설정합니다. 압축될 데이터 전 및 섹션 및 함수 밖에서 사용해야 합니다. 하나의 인스톨러에서 여러 압축 메서드를 여러 파일에 지정할 수 없습니다. 컴파일 오류를 피하기 위해 스크립트의 맨 위에서 사용할 것을 권장합니다.

 세 가지 메서드가 지원됩니다: ZLIB, BZIP2 및 LZMA

 ZLIB (기본값)는 deflate 알고리즘을 사용하며, 빠르고 단순한 메서드입니다. 기본 압축 레벨에서 약 300 KB의 메모리를 사용합니다.

 BZIP2는 ZLIB 보다 더 나은 압축 효율을 내지만 약간 더 느리고 메모리를 조금 더 사용합니다. 기본 압축 레벨에서 약 4 MB의 메모리를 사용합니다.

 LZMA는 아주 좋은 압축 효율을 내는 새로운 압축 메서드입니다. 압축 해제 속도는 높으며 (2 GHz CPU에서 10-20 MB/s) 압축 속도는 낮습니다. 압축 해제에 사용되는 메모리 크기는 사전 크기보다 몇 KB 더 큽니다. 기본적으로 8 MB입니다.

 /FINAL 인수 사용 시 이후의 SetCompressor 호출은 무시됩니다.

 /SOLID 인수 사용 시 인스톨러의 모든 데이터는 하나의 블록으로 압축되어 좀 더 나은 압축 효율을 이끌어 냅니다.

4.8.2.5 SetCompressorDictSize
dict_size_mb

 LZMA에 사용되는 디렉터리 크기를 메가바이트(MB)로 지정합니다.used by the LZMA compressor (기본값은 8 MB입니다.)

4.8.2.6 SetDatablockOptimize
on|off

 컴파일러에게 데이터 블록 최적화 수행 여부를 지정합니다. 데이터 블록 최적화는 컴파일러가 데이터 블록에 추가된 데이터가 이미 있는지 확인합니다. 그리고 그렇다면 추가된 데이터와 비교하여 간단히 참조됩니다. (아주 작은 비트 크기로 저장할 수 있습니다.) 이 옵션을 on으로 두는 것이 권장됩니다.

4.8.2.7 SetDateSave
on|off

 설치 시 파일 복구 옵션을 위한 파일의 마지막 수정 날짜/시간을 저장할 지 결정하는 File 명령어 command to determine whether or not to save the last write date and time of the file, so that it can be restored on installation. Valid flags are 'on' and 'off'. 'on' is the default.

4.8.2.8 SetOverwrite
on|off|try|ifnewer|ifdiff|lastused

 File 명령어를 사용할 때 이미 존재하는 파일에 대한 덮어쓰기 옵션을 설정합니다. 'on'으로 설정 시 파일을 덮어씁니다. (기본값) 'off'로 설정 시 이미 존재하는 파일에 대해 덮어쓰기를 하지 않습니다. 'try'로 설정 시 덮어쓰기를 시도합니다. (파일에 대한 쓰기 권한이 없는 경우 사용자 결정없이 건너뜁니다.) 'ifnewer'로 설정 시 존재하는 파일이 새 파일보다 오래됬을 경우 덮어씁니다. 'ifdiff'로 설정 시 존재하는 파일이 새 파일보다 더 오래됬거나 더 최신이면 덮어씁니다. 'ifnewer' 또는 'ifdiff' 모드로 설정 시 목적 파일의 날짜는 SetDateSave 설정에 관계없이 설정됩니다.

SetOverwrite off
File program.cfg # config file we don't want to overwrite
SetOverwrite on

4.8.2.9 Unicode
true|false

 유니코드 인스톨러를 생성합니다. 압축된 데이터 전 및 섹션과 함수 밖에서 지정할 수 있습니다. 기본값은 false 입니다.

  • 봤어요 0명

댓글

댓글 본문