대부분의 Linux 배포판에서 Perl이 기본적으로 설치되는 이유는 무엇입니까?


답변:


27

당신의 관점에 따라 대답은 섹시하지 않습니다.

펄은 매우 유용합니다. 많은 시스템 유틸리티가 perl로 작성되었거나 perl에 의존합니다. Perl을 제거하면 대부분의 시스템이 제대로 작동하지 않습니다.

몇 년 전 FreeBSD는 Perl을 기본 시스템 의 종속성 으로 제거 하기 위해 많은 노력을 기울였습니다 . 쉬운 일이 아니었다.


펄은 커널 자체에서 사용됩니까? 커널이 GNU Linux 크기를 추정 하는 약 2,200 줄의 Perl 코드를 사용한다고 주장하는이 기사를보고있다 . 또한 질문을했던 것은 Arch Linux를 설치하는 동안 Perl이 기본 패키지에 설치되어 있음을 알았습니다. Perl 을 사용하는 핵심 유틸리티가 있습니까?

9
@JoshVoigts 커널 자체는 perl no를 사용하지 않습니다. 그러나 커널을 빌드하는 과정은 상당한 양의 펄을 사용합니다. 아치에 관해서는 다른 누군가가 그 대답에 대답해야합니다.
Patrick

3
호기심에서 FreeBSD는 Perl을 무엇으로 대체 했습니까?
Shadur


7
FreeBSD 기본 시스템은 기본적으로 커널, 유틸리티 및 모든 것을 갖춘 하나의 거대한 소스 코드 저장소입니다. 그래서 그들은 그 저장소에서 자신의 펄 포크를 유지하고 있었는데, 이는 큰 노력이었고 업스트림 펄을 최신으로 유지하기 어려웠습니다. 따라서 기본 시스템에서 Perl을 제거하고 포트로 설치하는 것이 합리적이었습니다. 포트를 설치하는 것이 훨씬 쉽습니다 (업스트림 Perl 릴리스를 가져 와서 컴파일하기 때문에).
CJM

24

래리 벽의에서 원래 펄 v1.0을 게시 받는 comp.sources.misc의의 1987년 12월 18일에 뉴스 그룹, 그는 말했다 :

일반적으로 sed 또는 awk 또는 sh를 사용하는 문제가 있지만 그 기능을 초과하거나 약간 더 빨리 실행해야하고 C로 바보 같은 것을 쓰지 않으려면 perl이 적합 할 수 있습니다.

A의 훨씬 나중에 박람회 , 그는 더 조금 정교 :

그러나 유닉스 셸 프로그래밍의 좌절로 인해 Perl을 직접 만들었습니다. 그러나 본질적으로 쉘 스크립팅은 대부분의 동사가 제어하지 않으므로 서로 거의 일치하지 않는다는 사실에 의해 본질적으로 제한됩니다. 그리고 명사는 빈곤하고 문자열과 파일로 제한되어 있으며 누가 알았 을까요?

1 차원 유니버스라는 사고 방식이 더 파괴적이었습니다. C로 프로그래밍했거나 셸로 프로그래밍 한 것입니다. One Continuum의 반대쪽 끝에 있기 때문입니다. Perl은 스크립팅이 항상 프로그래밍의 반대라고 생각할 필요는 없지만 단일 언어는 두 가지 모두에 매우 유용 할 수 있음을 깨달았습니다. 그것은 거대한 생태 학적 틈새 시장을 열었습니다. 많은 사람들이 조작과 위축의 2 차원을 가진 나의 오래된 조개 껍질 도표를 보았습니다.

오늘날 Perl은 쉘 스크립팅 및 텍스트 구문 분석 요구에 대한 표준 대안 / 대체이며 기존 도구보다 훨씬 강력합니다. 펄은 극도의 유연성 (일부에서는 우아하지 않음)으로 인해 " 스위스 스크립트 언어의 스위스 군용 전기 톱 "으로 묘사되었습니다 . Perl로 해결할 때 작업이 상당히 짧거나 쉬워 지거나 확장 가능할 수 있습니다. 많은 시스템 도구, 스크립트 및 더 큰 프로그램이 일상적으로 Perl로 작성됩니다. 따라서 현대 Linux 환경에서 Perl은 이제 또 다른 표준 Unix 도구이며 진정으로 없어서는 안될 도구입니다.


