이것은 2부입니다CLI 도구를 사용하여 Linux 시스템에 새로운(사용자 정의) MIME 유형을 설치하는 방법은 무엇입니까?
위 질문에서 허용된 답변의 단계를 사용하여 다음 MIME 유형 mx-publickey.xml을 만들었습니다.
<?xml version="1.0" encoding="utf-8"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="text/x-publickey">
<comment>Custom type for public key files (plain text)</comment>
<glob-deleteall/>
<glob pattern="*.pub"/>
</mime-type>
</mime-info>
다음 명령을 사용하여 시스템 전체에 설치했습니다.
# xdg-mime install --mode system mx-publickey.xml
필수 아이콘을 추가했습니다.
xdg-icon-resource install --context mimetypes --size 256 x-publickey-icon.png text-x-publickey
그런 다음 테스트했습니다. 내 '*.pub' 파일에는 여전히 이전 연결이 있습니다.
$ xdg-mime query filetype id_rsa_test.pub
text/plain
$ xdg-mime query default text/plain
org.kde.kate.desktop
"*.pub" 파일을 새 MIME 유형과 연결하려면 어떤 추가 단계가 필요합니까?
편집하다:
다음 단계를 수행했지만 *.pub
Electron 앱의 Kate는 기본적으로 여전히 공개 키 파일을 열지 않습니다.
# xdg-mime default org.kde.kate.desktop text/x-publickey
# xdg-mime query default text/x-publickey
org.kde.kate.desktop
$ xdg-mime query default text/x-publickey
org.kde.kate.desktop
다음으로 GUI 도구(KDE 시스템 설정 > 응용 프로그램 > 파일 연결)를 사용하여 *.pub
공개 키 파일을 Kate와 연결했습니다.Electron 애플리케이션은 여전히 *.pub
Kate를 사용하여 파일 열기를 거부합니다.
Electron 앱은 이전에 Okular를 사용했습니다. 위에 표시된 명령을 실행한 후 xdg-mime default
,오쿠라회는 사라졌지만 무엇도 대신할 수 없다. Electron 애플리케이션은 이제 사용할 애플리케이션을 선택하라는 KIO 대화 상자를 표시합니다. (잘못된 앱을 사용하라고 강요하는 것보다는 낫지만 여전히 올바른 동작은 아닙니다. Electron 앱이 다른 곳에서 파일 연결을 찾는 것 같습니다. 이해해 주시길 바랍니다.)
.desktop
필요한 파일을 어딘가에서 잃어버렸 나요 ?
text/x-publickey
또 다른 생각: 위의 단계를 거친 후에는 이제 에 대한 항목을 볼 수 있을 것 같습니다 /usr/share/applications/mimeinfo.cache
. 그러나 하나도 없습니다.
답변1
이것shared-mime-info
저장소
MIME 유형이 지정되었습니다 application/pgp-keys
. 여기서 볼 수 있습니다:
<mime-type type="application/pgp-keys">
<comment>PGP keys</comment>
<acronym>PGP</acronym>
<expanded-acronym>Pretty Good Privacy</expanded-acronym>
<sub-class-of type="text/plain"/>
<generic-icon name="text-x-generic"/>
<magic priority="50">
<match type="string" value="-----BEGIN PGP PUBLIC KEY BLOCK-----" offset="0"/>
<match type="string" value="-----BEGIN PGP PRIVATE KEY BLOCK-----" offset="0"/>
<match type="big16" value="0x9501" offset="0"/>
<match type="big16" value="0x9500" offset="0"/>
<match type="big16" value="0x9900" offset="0"/>
<match type="big16" value="0x9901" offset="0"/>
</magic>
<glob pattern="*.skr"/>
<glob pattern="*.pkr"/>
<glob pattern="*.asc" weight="10"/>
<glob pattern="*.pgp"/>
<glob pattern="*.gpg"/>
<glob pattern="*.key"/>
</mime-type>
또는 자신의 컴퓨터에서:
/usr/share/mime/packages/freedesktop.org.xml
*.pub
그러나 아마도 MS 게시자 형식과의 충돌을 피하기 위해 glob 모드를 사용하지 않습니다 . 한 가지 해결 방법은 파일 이름을 file.h로 바꾸는 것입니다 *.asc
. 하지만 파일 이름을 바꾸는 것은 선택 사항이 아니라고 가정해 보겠습니다. 이것은 우리에게 필요한 mimeinfo 파일입니다(주의하세요)~ 해야 하다명명 된 pgp-keys.xml
):
$ cat pgp-keys.xml
<?xml version="1.0"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="application/pgp-keys">
<comment>PGP keys</comment>
<acronym>PGP</acronym>
<expanded-acronym>Pretty Good Privacy</expanded-acronym>
<sub-class-of type="text/plain"/>
<generic-icon name="text-x-generic"/>
<magic priority="10">
<match value="-----BEGIN PGP PUBLIC KEY BLOCK-----" type="string" offset="0"/>
</magic>
<glob weight="10" pattern="*.pub"/>
</mime-type>
</mime-info>
"마법" 부분의 좋은 점은 파일 시작 부분에서 해당 문자열을 찾은 다음 일치 여부에 따라 MIME 유형을 결정한다는 것입니다. 이는 MIME 유형이 있는 파일이 application/vnd.ms-publisher
여전히 해당 .pub
파일 확장자를 가질 수 있으며 해당 파일 확장자를 갖는 공개 키와 상대적으로 조화롭게 존재할 수 있음을 의미합니다 .pub
. 이를 위해서는 mimeinfo 파일을 설치해야 합니다.
단일 사용자용으로 설치하려면:
xdg-mime install --mode user pgp-keys.xml
update-mime-database ~/.local/share/mime
시스템 전체에 설치하려면:
sudo xdg-mime install --mode system pgp-keys.xml
sudo /usr/bin/update-mime-database /usr/share/mime
여기에서 샘플 공개 키를 사용하여 결과를 테스트했습니다.
https://www.intel.com/content/www/us/en/security-center/pgp-public-key.html
MS 게시자 파일의 예는 다음과 같습니다.
여기에서 git 저장소를 사용하여 직접 시도해 볼 수 있습니다.