Usando o sudo apt-get install, por que não há código-fonte?

5

Eu estava tentando instalar um pacote para o sistema operacional robótico (ROS). E eu apenas vou em frente e digito sudo apt-get install <package>

Após a instalação, vejo uma lista de arquivos nas pastas /opt/share , que são os pacotes que eu quero.

Mas se eu entrar em src , o código-fonte (arquivos .cpp) não estará lá.

Eu posso ver o código-fonte se eu for para as páginas do github do desenvolvedor, mas como o pacote é instalado sem usar o código-fonte? Como posso baixar o código-fonte e instalar o pacote usando o comando apt-get install ?

    
por randy_ku 30.07.2015 / 03:28

2 respostas

10

Por padrão, apt-get install não faz o download dos códigos-fonte dos pacotes. Existe uma opção apt-get específica para fazer o que é source .

De man apt-get :

  

fonte              source faz com que o apt-get busque pacotes fonte. O APT examinará os pacotes disponíveis para decidir qual pacote de fontes              buscar. Em seguida, ele localizará e baixará no diretório atual a versão mais recente disponível desse pacote de origem              respeitando a versão padrão, defina com a opção APT :: Default-Release, a opção -t ou por pacote com o              sintaxe pkg / release, se possível.

     

Os pacotes fonte são rastreados separadamente dos pacotes binários via linhas deb-src no arquivo sources.list (5). Isso significa              você precisará adicionar essa linha para cada repositório de onde quer obter fontes; caso contrário, você provavelmente terá              as versões fonte incorretas (muito antigas / muito novas) ou nenhuma.

Portanto, a sintaxe para baixar o pacote fonte de algo para o diretório atual seria (não é necessário ser root ):

apt-get source <package_name>

Observe também que, como as páginas man dizem, é necessário ter os repositórios deb-src habilitados para todos os repositórios deb regulares que você deseja acompanhar dos pacotes de origem. A maneira mais simples de fazer isso seria simplesmente adicionar -src à string deb inicial do repo original:

deb http://archive.ubuntu.com/ubuntu/ trusty main restricted
deb-src http://archive.ubuntu.com/ubuntu/ trusty main restricted

Em uma nota diferente, você pode ter verificado o diretório /usr/src , que é o local designado para todas as fontes do kernel.

    
por heemayl 30.07.2015 / 03:32
2

@heemayl responde como obter o código-fonte, mas caso você esteja se perguntando

  

como é que o pacote é instalado sem usar o código-fonte?

É porque o Ubunutu não constrói pacotes a partir do código-fonte e faz o download de binários pré-compilados.

Uma distro como o Gentoo Linux, no entanto, faria o download da fonte e criaria um pacote localmente.

    
por Puddler 30.07.2015 / 08:47