4
  1. Perl은 도구가 충분히 강력하지 않기 때문에 Unix를 위해 개발되었습니다. 스포츠의 경우도 찾아보실 수 있습니다 awksed(펄) 거기에.
  2. Perl은 (다른 것들 중에서도) 유닉스 쉘에서 영감을 받았으며 C는 유닉스에 매우 중요합니다.
  3. 또한 Perl은 GNU 라이센스에 따라 배포 할 수 있습니다 . 어떤 사람들은 기술적 인 관점과 관련이 없다고 생각하지만 그것은 혼합을 보여줍니다.
  4. 내가 생각할 수있는 마지막 것은 네트워킹 "소프트웨어 번들"인 LAMP입니다. (Wkipedia에서 확인하십시오 : P는 Perl이거나 L은 Linux입니다. L은 Linux입니다.) (그러나이 마지막 지점은 약간 "치킨 또는 계란"입니다.)

4
요즘 LAMP의 P는 훨씬 자주 PHP 또는 Python입니다. 나는 Perl이 약어의 기존 사용이라고 생각합니다.
darvids0n

Notepad ++ 는 GNU 라이센스 (특히 GNU GPL)로 배포됩니다. AFAIK는 Notepad ++와 다양한 Linux 배포판 사이에 "혼합"이 거의 없습니다. 포인트 # 3에 대한 반례를 하나 언급하면됩니다.
CVn

@ MichaelKjörling : 특정 라이센스가 Linux 세계에서 애플리케이션 (또는이 경우 프로그래밍 언어)의 확산을 방해하고 다른 라이센스는 그러한 장애를 일으키지 않을 것이라는 데 동의하지 않습니까? 그렇다고해서 그것이 내가 말한 것이라고 생각한다면 배포판으로 나아갈 수있는 것은 아닙니다. (나는 그렇게 생각하지 않는다.)
Emanuel Berg

@ darvidsOn : 예 ... 그것이 내가 말한 것입니다 (?). (그 큰 스크립트 언어가 모두 P로 시작하는 것은 우연의 일치라고 생각합니다.)
Emanuel Berg

@EmanuelBerg Perl이 GNU 라이센스를 가지고 있다는 사실에 기초하여 Perl과 Linux 간의 "인터 링"을 언급했습니다. FreeBSD 포트와 다른 라이센스를 가진 많은 Linux 배포판에는 다양한 소프트웨어가 있으며 다양한 GNU 라이센스 (GPL, LGPL, FDL 등)에 따라 라이센스가 부여되지 않은 소프트웨어도 있습니다.
CVn

1

이 질문에 대한 답은 부분적으로 역사적이며 일부 실용적이라고 생각합니다.

역사에 관해서는 Perl은 고급 언어입니다. "더 나은"것이 무엇인지 알지 못하지만 (PHP는 말할 것도없이) Python보다 더 고급 스럽습니다. 그리고 Perl을 사용하거나 사용하는 고급스러운 사람들은 일반적으로 Linux 배포판의 일부를 결정하는 사람들입니다.

실용적인 점에 관해서는 Perl 여전히 OS와 웹 (Python 또는 PHP를 잊지 않는 LAMP)과 같은 많은 것들의 접착제입니다. 그렇다면 많은 목적에 유용한 것을 포함시키지 않는 이유는 무엇입니까? 그리고 더욱 더, 왜 제거 아무것도 있다는 것을 (그리고 어떤 해가 발생하지 않습니다), 그리고 유용하다?

그러나 최근에 The Linux Magazine (2013 년 6 월 151 호)의 최신호에 이에 대한 메모가 있습니다. 분명히 리눅스 커널을 컴파일하기 위해 몇 개의 짧고 간단한 Perl 스크립트가 사용된다. (다시 말해서, OS에서 Perl의 "접착제"역할) 커널 개발자 중 한 명이 이번에는 Perl이 아니라 "Unix shell scripts"라는 스크립트를 다시 작성하는 패치를 제출했습니다. sh?). 그렇게하면 커널을 컴파일하는 사람을 위해 Perl을 설치할 필요가 없습니다. 그러나 해당 패치 (여러 번 제출 됨)는 선택되지 않았습니다. 그리고 이것에 대한 한 가지 이유는 추위에 빠져 나간 Perl은 들어오지 않을 것입니다. Perl을 좋아하는 사람들은 그들과 헤어지기를 원하지 않습니다.

아주 적은 수의 Linux 사용자가 커널을 컴파일 할 가능성이 높기 때문에이 문제에 직면하게됩니다. 그러나 그것은 퍼즐의 또 다른 조각입니다 (그리고 나는 많은 것이 의심됩니다).


1
Emanuel에 대한 의견이 아니라 perl과 함께하고 싶지 않은 사람들을 위해, 필요하거나 원하지 않는 경우 설치하는 것이 얼마나 어려울 수 있습니까?
MattBianco
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.