Разработка приложений - основные вопросы

После окончания вскрытия приложений в Ubuntu я хотел бы принести некоторые из моих программ, запрограммированных для Windows, в Центр программного обеспечения. Поскольку я новичок в программировании для Linux, у меня все еще есть некоторые вопросы:

1) У меня есть некоторые зависимости (например, BLAST ). Я прочитал, что я могу быстро настроить зависимости, которые они будут автоматически установлены с моим инструментом. Что я должен добавить в файл, ссылку, название инструмента или что-то еще? Пример был бы великолепен.

2) Эти зависимости создают несколько (больших) выходных файлов. Где создаются такие файлы, и следует ли мне переместить их в папку приложения для их анализа?

3) Мое приложение создает несколько файлов. Где лучше всего хранить их в структуре папок моего приложения, созданной быстро? Как насчет доступа для чтения и записи файлов?

4) Любые другие советы или предложения о том, что я должен позаботиться или которые отличаются от ОС Windows?

Любая помощь очень ценится! [ 116]

2
задан 3 January 2013 в 17:24

1 ответ

Я являюсь разработчиком (и упаковщиком) из Wallch , который является приложением C ++, и поэтому оно не собирается и не упаковывается с Quickly.

По этой причине мой ответ будет включать общую информацию о ваших вопросах, которые (должны) применяться в любом случае (насколько я знаю).

Теперь отвечаю на ваши вопросы:

(1)

Вы можете установить в качестве зависимостей вашего приложения только те, которые находятся в репозиториях Ubuntu по умолчанию. Вы не можете включать зависимости от PPA и т. Д. Вы можете добавить свои зависимости в файл debian / control. Пример файла debian / control для моего приложения: paste.ubuntu.com/1113694 .

Как видите, есть 2 поля «Зависит», в «Построить-Зависит» вы должны указать, что необходимо для построения вашего приложения. Я уверен, что Quickly должен заполнить это поле автоматически. Другие пакеты, которые важны для запуска вашего приложения, должны быть перечислены в поле «Зависит». Это где вы должны указать любые дополнительные зависимости, которые у вас есть. Вы должны указать имя пакета, которое пользователь должен загрузить и установить (этот процесс, разумеется, автоматический)

(2)

Зависимости, насколько я понимаю из Ваш вопрос, это отдельные программы, которые могут запускать и создавать большие выходные файлы. Теперь это действительно зависит от того, где хранятся эти файлы. Я бы сказал, что:

  1. Если ваше приложение косвенно создает эти большие выходные файлы, вы можете сохранить их где угодно

  2. Если Пользователь отдельно создает эти файлы, затем вы можете позволить пользователю из вашего приложения выбрать один из этих файлов для обработки.

Это действительно зависит от того, как создаются эти файлы и как они связаны с вашим приложением.

Если вы просто создаете некоторые файлы и затем хотите обработать их с помощью своего приложения, то вам следует использовать каталог / tmp. Запустите зависимую программу и направьте ее для генерации файлов в / tmp, а затем попросите вашу программу прочитать и проанализировать файлы оттуда.

(3)

Насколько я знаю (поскольку я тоже участвовал в этом конкретном конкурсе), структура, которую быстро создает, находится в /opt/extras.ubuntu.com/programname, где пользователь не имеет разрешения на запись. Это означает, что если пользователь обычно открывает ваше приложение и из вашего приложения вы решили сохранить файлы своей программы в /opt/extras.ubuntu.com/programname, пользователь не сможет сохранить эти файлы. Вместо этого ему придется запускать ваше приложение с привилегиями root, что, как правило, не рекомендуется.

Опять же, это зависит от того, для чего эти файлы. Являются ли эти файлы читаемыми для пользователя или они могут использоваться только из вашего приложения (что-то вроде файлов конфигурации)? Если первое верно, то вы должны позволить пользователю выбрать, где сохранить эти файлы. Если последнее верно, то вы должны поместить эти файлы в ~ / .config / ProgramName / Каталог ~ / .config / ProgramName - это каталог, в котором все приложения сохраняют свои файлы конфигурации.

Редактировать после дополнительных запросов от комментария :

Как правило, вы должны сделать следующее:

  1. Ваш программа генерирует файлы в зависимости от пользовательского ввода (что приводит к ~ / .config / ProgName, потому что они могут быть использованы повторно и не должны быть удалены)
  2. Инструменты, от которых вы зависите, читают эти файлы (из ~ / .config / ProgName ) и сгенерировать некоторые другие файлы (которые приводят к / tmp)
  3. Ваша программа берет сгенерированные файлы (из инструментов) из / tmp и выполняет любые вычисления / рисование и т. д. После выполнения того, что должно сделать ваше приложение сделать с окончательными файлами в / tmp, было бы хорошо удалить их.

Что касается того, есть ли у вас разрешения на чтение / запись в папке конфигурации, у пользователя есть полные права на чтение / запись для всего в ~ / (ваш домашний каталог), и, следовательно, все в ~ / .config / принадлежит ему тоже. Обратите внимание, что пользователь также имеет права на чтение / запись в / tmp.

Совет : Вы можете использовать команду mktemp для генерации временных файлов в / tmp со случайным именем

0
ответ дан 3 January 2013 в 17:24

Другие вопросы по тегам:

Похожие вопросы: