Eu sou o desenvolvedor (e empacotador) do Wallch , que é um aplicativo C ++ e, portanto, não é criado e empacotado com Rapidamente.
Por essa razão, minha resposta incluirá informações gerais sobre suas perguntas que (devem) ser aplicadas em qualquer caso (até onde eu sei).
Responda suas perguntas agora:
(1)
Você pode definir como dependências do seu aplicativo, apenas aquelas que estão nos repositórios padrão do Ubuntu. Você pode não incluir dependências de PPAs, etc. Você pode adicionar suas dependências no arquivo debian / control. Um exemplo de arquivo debian / control para o meu aplicativo é o seguinte: paste.ubuntu.com/1113694 .
Como você pode ver, existem 2 campos 'Depends', no Build-Depends você tem que especificar o que é essencial para construir seu aplicativo. Tenho certeza que Quickly deve preencher este campo automaticamente. Os outros pacotes que são importantes para executar seu aplicativo devem ser listados no campo Dependências. Isto é, você tem que especificar quaisquer dependências extras que você tem. O que você precisa especificar é o nome do pacote que o usuário deve baixar e instalar (esse processo é automático, é claro)
(2)
As dependências, tanto quanto eu entendo da sua pergunta, são programas separados que podem rodar e produzir grandes arquivos de saída. Agora, realmente depende de onde esses arquivos estão sendo armazenados. Eu diria que:
-
Se o seu aplicativo criar indiretamente esses grandes arquivos de saída, você poderá optar por salvá-los em qualquer lugar que desejar
-
Se o usuário produzir separadamente esses arquivos, você poderá permitir que o usuário de dentro de seu aplicativo selecione um desses arquivos para processamento.
Depende realmente de como esses arquivos estão sendo produzidos e o que eles têm a ver com o seu aplicativo.
Se você acabou de criar alguns arquivos e deseja processá-los com seu aplicativo, use o diretório / tmp. Execute o programa de dependência e guie-o para gerar os arquivos para / tmp e, em seguida, faça com que o programa leia e analise os arquivos a partir de lá.
(3)
Tanto quanto eu sei (porque eu participei neste concurso específico também), a estrutura que cria rapidamente estabelece sob /opt/extras.ubuntu.com/programname, onde o usuário não tem permissões de gravação. Isso significa que, se o usuário normalmente abre seu aplicativo e, de dentro de seu aplicativo, você optou por salvar os arquivos do seu programa em /opt/extras.ubuntu.com/programname, o usuário não poderá salvar esses arquivos. Em vez disso, ele terá que executar seu aplicativo com privilégios de root, o que geralmente é desencorajado.
Mais uma vez, depende do que esses arquivos são para. Esses arquivos podem ser lidos pelo usuário ou podem ser usados somente dentro de seu aplicativo (algo como arquivos de configuração)? Se o primeiro é verdadeiro, então você deve deixar o usuário escolher onde salvar esses arquivos. Se o último for verdadeiro, então você deve colocar esses arquivos em ~ / .config / ProgramName / O diretório ~ / .config / ProgramName é um diretório onde todos os aplicativos salvam seus arquivos de configuração.
Edite depois de mais solicitações de comentários :
Geralmente, em sua ocasião, você deve fazer o seguinte:
- Seu programa gera arquivos dependendo da entrada do usuário (o que resulta em ~ / .config / ProgName porque eles podem ser reutilizados e não devem ser excluídos)
- As ferramentas das quais você depende lê esses arquivos (de ~ / .config / ProgName) e gera alguns outros arquivos (que resultam em / tmp)
- Seu programa pega os arquivos gerados (das ferramentas) de / tmp e faz qualquer cálculo / desenho etc ... Depois de fazer o que sua aplicação tem a ver com os arquivos finais em / tmp, seria bom deletá-los .
Quanto a ter permissões de leitura / gravação na pasta de configuração, o usuário tem permissões completas de leitura / gravação em tudo em ~ / (seu diretório pessoal) e, portanto, tudo em ~ / .config / pertence a ele como bem. Observe que o usuário tem permissões de leitura / gravação em / tmp também.
Dica : Você pode usar o comando mktemp para gerar arquivos temporários em / tmp com nome aleatório