설치하지 않고 모든 패키지/저장소의 모든 경로를 쿼리하시겠습니까?

설치하지 않고 모든 패키지/저장소의 모든 경로를 쿼리하시겠습니까?

/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

다시 한번 말씀드리지만, 이 콘텐츠를 조직 내에서 공개적으로 또는 비공개적으로 배포할 계획이라면 그렇게 하지 않는 것이 좋습니다. 그것이 당신과 당신이 개인적인 책임을 지고 있는 기계만을 위한 것이라면 괜찮습니다. 그렇지 않으면 충분히 철저하지 않습니다.

관련 정보