Estou assumindo que todos os aplicativos instalados por apt-get
meio de código aberto; mas para aqueles que estão disponíveis dessa maneira, onde posso obter o código-fonte desses aplicativos e atualizá-los?
Tenho algumas aplicações que uso regularmente que não estão mais sendo ativamente desenvolvidas e gostaria de adicionar recursos. Onde eu iria obter os direitos para atualizar esses aplicativos?
Neste caso especificamente, estou me referindo ao pacote hellanzb
apt-get
também suporta programas de código fechado, portanto, sua suposição inicial está incorreta.Respostas:
Use o comando
apt-get source <package>
(não use o sudo) para baixar a fonte de um pacote.De
man apt-get
:Para criar um pacote a partir da fonte, primeiro instale as dependências de compilação:
Em seguida, use
dpkg-buildpackage
para criar um.deb
arquivo. Da folha de referência rápida do APT e do Dpkg :Em um terminal,
cd
no diretório que contém a origem do pacote (por exemplo~/code/hellanzb-0.13
) e execute o seguinte comando:Se a compilação for bem-sucedida, haverá um
.deb
arquivo localizado nodiretório pai (por exemplo
~/code/hellanzb_0.13-6.1_all.deb
).fonte
.deb
pacote a partir do código-fonte. Quanto a colocar seu pacote modificado nos repositórios, você deve conversar com um MOTU sobre isso.sudo apt-get build-dep <package>
instalar as dependências como binários? Nesse caso, essa não é uma compilação completa da fonte. Como alguém faz build-dep instalar dependências da fonte?Em geral, você pode obter a fonte de um pacote instalado seguindo este procedimento:
Ative os repositórios de origem. Abra o painel (botão superior esquerdo) e procure
sources
. Isso deve abrir oSoftware & Updates
programa, execute-o e verifique se a opção "Código-fonte" está selecionada:Abra um terminal e execute este comando:
Isso fará o download das fontes do vlc no diretório atual e você poderá visualizá-las quando quiser.
Obviamente, no caso de
vlc
, você também pode baixá-los diretamente do site videolan.org: https://www.videolan.org/vlc/download-sources.htmlfonte
Você pode usar
apt-get source --compile
diretamente:Trabalhou para mim. O .deb acaba no diretório do qual você executou o comando.
fonte
sudo dpkg -i <package>.deb
Para obter mais informações sobre um pacote, incluindo URL upstream e contatos de projeto / programa, consulte o arquivo de direitos autorais (referenciado em packages.debian.org ).
Quando o pacote é incluído e instalado no seu sistema, você também pode ler o arquivo de direitos autorais diretamente em
/usr/share/doc/$package_or_program_name/copyright
.Veja como baixar o código fonte do pacote Debian? .
fonte
Exemplo mínimo com o
hello
pacoteTudo isso e muito mais estão descritos em: https://www.debian.org/doc/manuals/maint-guide/build.en.html
Primeiro, vamos obter um pacote de amostra para modificar a fonte:
saídas:
Agora vamos cortar isso. Obtenha a fonte:
e aberto:
e modifique a mensagem para:
Faça o mesmo no teste, caso contrário, o teste irritante começará a falhar:
Em seguida, reconstrua com:
Perto do final da saída, diz:
por isso, criou o .deb no diretório pai, como ousa. Finalmente, instalamos e testamos o pacote modificado:
e pronto, ele gera a nova mensagem:
Testado no Ubuntu 18.04.
bzr
Resposta antigaTODO: isto parou de funcionar no Ubuntu 16.04 hospitaleiro, falhando com:
bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/hello/".
.bzr branch lp:ubuntu/wily/hello
funciona ebzr branch lp:ubuntu/xenial/hello
falha novamente. Por alguma razão, https://code.launchpad.net/ubuntu/+source/hello não mostra o Xenial: https://web.archive.org/save/https://code.launchpad.net/ubuntu/+source /OláComo mencionado em https://askubuntu.com/a/81889/52975 , também há uma abordagem específica do Ubuntu
bzr
.Obtenha a última versão:
Versão específica:
Você também pode usar
pull-lp-source
:Então você poderá editá-lo:
Reconstrua-o:
E instale-o:
O guia de pacotes do Ubuntu é uma boa fonte de informações.
fonte
bzr branch lp:ubuntu/hello bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/hello/".
bzr branch lp:ubuntu/xenial/lightdm bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/xenial/lightdm/".
Guia de empacotamento do Ubuntu , especificamente 4.2. Obtendo a fonte diz:bzr branch ubuntu:lightdm lightdm.quickswitch bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/lightdm/".
Que bagunça. :-(pull-lp-source
vez disso, mas não obtemos um repositório bzr.bzr bd -- -b -us -uc
dizbzr: ERROR: Not a branch: "/org/gourichon/localdata/SG/projects/sysadmin/sysadmin_ergozel/2016/2016-08-15/blouarp/lightdm-1.18.3/".
: - / Obrigado por qualquer dica.bzr lp:ubuntu/wily/hello
mas por algum motivo não háxenial
versão? E nenhum aparece em: code.launchpad.net/ubuntu/+source/hello Go figure.