what is the function of /etc/apt/sources.list.d?

ggaaooppeenngg picture ggaaooppeenngg · Sep 24, 2014 · Viewed 28.2k times · Source

I added LLVM Debian/Ubuntu nightly packages in the /etc/apt/sources.list.d directory as llvm.list. Then I ran apt-get update, but got the following error

GPG Error: The LLVM Compiler Infrastructure Project llvm-toolchain-trusty InRelease: no public key,can not qulify the signature: NO_PUBKEY 15CF4D18AF4F7421

I thought if I added the source as a file in the directory, it will be seen as a package source. What else do I need to do?

Answer

MrTux picture MrTux · Sep 24, 2014

The function of the /etc/apt/sources.list.d directory is as follows:

Using the directory you can easily add new repositories without the need to edit the central /etc/apt/sources.list file. I.e. you can just put a file with a unique name and the same format as /etc/apt/sources.list into this folder and it is used by apt.

In order to remove this source again you can just remove that specific file without the need for handling side effects, parsing or mangling with /etc/apt/sources.list. It's mainly for scripts or other packages to put their repositories there automatically - if you manually add repositories you could add them to /etc/apt/sources.list manually.

This answers your question, however, it won't solve your problem. APT is complaining about a missing GPG key which you have to manually import before you can use your newly added repository (GPG verifies all data cryptographically and needs the public keys of the owners for this).

This can be done calling sudo apt-key add public-key-file or wget -qO - http://example.com/archive.key | sudo apt-key add - where http://example.com/archive.keyis the URL for the public key (which you should verify before using).

In case of llvm, you could issue wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key|sudo apt-key add - (according to http://llvm.org/apt/)

See https://askubuntu.com/questions/291035/how-to-add-a-gpg-key-to-the-apt-sources-keyring