/bin 또는 /usr/bin에 새 파일을 추가하는 명령을 설치하는 새 패키지를 만들고 싶다고 가정해 보겠습니다.
하지만 아직 명령 이름을 지정하지 않았습니다. 그래서 갈등이 생기면 최대한 빨리 알아내고 싶어요.
그렇다면 몇 가지 리포지토리(Fedora, RPM 융합...)가 있다는 점을 고려하면 특정 파일/명령이 현재 사용 가능한 다른 패키지에 의해 설치되지 않는지 확인하는 데 도움이 될 수 있는 쿼리가 있습니까?
답변1
Fedora를 다른 곳에서 패키지하려고 하거나 Fedora가 귀하의 이름과 충돌하는 이름을 가진 기존 응용 프로그램을 도입할 때 문제가 발생할 수 있으므로 Fedora를 확인하지 마십시오.
내가 작성한 앱이 공식 저장소에 들어갔을 때 배포 패키저에서 앱의 명령 이름(짧고 간결한)을 강제로 변경하도록 했습니다. 그 이유는 이 앱이 오래되었지만 여전히 사용할 수 있는 쓰레기와 충돌하기 때문입니다. 지금이라도 얻을 수도 있습니다.
꽤 독특한 이름으로 시작하세요.검색하다검색 엔진(또는 두 개)을 사용하십시오. 또한 검색적어도 소스 포지그리고깃허브곧장. 완전히 다른 운영 체제(Windows, IOS 등)를 대상으로 하는 것처럼 보이더라도 충돌을 피하세요.
관련 없는 내용이 너무 많이 반환되어 명령 이름만 사용하여 웹을 검색할 수 없다면(예: "linux mycommandname"을 검색하지 마세요) 해당 단어는 충분히 고유하지 않은 것입니다(여기에는 존재하는 것으로 밝혀진 단어도 포함됩니다). 외국어로 표기), 호주 대중음악 브랜드명 등) 이는 아마도 이 시점에서 최소 5자를 의미하며, 그보다 적으면 우연의 일치를 구하는 것보다 더 많을 수 있습니다. 거의 의미 없는 짧은 별칭(두문자어, 모음 삭제 단어 등)을 만드는 것보다 명령에 대해 길고 설명이 포함된 이름( )을 사용하고 사람들이 superFooBar
필요에 따라 자신만의 짧은 별칭을 만들도록 하는 것이 더 좋습니다( ). foo
이것은 POSIX에 곧 제공되지 않을 것이며, 편의성이 아닌 명확성을 위해 표시되어야 하는 모호한 선택적 애플리케이션입니다.
특정 시스템에서 사용 가능한 저장소만 검색하려면 다음을 사용할 수 있습니다 yum provides
.
yum provides "*/superFooBar"
내부에 별표가 있는 따옴표를 참고하세요. 이렇게 하면 셸이 확장되지 않으므로 문자 그대로 에 전달되어 yum
같은 방식으로 와일드카드로 처리됩니다. 그러면 모든 저장소의 모든 패키지에 의해 설치된 모든 파일의 전체 경로가 검색되므로 일치하는 항목에는 /usr/bin/superFooBar
등이 포함될 수 있습니다./etc/default/superFooBar
다시 한번 말씀드리지만, 이 콘텐츠를 조직 내에서 공개적으로 또는 비공개적으로 배포할 계획이라면 그렇게 하지 않는 것이 좋습니다. 그것이 당신과 당신이 개인적인 책임을 지고 있는 기계만을 위한 것이라면 괜찮습니다. 그렇지 않으면 충분히 철저하지 않습니다.