Sign in Join
Wiki copytemporary

Indy with Lazarus/ko: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11## 라자루스용 인디
22
33인디를 포팅하려는 새로운 시도가 인디 핵심 팀에 의해 착수되고 있다. FPC개발자 마르코 반 데 보르트는 FPC4Lazarus와 완벽하게 작동시키기 위해 인디 코어 포팅 작업하고 있다. 특히 인디의 JP무가스가 FPC와 함께 작업하게 하는 데 크게 기여했다. 대부분의 백엔드는 대부분 그의 작업이기도 하다.
44
55현재 Indy10은 거의 완벽하게 작동하고 있으며, 최종 사용자의 사용 편의성이 크게 개선되었습니다. OpenSSL 및 압축과 같은 특수 주제에만 추가적인 지식이 필요할 수 있습니다. 64비트 지원은 완전하게 검증되지 않았습니다.
66
77힌트: 카일릭스 인디를 지원할 생각이 없다. (libc unit을 사용한 모든것). 네이티브 유닉스 RTL을 이용한 것만 포팅할 것이다.
88
99### 요구사항
1010
1111현재, FPC 2.0.4버전 이상에서 일부버그를 제외한 사용 가능합니다. (FreeBSD/Mac OS X:서버버그 2.1.1버전이상)
1212
1313이제 Indy10은 모든 주요 대상에서 작동하기 때문에 우리는 이버전에 초점을 맞춥니다.
1414
1515Indy9로 변환이 사람들을 위해 간단 할 수도 있지만,그것은 단지는 Win32에서 작동하는 것을 명심하십시오. (그리고 이론적으로 리눅스/x86에 이식 할 수있다).
1616
1717그러므로 가급적 인디10을 사용할 것을 추천합니다.
1818
1919(indy9의 예를 들자면,텔넷 구성 요소가 작동하게하는 tmemorystream.setsize 의 오버라이딩을 제거 할 필요가있을 수 있습니다,하지만 Indy9은 한 동안 테스트되지 않았습니다)
2020
2121이 포트는 매우 안정적이며, JP 무가스(JP Mugaas)는 릴리스의 품질, 포함 메이크 세트를 개선하기 위해 많은 일을했다
2222
2323### 다운로드/링크
2424
2525현재 스냅샷들(for die hards only)
2626
2727- Indy9:
2828 - [Indy9, includes demos](http://www.stack.nl/~marcov/indy/indy9.zip)
2929- Indy10:
3030 - [Indy 10 website](http://www.indyproject.org) (데모 추가)
3131 - Indy10 변환된 데모들 : [converted Indy10 demos](http://www.stack.nl/~marcov/demo10.zip)
3232
3333### 동작 기능과 미구현 기능
3434
3535**Indy9**:
3636
3737- 윈도우에선 대부분 동작한다. 거의 모든 데모가 포팅되었습니다.
3838- 리눅스에선 거의 동작 하지 않는다. Linux/x86계열(카이릭스 제외)을 제외한 대상은 희망이 없습니다. \<-- 거의 모든 리눅스에서 동작하지 않는다(주)
3939
4040**Indy10**:
4141
4242- 윈도우, 유닉스: 클라이언트 동작, 원칙적으로 서버 역시 동작한다.
4343- 유닉스 RTL의 주요기능은 동작한다. OS X, FreeBSD의 서버,클라이언트도 동일하게 동작한다.
4444
4545모든버전: 보안관련 기능은 아직 테스트 되지 않음.
4646
4747### 단기 개발 계획
4848
4949- 데모 소스를 동작하도록 변환 예정.
5050- 버그 수정 및 FPC와 Indy RCS를 재수정 할 계획.
5151
5252### 문제점들
5353
5454- Indy9 및 Indy10 사용에 따른 공통적인 문제, 배포에 발생하는 문제들, 심지어 기본적인 문제점들:
5555 - Indy9 더 사용되고, 업계에서 입증 된 것입니다.
5656 - Indy10 은 보다 나은 이식성을 가지고 있습니다. 그러나 이식률은 낮습니다. 더이상 인디 어디에서도 움직임은 보이지 않습니다 (개선되지 않고 있습니다)
5757- 배포는 어떻게? 라자루스에 속할지,FPC에 속할지.
5858- 많은 패키지와 데모에 다양한 경로(PATH)가 있습니다. 경험이 부족한 개발자가 새로 구축할 수 있도록 문제를 해결하는 방법은 무엇입니까?
5959
6060- 라자루스 문제점들
6161 - 아이콘 사라지는문제
6262 - **해결** ~~인디컴포넌트 구성 탭에 요소가 많아 질 경우, 스크롤 되지 않아 선택할 수 없습니다.~~: JP Mugaas는 인디 클라이언트를 A-M 그리고 N-Z 등으로 분리했습니다. 또한 탭당 2개의 행으로 변경하였습니다.
6363- 인디 데모 (특히Indy10)는 멀티 플랫폼 사용에 매우 적합하지 않습니다. 설정은 윈도우에 특화되어있으며, 공백이 있는 경로, 깊은 디렉토리, 쓸모없는 코드(C# 코드)가 있습니다. 빠른 시간 안에 데모는 재작성되어야 합니다.
6464
6565### 버그
6666
6767- Indy10 서버는 시작 시 예외가 발생하여 종료되기 때문에 동작하지 않는다. FPC 2.2(.0) 또는 그 이상 버전에서 수정되었다.(pthread_kill 문제). 이 문제는 Max OS X에서도 동일하게 나타난다.
6868
6969- 데모를 변환시에, 빈번하게 바인딩 프로버티(속성)가 잘못 변환 되었다. 이러한 원인은 인디가 IP4와 IP6를 동시에 사용해서 동일한 포트로 바인딩 하는것 때문에 비정상적으로 동작 할 수 있다.
7070
7171- Ubuntu 10.04 + Lazarus 0.9.28 + Indy 10(Server Component) -\> launch & do nothing (just crash)
7272
7373해결방법 (bruce0829@yahoo.com.tw collect and organize data):
7474
7575(1).Lazarus Main menu -\> Project -\> Compiler Options -\> Other Page , add the "-dUseCThreads" parameter.
7676
7777(2).force the IdTCPServer to work in Id_IPV4 mode.
7878
7979``` pascal
8080procedure TForm1.FormActivate(Sender: TObject);
8181var
8282 Binding: TIdSocketHandle;
8383begin
8484 //uses idGlobal
8585 //explicitly adding a Binding object prevents TIdTCPServer
8686 //from creating its own default IPv4 and IPv6 Binding objects
8787 //on the same listening IP/Port pair...
8888 //바인딩 개체를 명시적으로 추가하면 TIdTCPServer가
8989 //동일한 수신 IP/포트 쌍에 자체 기본 IPv4및 IPv6바인딩
9090 //개체를 생성할 수 없습니다.
9191 Binding := IdTCPServer1.Bindings.Add;
9292 Binding.IPVersion := Id_IPv4; //optional: forces the Binding to work in Id_IPV4 mode.
9393 Binding.IP := '127.0.0.1';
9494 Binding.Port := 6501; //customization
9595 IdTCPServer1.Active := True;
9696end;
9797```
9898
9999(3)TIdSync를 사용하여, IdTCPServer의 OnExecute() 함수로 GUI를 제어할 수 있습니다.
100100
101101### 설치방법
102102
103103이방법은 완벽하지 않지만,원한다면 다음과 같이 설치를 할 수 있다. :Matthijs
104104
105105- indysystemlaz.lpk 열고 컴파일
106106- indycorelaz.lpk 열고 컴파일
107107- indyprotocolslaz.lpk 열고 컴파일
108108- dclindycorelaz.lpk 열고 컴파일 후 설치
109109- dclindyprotocolslaz.lpk 열고 컴파일 후 설치
110110
111111라자루스 리빌드 후 15개의 인디 컴포넌츠 탭을 볼 수 있을 것이다.
112112
113113### 데비안/우분투 설치방법
114114
115115``` bash
116116# cd indy-10.2.0.1/fpc
117117# chmod +x debian/rules
118118# touch README
119119# sudo apt-get install fakeroot
120120# dpkg-buildpackage -rfakeroot -uc
121121# cd ..
122122# sudo dpkg -i *.deb
123123```
124124
125125- install package indylaz.lpk in lazarus
126126
127127### 리눅스 설치방법\[2\]
128128
129129위의 팁으로 라자루스 Indy를 설치하지 못할 경우,이방법을 시도 할 수 있습니다. - [Yahoo! Brazil, Lazarus Group](http://br.groups.yahoo.com/group/lazarus-brasil/) (User Everaldo)
130130
131131라자루스 0.9.24 버전에서 indy-10.2.0.1 버전 기준
132132
133133- 압축을 풉니다
134134- 디렉토리\$(LazarusDir)\구성 요소\indy-10.2.0.1\로 이동하여"저장된 "디렉토리를 생성합니다.
135135- 위에서 만든 디렉토리에\$(LazarusDir)\구성 요소\indy-10.2.0.1\lazarus\를 "저장된 "디렉토리에 복사합니다.
136136- 디렉터리\$(LazarusDir)\구성 요소\indy-10.2.0.1\fps\를 디렉터리\$(LazarusDir\components)\로 복사합니다.
137137- "저장된 "디렉터리의 내용을 가져오고\$(LazarusDir)\구성 요소\indy-10.2.0.1\lazarus내에 복사하고, 다운받았던 압축 내용은 지워도 됩니다 (주:그럴꺼면 이동을 시키지 ㅡㅡ)
138138- laz.pek(\$(LazarusDir)\구성 요소\indy-10.2.0.1\lazarus\indis)패키지를 기존 방법으로 설치합니다.
139139
140140리눅스 상 경로 : /usr/lib/lazarus/components/indy-10.2.0.1/
141141
142142### 윈도우 설치 방법\[3\], Indy 10.5.8.0 과 그 이상 버전
143143
144144- 동작하기 위해서 라자루스 (그리고 FPC)가 필요하다.
145145- 인디 다운로드 : <http://www.indyproject.org/Sockets/Download/DevSnapshot.EN.aspx>.\
146146 또는 현재 최신버전: <http://indy.fulgan.com/>
147147- 디렉토리에 압축 풀기
148148- *.pas, *.lrs and *.inc 파일을 \Lib\System, \Lib\Core, 그리고 \Lib\Protocols 하위 폴더에 복사하여 넣거나 새로운 폴더에 생성 후 선택
149149- indylaz.lpk 파일을 \Lib 디렉토리에 복사 하거나 생성된 폴더에 복사 또는 선택
150150- 라자루스 Package -\> Open package file로 indylaz.lpk 열기
151151- Package Options dialog 의 "Unit"필드에 인디 폴더 추가
152152- 컴파일 후 설치(라자루스 리빌드). 수정: 현재,알려진 FPC 버그로, 설치 전 인디 TWICE 패키지를 컴파일 해야 한다.
153153
154154인디10을 사용하려면 프로젝트 옵션 -\>컴파일러 옵션-\>경로의 "Other Unit files (-Fu)"에 인디 디렉토리 추가 후 사용 하면 된다.
155155
156156### 윈도우(기본) 설치방법 - Indy 10.2.03
157157
158158많은 사용자들에게 위에 제시된 정보는 효과가 없거나 버전과 일관성 없는 설명의 차이를 감안할 때 다소 혼동을 줄 수 있다고 확신합니다.
159159
160160
161161이 웹 사이트는 스냅 샷 페이지에서 최신 버전을 다운로드하도록 안내합니다.
162162
163163이 위키는 많은 파일을 디렉토리에 복사하라고 합니다.
164164
165165저에게는, 효과도 없었고, 결국 설치된 라자루스도 엉망이 되고 말았습니다.
166166
1671671. 첫번째, 다음 사이트에서 인디 10.2.03 윈도우 버전을 받는다 [URL](http://www.indyproject.org/Sockets/fpc/index.EN.aspx).\
168168 다른곳의 파일은 문제가 있으므로 가급적 이곳에서 받기를 추천한다.
1691692. 압축을 풀은 곳에서 다음과 같은 폴더를 찾으세요 : "fpc" 와 "lazarus".
170170 1. "fpc" 폴더의 내용을 "라자루스디렉토리\fpc\버전\source\packages\indylaz"에 복사하세요.
171171 2. 라자루스 폴더를 다음 디렉토리에 복사하세요. "라자루스디렉토리\components\indylaz"
172172 3. 이 두가지를 모두 사용하는 경우에는 지정된 폴더 내에 하위 디렉토리가 없는지 확인하십시오.\
173173 예) 라자루스디렉토리\components\indylaz\lazarus\\
174174
1751751. 라자루스 메뉴중 "Package" -\> "Open package file" 에서 "indylaz.lpk" 를 엽니다. "라자루스디렉토리\components\indylaz" 에 있습니다.
1761762. "options"를 클릭합니다. 이 단추는 톱니 바퀴가 있는 설정이미지와 비슷한 이미지입니다.
1771773. 왼쪽에 있는 "컴파일러 옵션"을 클릭하고"기타 장치 파일(-Fu)(구분 기호는 세미 콜론)"옆의 ".."버튼을 클릭합니다.\
178178 위에서 생성한 "fps"폴더를 선택하고 OK(확인)를 클릭합니다.\
179179 Lazarus(BR\>라자루스)가 상대적 경로를 정렬해 드립니다. 바꾸지 마세요.
1801804. OK를 클릭하고, 편집한 다음, 잘못된 설치 방법으로 제대로 설치 되지 않음을 이전의 문서를 만든 사람에게 항의 메일을 보내세요.
181181
182182### 윈도우64비트 이슈사항
183183
18418464비트에서는 아래의 코드가 정상적으로 동작 하지 않습니다. IdAntiFreeze.pas의 내용을 아래와 같이 수정하면 해결할 수 있습니다.
185185
186186수정전:
187187
188-`type`\
189-`  TIdAntiFreeze = class(TIdAntiFreezeBase)`\
190-`  public`\
191-`    procedure Process; override;`\
192-`  end; `
188+``` pascal
189+type
190+ TIdAntiFreeze = class(TIdAntiFreezeBase)
191+ public
192+ procedure Process; override;
193+ end;
194+```
193195
194196수정후:
195197
196-`type`\
197-`  TIdAntiFreeze = class(TIdAntiFreezeBase)`\
198-`  public`\
199-`    {$IFDEF WIN32}`\
200-`    procedure Process; override;`\
201-`    {$ENDIF}`\
202-`  end;`
198+``` pascal
199+type
200+ TIdAntiFreeze = class(TIdAntiFreezeBase)
201+ public
202+ {$IFDEF WIN32}
203+ procedure Process; override;
204+ {$ENDIF}
205+ end;
206+```
203207
204208## 외부 링크
205209
206210- [인디프로젝트 공식 사이트](http://www.indyproject.org)
207211
208212---
209213*From the Free Pascal wiki, page "Indy with Lazarus/ko", as it stood on 2020-02-17 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history