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