Построить сечение: Учимся строить сечения многогранников. Часть 2.
Содержание
Учимся строить сечения многогранников. Часть 2.
Учимся строить сечения многогранников. Часть 2.
Эта статья для тех, кто хочет научиться строить сечения. Она содержит 11 заданий для построения сечений, подсказки и ответы к каждому заданию. Рекомендую сначала прочитать эту статью и посмотреть это видео.
Вспомним, что сечение многогранника плоскостью представляет собой плоский многоугольник, вершины которого принадлежат сторонам, а ребра — граням многогранника. Две соседние вершины принадлежат одной грани многогранника.
Чтобы найти точку, лежащую одновременно в двух плоскостях, нужно найти точку пересечения прямой, лежащей в первой плоскости, с прямой, лежащей во второй плоскости.
В подсказках и ответах изображение дополнительных прямых, используемых при построении сечения, сплошными линиями или пунктирными, не зависит от того, видимы эти прямые или нет.
Рядом с каждой дополнительной прямой указан ее порядковый номер при построении сечения. Все прямые проведены через две точки, принадлежащие определенной плоскости. Прямые пронумерованы в порядке их построения. Рекомендуется при использовании подсказки и воспроизведении построения сечения проговаривать, какой плоскости принадлежит данная прямая, каким плоскостям принадлежит точка их пересечения.
Постройте сечения, проходящие через точки .
Задание 1:
Подсказка. показать
Ответ. показать
Задание 2:
Подсказка: показать
Ответ: показать
Задание 3:
Подсказка: показать
Ответ: показать
Задание 4:
Подсказка: показать
Ответ: показать
Задание 5:
Подсказка: показать
Ответ: показать
Задание 6:
Подсказка: показать
Ответ: показать
Задание 7:
Подсказка: показать
Ответ: показать
Задание 8:
Подсказка: показать
Ответ: показать
Задание 9:
Подсказка: показать
Ответ: показать
Задание 10:
Подсказка: показать
Ответ: показать
Задание 11:
Подсказка: показать
Ответ: показать
И. В. Фельдман, репетитор по математике.
Пошаговое построение сечения параллелепипеда
Построение сечения методом следов – это поэтапное отыскание точек, принадлежащих одной и той же плоскости грани и одновременно плоскости сечения, то есть прямым, проходящим через точки, принадлежащие сечению. Метод подходит для использования тогда, когда следы секущей плоскости и прямые граней многогранника пересекаются в области чертежа, то есть если сечение параллельно или почти параллельно основанию, этот метод построения не подойдет.
Задача 1. Построить сечение параллелепипеда плоскостью, проходящей через точки .
Задача 1. Дано
Шаг 1. Чезез точки и , которые принадлежат одной грани, и, следовательно, одной плоскости, проводим прямую. Точки этой прямой все принадлежат секущей плоскости. Точка лежит в плоскости основания, поэтому неплохо бы найти найти точку прямой , которая также принадлежала бы основанию. Для этого проводим прямую , и находим точку ее пересечения с прямой – .
Задача 1. Шаг 1.
Шаг 2. Проводим прямую , принадлежащую плоскости основания. Находим точку пересечения этой прямой ребра – .
Задача 1. Шаг 2.
Шаг 3. Точка лежит в задней грани, поэтому надо бы найти точку прямой , которая принадлежала бы плоскости задней грани. Для этого проведем прямую , которая принадлежит как плоскости основания, так и плоскости задней грани, и найдем точку ее пересечения с прямой – . Через две точки задней грани проводим прямую , и находим место пересечения этой прямой с ребром – .
Задача 1. Шаг 3.
Шаг 4. Окончание построения. Соединяем полученные точки отрезками, и строим многоугольник сечения.
Задача 1. Шаг 4.
Задача 2. Построить сечение параллелепипеда плоскостью, проходящей через точки
Задача 2. Дано.
Шаг 1. Точки и лежат в одной плоскости, можно соединить их прямой. Прямая пересечет ребро в точке .
Задача 2. Шаг 1.
Шаг 2. Точки и также лежат в одной плоскости. Соединяем их прямой и отыскиваем точку пересечения ею ребра – .
Задача 2. Шаг 2
Шаг 3. Найдем точку секущей плоскости, принадлежащую передней грани, чтобы затем через эту точку и точку можно было бы тоже провести след секущей плоскости. Для того, чтобы найти такую точку, проведем луч и найдем его пересечение с прямой – ведь обе эти прямые принадлежат плоскости верхней грани. Точка пересечения – точка . Точки и можно соединить отрезком.
Задача 2. Шаг 3.
Шаг 4. Находим точку пересечения отрезком ребра – точку .
Задача 2. Шаг 4
Шаг 5. После этого соединяем отрезками полученные точки и закрашиваем многоугольник сечения.
Задача 2. Шаг 5
Задача 3. Построить сечение параллелепипеда плоскостью, проходящей через точки
Задача 3. Дано.
Шаг 1. Построим прямую , это можно сделать, так как обе точки принадлежат одной грани. Точка принадлежит грани основания, поэтому нужна точка в этой плоскости.
Задача 3. Шаг 1
Шаг 2. Для того, чтобы найти точку, одновременно принадлежащую и секущей плоскости, и плоскости нижней грани, продолжим прямую и найдем точку ее пересечения с прямой – .
Задача 3. Шаг 2.
Шаг 3. Проводим прямую и находим точку пересечения этой прямой с ребром – точка .
Задача 3. Шаг 3.
Шаг 4. Теперь надо найти точку в плоскости передней грани, потому что в этой плоскости у нас уже есть точка – точка . Для того, чтобы найти такую точку, продлим прямую и найдем пересечение этой прямой с прямой – точка .
Задача 3. Шаг 4
Шаг 5. Проводим прямую , отыскиваем точки пересечения ею ребер – точку , и ребра – точку .
Задача 3. Шаг 5.
Шаг 6. Соединяем точки и получаем многоугольник сечения.
Задача 3. Шаг 6
Окончательный вид сечения с другого ракурса:
Окончательный вид
Задача 4. Построить сечение параллелепипеда плоскостью, проходящей через точки . Точка в задней грани.
Задача 4. Дано
Шаг 1. Проводим прямую через две точки одной плоскости – и . Определяем точку пересечения данной прямой ребра – .
Задача 4. Шаг 1.
Шаг 2. Продолжение прямой пересечется с продолжением прямой – так как обе прямые принадлежат плоскости задней грани. Точка также принадлежит задней грани, но также и боковой. А в боковой грани у нас есть точка , и тогда можно провести прямую .
Задача 4. Шаг 2.
Шаг 3. Точка – точка пересечения прямой ребра . Продлим также ребро и найдем пересечение прямой и прямой – точку , которая принадлежит плоскости основания.
Задача 4. Шаг 3
Шаг 4. Соединяем Точки и плоскости основания, определяем точку пересечения данной прямой с ребром – точку . Соединяем полученные точки отрезками. Штрихуем полученный многоугольник сечения.
Задача 4. Шаг 4.
Окончательный вид сечения с другого ракурса:
Окончание построения
Сечение куба плоскостью
Задачи на построение сечений куба плоскостью, как правило, проще чем, например, задачи на сечения пирамиды.
Провести прямую можем через две точки, если они лежат в одной плоскости. При построении сечений куба возможен еще один вариант построения следа секущей плоскости. Поскольку две параллельные плоскости третья плоскость пересекает по параллельным прямым, то, если в одной из граней уже построена прямая, а в другой есть точка, через которую проходит сечение, то можем провести через эту точку прямую, параллельную данной.
Рассмотрим на конкретных примерах, как построить сечения куба плоскостью.
1) Построить сечение куба плоскостью, проходящей через точки A, C и M.
Задачи такого вида — самые простые из всех задач на построение сечений куба. Поскольку точки A и C лежат в одной плоскости (ABC), то через них можем провести прямую. Ее след — отрезок AC. Он невидим, поэтому изображаем AC штрихом. Аналогично соединяем точки M и C, лежащие в одной плоскости (CDD1), и точки A и M, которые лежат в одной плоскости (ADD1). Треугольник ACM — искомое сечение.
2) Построить сечение куба плоскостью, проходящей через точки M, N, P.
Здесь только точки M и N лежат в одной плоскости (ADD1), поэтому проводим через них прямую и получаем след MN (невидимый). Поскольку противолежащие грани куба лежат в параллельных плоскостях, то секущая плоскость пересекает параллельные плоскости (ADD1) и (BCC1) по параллельным прямым. Одну из параллельных прямых мы уже построили — это MN.
Через точку P проводим прямую, параллельную MN. Она пересекает ребро BB1 в точке S. PS — след секущей плоскости в грани (BCC1).
Проводим прямую через точки M и S, лежащие в одной плоскости (ABB1). Получили след MS (видимый).
Плоскости (ABB1) и (CDD1) параллельны. В плоскости (ABB1) уже есть прямая MS, поэтому через точку N в плоскости (CDD1) проводим прямую, параллельную MS. Эта прямая пересекает ребро D1C1 в точке L. Ее след — NL (невидимый). Точки P и L лежат в одной плоскости (A1B1C1), поэтому проводим через них прямую.
Пятиугольник MNLPS — искомое сечение.
3) Построить сечение куба плоскостью, проходящей через точки M, N, P.
Точки M и N лежат в одной плоскости (ВСС1), поэтому через них можно провести прямую. Получаем след MN (видимый). Плоскость (BCC1) параллельна плоскости (ADD1),поэтому через точку P, лежащую в (ADD1), проводим прямую, параллельную MN. Она пересекает ребро AD в точке E. Получили след PE (невидимый).
Больше нет точек, лежащей в одной плоскости, или прямой и точки в параллельных плоскостях. Поэтому надо продолжить одну из уже имеющихся прямых, чтобы получить дополнительную точку.
Если продолжать прямую MN, то, поскольку она лежит в плоскости (BCC1), нужно искать точку пересечения MN с одной из прямых этой плоскости. С CC1 и B1C1 точки пересечения уже есть — это M и N. Остаются прямые BC и BB1. Продолжим BC и MN до пересечения в точке K. Точка K лежит на прямой BC, значит, она принадлежит плоскости (ABC), поэтому через нее и точку E, лежащую в этой плоскости, можем провести прямую. Она пересекает ребро CD в точке H. EH -ее след (невидимый). Поскольку H и N лежат в одной плоскости (CDD1), через них можно провести прямую. Получаем след HN (невидимый).
Плоскости (ABC) и (A1B1C1) параллельны. В одной из них есть прямая EH, в другой — точка M. Можем провести через M прямую, параллельную EH. Получаем след MF (видимый). Проводим прямую через точки M и F.
Шестиугольник MNHEPF — искомое сечение.
Если бы мы продолжили прямую MN до пересечения с другой прямой плоскости (BCC1), с BB1, то получили бы точку G, принадлежащую плоскости (ABB1). А значит, через G и P можно провести прямую, след которой PF. Далее — проводим прямые через точки, лежащие в параллельных плоскостях, и приходим к тому же результату.
Работа с прямой PE дает то же сечение MNHEPF.
4) Построить сечение куба плоскостью, проходящей через точку M, N, P.
Здесь можем провести прямую через точки M и N, лежащие в одной плоскости (A1B1C1). Ее след — MN (видимый). Больше нет точек, лежащих в одной плоскости либо в параллельных плоскостях.
Продолжим прямую MN. Она лежит в плоскости (A1B1C1), поэтому пересечься может только с одной из прямых этой плоскости. С A1D1 и C1D1 точки пересечения уже есть — N и M. Еще две прямые этой плоскости — A1B1 и B1C1. Точка пересечения A1B1 и MN — S. Поскольку она лежит на прямой A1B1, то принадлежит плоскости ( ABB1), а значит, через нее и точку P, лежащую в этой же плоскости, можно провести прямую. Прямая PS пересекает ребро AA1 в точке E. PE — ее след (видимый). Через точки N и E, лежащие в одной плоскости (ADD1), можно провести прямую, след которой — NE (невидимый). В плоскости (ADD1) есть прямая NE, в параллельной ей плоскости (BCC1) — точка P. Через точку P можем провести прямую PL, параллельную NE. Она пересекает ребро CC1 в точке L. PL — след этой прямой (видимый). Точки M и L лежат в одной плоскости (CDD1), значит, через них можно провести прямую. Ее след — ML (невидимый). Пятиугольник MLPEN — искомое сечение.
Можно было продолжать прямую NM в обе стороны и искать ее точки пересечения не только с прямой A1B1, но и с прямой B1C1, также лежащей в плоскости (A1B1C1). В этом случае через точку P проводим сразу две прямые: одну — в плоскости (ABB1) через точки P и S, а вторую — в плоскости (BCC1), через точки P и R. После чего остается соединить лежащие в одной плоскости точки: M c L, E — с N.
построить сечение пирамиды
Разберем, как построить сечение пирамиды, на конкретных примерах. Поскольку в пирамиде нет параллельных плоскостей, построение линии пересечения (следа) секущей плоскости с плоскостью грани чаще всего предполагает проведение прямой через две точки, лежащие в плоскости этой грани.
В простейших задачах требуется построить сечение пирамиды плоскостью, проходящей через данные точки, уже лежащие в одной грани.
Пример.
Построить сечение плоскостью (MNP)
Построить сечение пирамиды плоскостью, проходящей через точки M, N, P.
Треугольник MNP — сечение пирамиды
Точки M и N лежат в одной плоскости ABS, следовательно, через них можем провести прямую. След этой прямой — отрезок MN. Он видимый, значит, соединяем M и N сплошной линией.
Точки M и P лежат в одной плоскости ACS, поэтому через них проведем прямую. След — отрезок MP. Мы его не видим, поэтому отрезок MP проводим штрихом. Аналогично строим след PN.
Треугольник MNP — искомое сечение.
Если точка, через которую требуется провести сечение, лежит не на ребре, а на грани, то она не будет концом следа-отрезка.
Пример. Построить сечение пирамиды плоскостью, проходящей через точки B, M и N, где точки M и N принадлежат, соответственно, граням ABS и BCS.
Здесь точки B и M лежат в одной грани ABS, поэтому можем через них провести прямую.
Аналогично проводим прямую через точки B и P. Получили, соответственно, следы BK и BL.
Точки K и L лежат в одной грани ACS, поэтому через них можем провести прямую. Ее след — отрезок KL.
Треугольник BKL — искомое сечение.
Однако не всегда через данные в условии точки удается провести прямую. В этом случае нужно найти точку, лежащую на прямой пересечения плоскостей, содержащих грани.
Пример. Построить сечение пирамиды плоскостью, проходящей через точки M, N, P.
Точки M и N лежат в одной плоскость ABS, поэтому через них можно провести прямую. Получаем след MN. Аналогично — NP. Оба следа видимые, поэтому соединяем их сплошной линией.
Точки M и P лежат в разных плоскостях. Поэтому соединить их прямой не можем.
Продолжим прямую NP.
Она лежит в плоскости грани BCS. NP пересекается только с прямыми, лежащими в этой же плоскости. Таких прямых у нас три: BS, CS и BC. С прямыми BS и CS уже есть точки пересечения — это как раз N и P. Значит, ищем пересечение NP с прямой BC.
Точку пересечения (назовем ее H), получаем, продолжая прямые NP и BC до пересечения.
Эта точка H принадлежит как плоскости (BCS), поскольку лежит на прямой NP, так и плоскости (ABC), поскольку лежит на прямой BC.
Таким образом мы получили еще одну точку секущей плоскости, лежащей в плоскости (ABC).
Через H и точку M, лежащую в этой же плоскости, можем провести прямую.
Получим след MT.
T — точка пересечения прямых MH и AC.
Так как T принадлежит прямой AC, то через нее и точку P можем провести прямую, так как они обе лежат в одной плоскости (ACS).
4-угольник MNPT — искомое сечение пирамиды плоскостью, проходящей через данные точки M,N,P.
Мы работали с прямой NP, продлевая ее для отыскания точки пересечения секущей плоскости с плоскостью (ABC). Если работать с прямой MN, приходим к тому же результату.
Рассуждаем так: прямая MN лежит в плоскости (ABS), поэтому пересекаться может только с прямыми, лежащими в этой же плоскости. У нас таких прямых три: AB, BS и AS. Но с прямыми AB и BS уже есть точки пересечения: M и N.
Значит, продлевая MN, ищем точку пересечения ее с прямой AS. Назовем эту точку R.
Точка R лежит на прямой AS, значит, она лежит и в плоскости (ACS), которой принадлежит прямая AS.
Поскольку точка P лежит в плоскости (ACS), через R и P можем провести прямую. Получаем след PT.
Точка T лежит в плоскости (ABC), поэтому через нее и точку M можем провести прямую.
Таким образом, получили все то же сечение MNPT.
Рассмотрим еще один пример такого рода.
Построить сечение пирамиды плоскостью, проходящей через точки M, N, P.
Через точки M и N, лежащие в одной плоскости (BCS), проводим прямую. Получаем след MN (видимый).
Через точки N и P, лежащие в одной плоскости (ACS), проводим прямую. Получаем след PN (невидимый).
Через точки M и P прямую провести не можем.
1) Прямая MN лежит в плоскости (BCS), где есть еще три прямые: BC, SC и SB. С прямыми SB и SC уже есть точки пересечения: M и N. Поэтому ищем точку пересечения MN с BC. Продолжив эти прямые, получаем точку L.
Точка L принадлежит прямой BC, а значит, она лежит в плоскости (ABC). Поэтому через L и P, которая также лежит в плоскости (ABC) можем провести прямую. Ее след — PF.
F лежит на прямой AB, а значит, и в плоскости (ABS). Поэтому через F и точку M, которая также лежит в плоскости (ABS), проводим прямую. Ее след — FM. Четырехугольник MNPF — искомое сечение.
2) Другой путь — продолжить прямую PN. Она лежит в плоскости (ACS) и пересекается с прямыми AC и CS, лежащими в этой плоскости, в точках P и N.
Значит, ищем точку пересечения PN с третьей прямой этой плоскости — с AS. Продолжаем AS и PN, на пересечении получаем точку E. Поскольку точка E лежит на прямой AS, принадлежащей плоскости (ABS), то через E и точку M, которая также лежит в (ABS), можем провести прямую. Ее след — FM. Точки P и F лежат водной плоскости (ABC), проводим через них прямую и получаем след PF (невидимый).
Обучение с МК
Пример: модели МК в электронном учебнике
Сечения многогранников
ТЕОРИЯ
В этом разделе мы рассмотрим методы построения сечений многогранников. Плоскость сечения, как правило, будет задаваться тремя точками – K, L, M. Сложность такой задачи во многом определяется расположением точек, задающих плоскость сечения.
Пример 1
Самый простой случай – когда точки лежат на трёх смежных рёбрах пирамиды – не нуждается в разборе.
Модель 1
Основной метод, который используется при построении сечений, называется методом следов.
Следом называется прямая, по которой плоскость сечения пересекает плоскость любой из граней многогранника. Если такой след найден, то точки его пересечения с соответствующими рёбрами многогранника и будут вершинами искомого сечения.
Пример 2
Пусть теперь точки K и M лежат на боковых рёбрах пирамиды, а точка L – на стороне основания.
Модель 2
- Проведём в плоскости SAC прямую KL – след сечения в этой плоскости.
- Отметим точку P пересечения KL с SC.
- Проведём прямую PM – след сечения в плоскости SBC, – и отметим точку пересечения PM и BC.
- Все четыре вершины сечения получены – строим сечение.
Пример 3
Несколько труднее случай, когда одна из точек лежит на ребре, а две другие — на гранях пирамиды.
Модель 3
Теперь сразу построить след плоскости сечения в какой-то из граней нельзя.
- Рассмотрим вспомогательную плоскость SKM, которая пересекает рёбра AC и BC в точках E и F соответственно.
- Построим в этой плоскости прямую KM – след плоскости сечения – и отметим точку P пересечения KM с EF.
- Точка P лежит в плоскости сечения и в плоскости ABC. Но в этой же плоскости лежит и точка L. Проведём прямую PL – след сечения в плоскости ABC – и отметим точку пересечения PL с BC.
- Строим след сечения в плоскости SBC и отмечаем точку его пересечения с SC.
- Строим след сечения в плоскости SAC и отмечаем точку его пересечения с SA.
- Все четыре вершины сечения получены – строим сечение.
Использованный на первом шаге построения приём часто называют методом вспомогательных плоскостей. Рассмотрим ещё один пример, где он используется.
Пример 4
Рассмотрим теперь самый общий случай, когда все три точки K, L и M лежат на гранях пирамиды.
Модель 4
- Как и в предыдущем случае проведём вспомогательную плоскость CKM, которая пересекает рёбра SA и SB в точках E и F соответственно.
- Построим в этой плоскости прямую KM — след плоскости сечения – и отметим точку P пересечения KM с EF.
- Точка P, как и L, лежит в плоскости SAB, поэтому прямая PL будет следом сечения в плоскости SAB, а её точки пересечения с SA и SB – вершинами сечения.
- Теперь можно построить следы сечения в плоскостях SAC и SBC и отметить их точки пересечения с рёбрами AC и BC.
- Все четыре вершины сечения получены – строим сечение.
С помощью метода вспомогательных плоскостей можно строить сечения, «не выходя» за пределы многогранника. Вернёмся в связи с этим к примеру 2.
Пример 2’
Точки K и M лежат на боковых рёбрах пирамиды, а точка L – на стороне основания. Построим сечение, «не выходя» за пределы многогранника.
Модель 5
- Проведём вспомогательную плоскость SLB и в ней отрезок LM, который принадлежит плоскости сечения.
- Проведём ещё одну вспомогательную плоскость BCK и построим точку пересечения SL и CK – точку E. Эта точка принадлежит обеим вспомогательным плоскостям.
- Отметим точку пересечения отрезков LM и EB – точку F. Точка F лежит в плоскости сечения и в плоскости BCK.
- Проведём прямую KF и отметим точку пересечения этой прямой c BC – точку N. Эта точка будет недостающей четвёртой вершиной сечения.
- Все четыре вершины сечения получены – построим сечение.
Можно использовать ту же самую идею иначе. Проведём в начале анализ построенного сечения – т.е. начнём с конца. Допустим, что по точкам K, L и M построено сечение KLMN.
Модель 6
Анализ
Обозначим через F точку пересечения диагоналей четырёхугольника KLMN. Проведём прямую CF и обозначим через F1 точку её пересечения с гранью SAB. С другой стороны, точка F1 совпадает с точкой пересечения прямых KB и MA, исходя из чего её и можно построить.
Построение
- Проведём прямые KB и MA и отметим точку их пересечения F1.
- Проведём прямые CF1 и LM и отметим точку их пересечения F.
- Проведём прямую KF и отметим точку её пересечения с ребром CB – точку N. Эта точка будет недостающей четвёртой вершиной сечения.
- Все четыре вершины сечения получены – построим сечение.
Использованный в этом решении приём называют методом внутреннего проектирования. Построим с его помощью сечение из примера 4, когда все три точки лежат на гранях пирамиды.
Пример 3’
Точки K, L и M лежат на гранях пирамиды. Построим сечение, «не выходя» за пределы многогранника.
Допустим, что сечение уже построено.
Модель 7
Анализ
Пусть плоскость сечения пересекает ребро CB в точке P. Обозначим через F точку пересечения KM и LP. Построим центральные проекции точек K, F и M из точки C на плоскость SAB и обозначим их K1, F1 и M1. Точки K1 и M1 легко находятся, а точку F1 можно получить как точку пересечения K1M1 и LB.
Построение
- Построим центральные проекции точек K и M из точки C на плоскость SAB и обозначим их K1 и M1.
- Проведём прямые K1M1 и LB и отметим точку их пересечения F1.
- Проведём прямые CF1 и KM и отметим точку их пересечения F.
- Проведём прямую LF и отметим точку её пересечения с ребром CB – точку P. Это первая вершина искомого сечения.
- Проведём прямую PM и отметим точку её пересечения с ребром SB. Это вторая вершина сечения.
- Из второй вершины проведём прямую через точку L и найдём третью вершину сечения.
- Из третьей вершины проведём прямую через точку K и найдём четвёртую вершину сечения.
- Все четыре вершины сечения получены – построим сечение.
УПРАЖНЕНИЯ
Более сложные упражнения помечены звёздочкой.
1. Постройте сечение треугольной пирамиды плоскостью, проходящей через точки K, L и M (см. модели).
2. Постройте сечение куба плоскостью, проходящей через точки K, L и M (см. модели).
3. На рёбрах пирамиды SABC отмечены точки K, L и M. Постройте:
4*. На рёбрах пирамиды SABC отмечены точки K, L, M, P, N и Q. Постройте:
5*. На ребре AB треугольной пирамиды SABC отмечена точка K. Постройте сечение пирамиды плоскостью, проходящей через точку K и параллельной BC и SA.
Модель
6*. На рёбрах AB и CS треугольной пирамиды SABC отмечены точки K и M. Постройте сечение пирамиды плоскостью, проходящей через точки K и M и параллельной AS.
Модель
7*. Постройте сечение треугольной пирамиды плоскостью, проходящей через точки K, L и M, лежащих в плоскостях её боковых граней (но не на самих гранях!).
Модель
8*. На плоскости проведены три луча с общим началом – a, b и с – и отмечены три точки – A, B и C. Постройте треугольник, вершины которого лежат на этих лучах, а стороны проходят через точки A, B и C.
Модель
Стереометрия. Задачи на построение сечений
В задачах на построение сечений мы применяем все те определения, теоремы, свойства и признаки, которые изучаем и доказываем на уроках в школе.
Например, если две плоскости имеют общую точку, то они пересекаются по прямой. Это значит, что плоскость сечения и, например, плоскость грани пирамиды будут пересекаться по прямой, и на чертеже будет показана часть этой прямой – отрезок.
Как вы думаете — может ли восьмиугольник быть сечением куба?
И может ли правильный пятиугольник быть сечением куба?
Чтобы соединить какие-либо две точки на чертеже, нам нужна плоскость, в которой эти точки лежат. Иногда это грань объемного тела. Иногда – вспомогательная плоскость.
А вообще сечение — это плоская фигура, которая образуется при пересечении объемного тела плоскостью и граница которой лежит на поверхности этого объемного тела.
Конечно, восьмиугольник сечением куба быть не может. Ведь у куба 6 граней, и поэтому сечение куба не может иметь больше 6 сторон.
При построении сечений мы часто используем следующие теоремы:
1. Линии пересечения параллельных плоскостей третьей плоскостью параллельны.
Именно поэтому правильный пятиугольник не может быть сечением куба. Ведь 4 из 5 сторон этого пятиугольника лежат в параллельных гранях куба и поэтому параллельны. А у правильного пятиугольника параллельных сторон нет.
2. Теорема о прямой и параллельной ей плоскости:
Пусть прямая m параллельна плоскости α. Если плоскость β проходит через прямую m и пересекает плоскость α по прямой c, то c параллельна m.
Эта теорема помогает, например, при построении сечений пирамиды.
Разберем несколько задач на построение сечений.
1. Постройте сечение тетраэдра плоскостью, проходящей через точки М, N, K. Точка М лежит на ребре AD, N — на ребре DC, К — на ребре АВ.
Проведем МК в плоскости грани ABD и MN в плоскости грани ADC.
Продлим отрезки MN и АС;
Проведем РК в плоскости нижней грани; четырехугольник — искомое сечение.
2. Постройте сечение тетраэдра плоскостью, проходящей через точки М, N, K. Точка N лежит на ребре
Покажем, что плоскость сечения пересекает плоскость основания пирамиды по прямой NT, параллельной МК.
Прямая МК параллельна АВ, лежащей в плоскости основания АВС. Значит,
Плоскость сечения проходит прямую МК, параллельную плоскости АВС. По теореме о прямой и параллельной ей плоскости, линия пересечения плоскости сечения и плоскости АВС параллельна прямой МК. Трапеция MKNT — искомое сечение.
3. Постройте сечение куба проходящее через вершину и середины ребер и
Пусть М — середина АВ, N — середина ВС, Продолжим прямую MN до пересечения с продолжениями ребер DC и AD;
Треугольники АМР и KCN — прямоугольные равнобедренные, причем
Проведем — в плоскости задней грани и — в плоскости левой грани куба;
Пятиугольник — искомое сечение. В нем есть параллельные стороны: так как линии пересечения параллельных плоскостей третьей плоскостью параллельны.
4. Постройте сечение куба проходящее через вершину В и середины ребер и
Пусть М — середина ребра , N — середина ребра
Поскольку линии пересечения параллельных плоскостей третьей плоскостью параллельны, плоскость сечения пересекает заднюю грань по прямой, параллельной ВМ, а левую грань — по прямой, параллельной BN. Тогда искомое сечение — ромб
5. Постройте сечение правильного тетраэдра АВСS, проходящее через точку К — середину ребра АВ, точку М, делящую ребро АS в отношении , и точку N — середину апофемы грани SBC.
Пусть SH — апофема грани SBC; N—середина SH.
Проведем MN в плоскости ASH;
Четырехугольник KMEF — искомое сечение.
Постройте сечение правильного тетраэдра АВСS, проходящее через точку К — середину ребра АВ, и точки М и Т — центры граней АSС и SBC.
Пусть SЕ и SH — апофемы граней ASC и SBC; точки М и Т делят отрезки SЕ и SH в отношении 2:1, считая от точки S.
Из подобия треугольников SMT и SEH получим, что Значит
По теореме о прямой и параллельной ей плоскости, линия пересечения плоскости сечения и нижней грани параллельна прямой МТ. Это значит, что плоскость сечения пересекает грань АВС по прямой АВ. Достроим сечение.
где — середина ;
— искомое сечение.
7. Постройте сечение куба , проходящее через точку М, лежащую на ребре и точки Т и К, принадлежащие граням АВС и .
Точки М и К лежат в плоскости задней грани . Соединив М и К, получим, что
Соединив точки Р и Т в нижней грани, получим FN — линию пересечения плоскости сечения с нижней гранью;
. Трапеция FMEN — искомое сечение.
8. И самый сложный случай. Построим сечение куба плоскостью МNK, где , причем расстояния от точек М и N до плоскости АВС различны.
Пусть точки и — проекции точек M и N на плоскость нижней грани
Плоскость проходит через параллельные прямые и .
Проведем в этой плоскости MN и
.
Точки Р и К лежат в нижней грани куба, следовательно, плоскость сечения пересекает нижнюю грань по прямой РК. Дальнейшее построение — очевидно.
Построить сечение онлайн.
Учимся строить сечения
Само же задание обычно звучит так: «построить натуральный вид фигуры сечения»
. Конечно же, мы решили не оставлять этот вопрос в стороне и постараться по возможности объяснить, как происходит построение наклонного сечения.
Для того, чтобы объяснить, как строится наклонное сечение, я приведу несколько примеров. Начну конечно же с элементарного, постепенно наращивая сложность примеров. Надеюсь, что проанализировав эти примеры чертежей сечений, вы разберетесь в том, как это делается, и сможете сами выполнить свое учебное задание.
Рассмотрим «кирпичика» с размерами 40х60х80 мм произвольной наклонной плоскостью. Секущая плоскость разрезает его по точкам 1-2-3-4. Думаю, тут все понятно.
Перейдем к построению натурального вида фигуры сечения.
1. Первым делом проведем ось сечения. Ось следует чертить параллельно плоскости сечения — параллельно линии, в которую проецируется плоскость на главном виде — обычно именно на главном виде задают задание на построение наклонного сечения
(Далее я всегда буду упоминать про главный вид, имея в виду что так бывает почти всегда в учебных чертежах).
2. На оси откладываем длину сечения. На моем чертеже она обозначена как L. Размер L определяется на главном виде и равен расстоянию от точки вхождения сечения в деталь до точки выхода из нее.
3. Из получившихся двух точек на оси перпендикулярно ей откладываем ширины сечения в этих точках. Ширину сечения в точке вхождения в деталь и в точке выхода из детали можно определить на виде сверху. В данном случае оба отрезка 1-4 и 2-3 равны 60 мм. Как видно из рисунка выше, края сечения прямые, поэтому просто соединяем два наших получившихся отрезка, получив прямоугольник 1-2-3-4. Это и есть — натуральный вид фигуры сечения нашего кирпичика наклонной плоскостью.
Теперь давайте усложним нашу деталь. Поставим кирпичик на основание 120х80х20 мм и дополним фигуру ребрами жесткости. Проведем секущую плоскость так, чтобы она проходила через все четыре элемента фигуры (через основание, кирпичик и два ребра жесткости). На рисунке ниже вы можете увидеть три вида и реалистичое изображение этой детали
Попробуем построить натуральный вид этого наклонного сечения. Начнем опять с оси сечения: проведем ее параллельно плоскости сечения обозначенного на главном виде. На ней отложим длину сечения равную А-Е. Точка А является точкой входа сечения в деталь, а в частном случае — точкой входа сечения в основание. Точкой выхода из основания является точка В. Отметим точку В на оси сечения. Аналогичным образом отметим и точки входа-выхода в ребро, в «кирпичик» и во второе ребро. Из точек А и В перпендикулярно оси отложим отрезки равные ширине основания (в каждую сторону от оси по 40, всего 80мм). Соединим крайние точки — получим прямоугольник, являющийся натуральным видом сечения основания детали.
Теперь настал черед построить кусочек сечения, являющийся сечением ребра детали. Из точек В и С отложим перпендикуляры по 5 мм в каждую сторону — получатся отрезки по 10 мм. Соединим крайние точки и получим сечение ребра.
Из точек С и D откладывем перпендикулярные отрезки равные ширине «кирпичика» — полностью аналогично первому примеру этого урока.
Отложив перпендикуляры из точек D и Е равные ширине второго ребра и соединив крайние точки получим натуральный вид его сечения.
Остается стереть перемычки между отдельными элементами получившегося сечения и нанести штриховку. Должно получиться что-то вроде этого:
Если же по заданному сечению произвести разделение фигуры, то мы увидим следующий вид:
Я надеюсь, что вас не запугали нудные абзацы описания алгоритма. Если вы прочли все вышенаписанное и еще не до конца поняли, как начертить наклонное сечение
, я очень советую вам взять в руки лист бумаги и карандаш и попытаться повторить все шаги за мной — это почти 100% поможет вам усвоить материал.
Когда-то я пообещал продолжение данной статьи. Наконец-то я готов представить вам пошагового построения наклонного сечения детали, более приближенной к уровню домашних заданий. Более того, наклонное сечение задано на третьем виде (наклонное сечение задано на виде слева)
или
запишите наш телефон и расскажите о нас своим друзьям — кто-то наверняка ищет способ выполнить чертежи
или
создайте у себя на страничке или в блоге заметку про наши уроки — и кто-то еще сможет освоить черчение.
Да всё хорошо, только хотелось бы увидеть как делаеться тоже самое на более сложной детали, с фасками и конусовидным отверстием например.
Спасибо. А разве на разрезах ребра жесткости не штрихуются?
Именно. Именно они и не штрихуются. Потому что таковы общие правила выполнения разрезов. Однако их обычно штрихуют при выполнении разрезов в аксонометрических проекциях — изометрии, диметрии и т.д. При выполнении наклонных сечений, область относящаяся к ребру жесткости так же заштриховывается.
Спасибо,очень доступно.Скажите,а наклонное сечение можно выполнить на виде с верху,или на виде слева?Если да,то хотелось бы увидеть простейший пример.Пожалуйста.
Выполнить такие сечения можно. Но к сожалению у меня сейчас нет под рукой примера. И есть еще один интересный момент: с одной стороны, там ничего нового, а с другой стороны на практике такие сечения чертить реально сложнее. Почему-то в голове все начинает путаться и у большинства студентов возникают сложности. Но вы не сдавайтесь!
Да всё хорошо, только хотелось бы увидеть как делаеться тоже самое, но с отверстиями (сквозными и несквозными), а то в элипс они в голове так и не превращаются
помогите мне по комплексной задаче
Жаль, что вы именно тут написали. Написали бы в почту — может мы смогли бы успеть все обсудить.
Хорошо объясняете.
Как быть если одна из сторон детали полукруглая? А также в детали есть отверстия.
Илья, используйте урок из раздела по начертательной геометрии «Сечение цилиндра наклонной плоскостью». С его помощью сможете разобраться, что делать с отверстиями (они же по сути тоже цилиндры) и с полукруглой стороной.
благодарю автора за статью!кратко и доступно пониманию.лет 20 назад сам грыз гранит науки,теперь сыну помогаю.
многое забыл,но Ваша статья вернула фундаментальное понимание темы.Пойду с наклонным сечением цилиндра разбираться)
Добавьте свой комментарий.
Цели урока:
рассмотреть решение задач на построение сечений, если две точки сечения принадлежат одной грани.
Ход урока
Изучение новых понятий
Определение 1.
Секущая плоскость многогранника — любая плоскость, по обе стороны от которой имеются точки данного многогранника.
Определение 2.
Сечение многогранника — это многоугольник, сторонами которого являются отрезки, по которым секущая плоскость пересекает грани многогранника.
Задание. Назовите отрезки, по которым секущая плоскость пересекает грани параллелепипеда (рис. 1). Назовите сечение параллелепипеда.
Основные действия при построении сечений
Теоретическая основа | Ответ | |
1. Как проверить: построено сечение или нет | Определение сечения | Это должен быть многоугольник, стороны которого принадлежат граням многогранника |
2. До начала работы определить: можно ли по данным задачи построить сечение | Способы задания плоскости | Можно, если данные элементы задают однозначно плоскость, то есть даны три точки, не лежащие на одной прямой, точка и прямая и т. д. |
3. В плоскости какой-то грани есть две точки секущей плоскости | Если две точки принадлежат плоскости, то вся прямая принадлежит плоскости | Через эти точки провести прямую |
4. В одной из параллельных граней есть сторона сечения, а в другой — точка сечения | Свойство параллельных плоскостей | Через эту точку провести прямую, параллельную данной |
5. В одной грани есть точка сечения и известно, что секущая плоскость проходит через прямую, параллельную этой грани | Признак параллельности прямой и плоскости. Свойство параллельных плоскостей | Построить прямую пересечения плоскостей, параллельную данной прямой |
6. Две точки сечения принадлежат одной грани, а третья точка лежит в смежной | Аксиомы стереометрии | Секущая плоскость пересекает грани по отрезкам OC и AB, которые называются следом секущей плоскости на гранях |
Решение задач
Задача 1.
Какой из четырехугольников, EFKM или EFKL, может быть сечением данного многогранника (рис. 2)? Почему?
Задача 2.
Ученик изобразил сечение тетраэдра (рис. 3). Возможно ли такое сечение?
Решение
. Нужно доказать, что N, M и H, L лежат в одной плоскости. Пусть точки N и M принадлежат задней грани, H и L — нижней грани, то есть точка пересечения NM и HL должна лежать на прямой, принадлежащей обеим граням, то есть AC. Продлим прямые NM и HL и найдем точку их пересечения. Эта точка не будет принадлежать прямой AC. Значит, точки N, M, L, H не образуют плоский многоугольник. Невозможно.
Задача 3.
Построить сечение тетраэдра ABCS плоскостью, проходящей через точки K, L, N, где K и N — середины ребер SA и SB соответственно (рис. 4).
1. В какой грани можно построить стороны сечения?
2. Выбираем одну из точек, на которой оборвалось сечение.
Решение. Способ I.
Выбираем точку L.
Определяем грань, в которой лежит выбранная точка и в которой надо построить сечение.
Определяем грань, в которой лежит прямая KN, не проходящая через выбранную точку L.
Находим линию пересечения граней ABC и ASB.
Каково взаимное расположения прямых KN и AB (рис. 5)?
[Параллельны.]
Что нужно построить, если секущая плоскость проходит через прямую, параллельную линии пересечения плоскостей?
[Через точку L провести прямую,
параллельную AB. Эта прямая
пересекает ребро CB в точке P.]
Соединяем точки, принадлежащие одной грани. KLPN — искомое сечение.
Способ II
. Выбираем точку N (рис. 6).
Определяем грани, в которых лежат точка N и прямая KL.
Линией пересечения этих плоскостей будет прямая SC. Находим точку пересечения прямых KL и SC. Обозначим ее Y.
Соединяем точки N и Y. Прямая NY пересекает ребро CB в точке P.
Соединяем точки, принадлежащие одной
грани.
KLNP — искомое сечение.
Объясните данное решение.
Один учащийся работает у доски, остальные в тетрадях.
Задача 4
. Построить сечение параллелепипеда, проходящее через точки M, P и H, H ` (A1B1C1) (рис. 7).
Решение.
1. Соедините точки, принадлежащие одной грани.
2. Какую прямую и точку выбираем для построения сечения?
3. Что определяем дальше?
4. Каково взаимное расположение выбранной прямой и линии пересечения граней (рис. 8)?
5. Как построить след секущей плоскости на грани B1C1D1A1, проходящий через точку H?
6. Соедините точки, принадлежащие одной грани.
7. Какую прямую и точку нужно выбрать для построения следа секущей плоскости на грани AA1D1D?
8. Каково взаимное расположение граней BB1C1C и AA1D1D?
9. Каким свойством необходимо воспользоваться для построения следа секущей плоскости на грани AA1D1D?
10. Назовите искомое сечение.
Задача 5.
Построить сечение пирамиды SABCD, проходящее через точки M, P и H,
H` (ABC) (рис. 9).
Ответ: см. рисунок 10.
Задание на дом
Задача
. Как изменятся построения, если точ-
ка H изменит свое положение? Построить сечения, используя разные варианты (рис. 11).
В этом методе мы
первым действием (после нахождения
вторичных проекций данных точек) строим
след секущей плоскости на плоскости
верхнего или нижнего основания призмы
или усечённой пирамиды или на основании
пирамиды
Зад
2.
Дано
изображение треугольной призмы
ABCA
1 B
1 C
1
и трёх точек
M
,
N
,
P
,
которые лежат
соответственно на ребре СС
1
и гранях
ABB
1 A
1 ,
BCC
1 B
1 .
Построить
сечение призмы плоскостью
,
проходящей
через
M
,
N
,
P
.
Решение.
Мы уже имеем одну точку на верхнем
основании призмы, поэтому и след мы
будем строить на верхнем основании.
Строим вторичные проекции точек N
и P
на верхнее
основание.Затем: 1
.N
P
N
3 P
3 =X
;
2
. M
X
=p
–след; 3
.p
B
1 C
1 =D
.
Дальнейшие действия
уже были показаны выше на чертеже.
Зад
3.
Реш.
Мы будем
строить след секущей плоскости на нижнем
основании призмы.
Строим:1.
M
N
E
D
=X
,
M
P
EP
3 =Y
;
2. p
=XY
– след;3.
p
B
C
=G
,
p
D
C
=H
.
Нам нужно найти
точку
на ребре
BB
1
или на ребре AA
1 .
ВграниABB
1 A
1
мы уже
имеем одну точку P
.
Поэтому нижнее ребро этой грани, т.е.
AB
,
мы продолжаем до пересечения со следом.
4. A
B
p
=Z
.
5. P
Z
AA
1 =F
;
P
Z
BB
1 =K
.Дальнейшие
действия уже показаны выше.
Если окажется, что
линия AB
не пересекается
со следом, то искомая FK
тоже будет
параллельна следу.
Зад
4.
Реш.
1.
P
N
P
o N
o =X
;
2. M
N
CN
o =Y
;3.
p
=XY
– след;
3.
C
B
p
=Z
;4.
Z
M
S
B
=E
;
5. E
N
S
A
=G
6.
GEMF
– иск
сечение.
17. Построение сечения цилиндра.
Если секущая
плоскость задана тремя точками, то мы
всегда можем найти её след на плоскости
основания цилиндра или конуса и точку
(P
,
O
)
на его оси. Поэтому считаем, что секущая
плоскость задана именно этими элементами.
Сначала
рас-им случай, когда плоскость пересекает
только боковую поверхность цилиндра.
Тогда сечением цилиндра будет эллипс
(;¯ и его изображение – тоже эллипс.
Мы знаем способ построения эллипса,
если известны два его сопряжённых
диаметра. Мы сейчас покажем, как можно
найти изображение главных диаметров
эллипса (;¯.
Пусть
и 1
– эллипсы,
изображающие нижнее и верхнее основания
цилиндра, O
и O
1
– их центры.
Проведём диаметр A
3 B
3
нижнего основания, параллельный следу
и сопряжённый ему диаметр C
3 D
3 .
Для построения C
3 D
3
мы используем
хорду K
3 L
3 ,
один конец которой принадлежит контурной
образующей. Напомним, что
A
3 B
3
и C
3 D
3
изображают
перпендикулярные диаметры. Продолжим
C
3 D
3
до пересечения
со следом. Получим точ X
.
Прям.PX
наз-ём осью
сечения.
Поднимем точки
C
3
и D
3
до оси
сечения. Получим C
и D
.
Отрезок
CD
является изображением большогодиаметра
сечения. Поднимем отрезок
A
3 B
3 на
высоту OP
.
Получим отрезок AB
,
который является изображением малого
диаметра сечения. Отр-и AB
и CD
–сопряж-ые
диам. эллипса .
Найти
ещё точки, в которых эллипс переходит
с видимой стороны цилиндра на невидимую,
а значит, сплошная линия переходит в
пунктир. Это точки пересечения секущей
плоскости с контурными образующими.
ПустьY
3 =K
3 L
3 C
3 D
3 .
Поднимем Y
3
до оси
сечения. Получим точку Y
.
Поднимем хорду K
3 L
3
на высоту
YY
3 .
Получим отрезок KL
.
Мы нашли требуемую точку K
,
а попутно, ещё одну дополнительную точку
L
.
Точка M
,
изобр-щая пересечение секущей плоск-и
со второй контурной образующей симметрична
точкеK
относительно точкиP
.Допол-но
построим точN
,
симметричнуюL
относ-нточки
P
Покажем способ,
как можно найти любое кол-во точек на
сечении без испол-ия этих диаметров.
выбираем люб.
точкуV
3
на эллипсе .
Проводим диаметрV
3 T
3
и продолжаем его до пересечения со
следом.Получим точкуU
.
Поднимаем точки V
3
и T
3
до прямой
UP
.
Получаем две точки V
и T
на сечении. Выбирая вместо V
3
другую
точку, получим др. 2 точки на сеч.Если
выбрать точку K
3 ,
лежащую на контурно образующей, мы
найдём точки K
и M
,
в которых сплошная линия на сечении
должна перейти в пунктирную.
А вы знаете, что называется сечением многогранников плоскостью? Если вы пока сомневаетесь в правильности своего ответа на этот вопрос, то можете довольно просто себя проверить. Предлагаем пройти небольшой тест, представленный ниже.
Вопрос. Назовите номер рисунка, на котором изображено сечение параллелепипеда плоскостью?
Итак, правильный ответ – на рисунке 3.
Если вы ответите правильно, это подтверждает то, что вы понимаете, с чем имеете дело. Но, к сожалению, даже правильный ответ на вопрос-тест не гарантирует вам наивысших отметок на уроках по теме «Сечения многогранников». Ведь самым сложным является не распознавание сечений на готовых чертежах, хотя это тоже очень важно, а их построении.
Для начала сформулируем определение сечения многогранника. Итак, сечением многогранника называют многоугольник, вершины которого лежат на ребрах многогранника, а стороны – на его гранях.
Теперь потренируемся быстро и безошибочно строить точки пересечения данной прямой с заданной плоскостью. Для этого решим следующую задачу.
Построить точки пересечения прямой MN с плоскостями нижнего и верхнего оснований треугольной призмы ABCA 1 B 1 C 1 , при условии, что точка M принадлежит боковому ребру CC 1 , а точка N – ребру BB 1 .
Начнем с того, что продлим на чертеже прямую MN в обе стороны (рис. 1). Затем, чтобы получить необходимые по уловию задачи точки пересечения, продлеваем и прямые, лежащие в верхнем и нижнем основаниях. И вот наступает самый сложный момент в решении задачи: какие именно прямые в обоих основаниях необходимо продлить, так как в каждом из них имеется по три прямые.
Чтобы правильно сделать заключительный шаг построения, необходимо определить, какие из прямых оснований находятся в той же плоскости, что и интересующая нас прямая MN. В нашем случае – это прямая CB в нижнем и C 1 B 1 в верхнем основаниях. И именно их и продлеваем до пересечения с прямой NM (рис. 2).
Полученные точки P и P 1 и есть точки пересечения прямой MN с плоскостями верхнего и нижнего оснований треугольной призмы ABCA 1 B 1 C 1 .
После разбора представленной задачи можно перейти непосредственно к построению сечений многогранников. Ключевым моментом здесь будут рассуждения, которые и помогут прийти к нужному результату. В итоге постараемся в итоге составить шаблон, который будет отражать последовательность действий при решении задач данного типа.
Итак, рассмотрим следующую задачу. Построить сечение треугольной призмы ABCA 1 B 1 C 1 плоскостью, проходящей через точки X, Y, Z, принадлежащие ребрам AA 1 , AC и BB 1 соответственно.
Решение: Выполним чертеж и определим, какие пары точек лежат в одной плоскости.
Пары точек X и Y, X и Z можно соединить, т.к. они лежат в одной плоскости.
Построим дополнительную точку, которая будет лежать в той же грани, что и точка Z. Для этого продлим прямые XY и СС 1 , т.к. они лежат в плоскости грани AA 1 C 1 C. Назовем полученную точку P.
Точки P и Z лежат в одной плоскости – в плоскости грани CC 1 B 1 B. Поэтому можем их соединить. Прямая PZ пересекает ребро CB в некоторой точке, назовем ее T. Точки Y и T лежат в нижней плоскости призмы, соединяем их. Таким образом, образовался четырехугольник YXZT, а это и есть искомое сечение.
Подведем итог. Чтобы построить сечение многогранника плоскостью, необходимо:
1) провести прямые через пары точек, лежащих в одной плоскости.
2) найти прямые, по которым пересекаются плоскости сечения и грани многогранника. Для этого нужно найти точки пересечения прямой, принадлежащей плоскости сечения, с прямой, лежащей в одной из граней.
Процесс построения сечений многогранников сложен тем, что в каждом конкретном случае он различен. И никакая теория не описывает его от начала и до конца. На самом деле есть только один верный способ научиться быстро и безошибочно строить сечения любых многогранников – это постоянная практика. Чем больше сечений вы построите, тем легче в дальнейшем вам будет это делать.
blog.сайт,
при полном или частичном копировании материала ссылка на первоисточник обязательна.
Практическое занятие: «Параллелепипед. Построение сечений параллелепипеда ».
1.
Цель практической работы
: .
Закрепить знания теоретического материала о многогранниках,
навыки решения задач на построение сечений,
умения анализировать чертеж.
2.Дидактическое оснащение практической работы
: АРМ, модели и развёртки многогранников, измерительные инструменты, ножницы, клей, плотная бумага.
Время:2 часа
Задания к работе:
Задание 1
Построить сечение параллелепипеда ABCDA
1
B
1
C
1
D
1
плоскостью, проходящей через точки M, N, P, лежащие, на прямых, соответственно, A
1
B
1,
А
D
,
DC
Образец
и последовательность решения задачи:
1.Точки N и P лежат в плоскости сечения и в плоскости нижнего основания параллелепипеда. Построим прямую, проходящую через эти точки. Эта прямая является следом секущей плоскости на плоскость основания параллелепипеда.
2.Продолжим прямую, на которой лежит сторона AB параллелепипеда. Прямые AB и NP пересекутся в некоторой точке S. Эта точка принадлежит плоскости сечения.
3.Так как точка M также принадлежит плоскости сечения и пересекает прямую АА
1
в некоторой точке Х.
4.Точки X и N лежат в одной плоскости грани АА
1
D
1
D, соединим их и получим прямую XN.
5.Так как плоскости граней параллелепипеда параллельны, то через точку M можно провести прямую в грани A
1
B
1
C
1
D
1
, параллельную прямой NP. Эта прямая пересечет сторону В
1
С
1
в точке Y.
6.Аналогично проводим прямую YZ, параллельно прямой XN. Соединяем Z с P и получаем искомое сечение – MYZPNX.
Задание 2
Вариант1.
Построить сечение параллелепипеда АВСDА1В1С1D1 плоскостью, заданной следующими точками
M
,
N
и
P
1 Уровень: Все три точки лежит на рёбрах, выходящих из вершиныА
2 Уровень.
M
лежит в грани AA1D1D,
N
лежит в грани АА1В1В,
P
лежит в грани СС1D1D.
3 Уровень.
M
лежит на диагонали B1D,
N
лежит на диагонали АС1,
P
лежит на ребре С1D1.
Вариант2.
Построить сечение параллелепипеда АВСDА1В1С1D1 плоскостью, проходящей через прямую DQ, где точка Q лежит на ребре СС1 и точку Р, заданную следующим образом
1 Уровень: Все три точки лежит на рёбрах, выходящих из вершиныС
2 Уровень: М лежит на продолжении ребра А1В1, причем точка А1 находится между точками В1 и Р.
3 Уровень: Р лежит на диагонали В1D
Порядок выполнения работы:
1.Изучите теоретический материал по темам:
Параллелепипед.
Прямой параллелепипед.
Наклонный параллелепипед.
Противолежащие грани параллелепипеда.
Свойства диагоналей параллелепипеда.
П
онятие секущей плоскости и правила её построения.
Какие виды многоугольников получаются в сечении куба и параллелепипеда.
2. Постройте
параллелепипед
ABCDA
1
B
1
C
1
D
1
3.Разберите решение задачи № 1
4.Последовательно постройте сечение
параллелепипеда
ABCDA
1
B
1
C
1
D
1
плоскостью, проходящей через точки P, Q, R задачи № 1.
5.Постройте ещё три параллелепипеда и выделите на них сечения к задачам 1, 2, и 3 уровней
Критерии оценивания
:
Литература: Атанасян Л.С. Геометрия: Учебник для 10-11 кл. общеобразоват. учреждений. Л.С. Атанасян, В.Ф. Бутузов, С.Б. Кодомцев и др. — М.: Просвещение, 2010г Зив Б.Г. Задачи по геометрии: Пособие для учащихся 7-11 кл. общеобразоват. учреждений. / Б.Г. Зив, В.М. Мейлер, А.Г. Баханский. — М.: Просвещение, 2010. В. Н. ЛитвиненкоЗадачи на развитие пространственных представлений. Книга для учителя. — М.: Просвещение, 2010г
Дидактический материал к заданию практического занятия
К задаче № 1:
Некоторые возможные сечения:
Построить сечения параллелепипеда плоскостью, проходящей через данные точки
Чертеж архитектурного разреза: проектирование здания и разрез
Можно взять один план и разработать его для нескольких совершенно разных разделов с такими разными объемами и поверхностями, что они кажутся не связанными друг с другом. Напротив, два хорошо скоординированных раздела могут иметь только один соответствующий план. Дело здесь в том, чтобы подчеркнуть первостепенную важность вида в разрезе, поскольку на этом чертеже формы и поверхности пространств могут быть определены с более точным соответствием построенному миру, чем это возможно в плане.Многие опытные дизайнеры начинают не с плана, а с разреза.
Что такое строительный разрез или чертеж разреза
Разрез здания, рисунок в разрезе, разрез или рисунок в разрезе известны под всеми этими разными именами, но в основном они представляют вид конструкции здания таким образом, что он выглядит так, как будто он был разрезан и разрезан пополам вдоль воображаемого самолет.
Чертежи плана, используемые в архитектуре, на самом деле являются одним из типов секций здания, которые прорезаны горизонтальной плоскостью, а не вертикальной, и показывают соответствующие детали.
Чертежи
Чаще всего рисуется линейный рисунок, который, несмотря на то, что он выполняется быстро и легко модифицируется, не является самым мощным чертежом для презентации. Он имеет тенденцию использовать одно и то же соглашение (то есть недифференцированное пустое пространство) как для построенной твердой, так и для незастроенной пустоты, создавая плохой контраст между фигурой и фоном. Конечно, определенные графические приемы могут помочь решить эту проблему.
Элементы, вырезанные в разрезе, можно рисовать с помощью толстых линий, в то время как элементы, видимые на возвышении за пределами, отображаются намного легче.При правильном обращении эта система может значительно уменьшить проблемы, связанные с фигурным фоном, и может внести подсказки глубины в плоский рисунок.
Также можно использовать очень тонкую линейную толщину для обозначения основных деталей конструкции и использования материалов в пределах толщины стен и пола. Это может предоставить ценную информацию, а также помочь рисунку более эффективно читать. В качестве альтернативы, рисунки с линиями в разрезе часто строятся с намерением добавить цвета или поке на более позднем этапе.
Штриховые рисунки отдельных комнат или объемов иногда рисуются как фигуры, изолированные от здания, в котором они находятся. После определения границ и базовой конфигурации комнаты эти чертежи могут помочь дизайнеру думать о комнате как об отдельном объекте, а не как о пустоте, оставшейся после того, как были спроектированы стены и полы.
Эти рисунки могут быть полезны для исследования пространств, например дворов или атриумов. Однако, хотя упрощение и абстрагирование проблем проектирования таким образом может быть полезным, работа над пространством в полной изоляции от его контекста может нанести ущерб общему дизайну.Поэтому для достижения максимального эффекта его следует использовать вместе с другими, более обширными типами чертежей.
Poché и раздел
Секции с почками имеют основное преимущество в том, что они демонстрируют разрешение застроенной твердой и незастроенной пустоты с визуальной силой и ясностью. Их использование в процессе проектирования может помочь дизайнерам формировать, формировать и текстурировать построенные твердые тела, чтобы сформировать объемы пространства.
Поскольку эти рисунки обычно выполняются путем заполнения законченного линейного рисунка, они обычно занимают больше времени.
Тем не менее, можно использовать секцию pochéd в начальных эскизах дизайна, используя толстый карандаш или ручку, чтобы быстро нарисовать фон фигуры и форму образованных комнат.
Резкий контраст, который делает рисунки poché более удобными для чтения, чем линейные, делает их идеальными для презентационных целей, хотя при использовании сплошного черного poché невозможно добавить детали конструкции к построенным телам. Однако, если поче слегка окрашено или заштриховано, можно добавить дополнительные детали.
Затенение секции
Секционное затенение — это метод, в котором предполагается постоянный источник света, а результирующие тени отбрасываются и визуализируются, чтобы заставить пространства отступать (и продвигаться вперед) от плоскости изображения. Этот вид рисунка полезен не только в разрезе, но и для изображения внутренних фасадов за его пределами.
Эти возвышения нарисованы более светлой линией, чем разрез сечения, так что тени могут быть отброшены на их элементы для создания убедительного эффекта глубины на чертеже.Часто используется линейный рисунок, когда одна жирная линия добавляется, чтобы последовательно показать «затененную сторону» любого объекта.
Если требуется больший эффект контраста и глубины, тени можно точно отбрасывать и обрабатывать. Если внутренние фасады сильно визуализированы и затенены, построенные твердые тела должны оставаться белыми, напоминая методы, используемые в фонах с обратными фигурами.
Секция изогнутой оси
Сечения с изогнутой осью, иногда называемые чертежами изогнутой картинной плоскости, в современной практике используются нечасто, но когда-то они были широко приняты в качестве полезного правила рисования.Они в основном использовались в схемах с поперечными осями, где сечение (с соответствующими внутренними отметками) сначала срезало большую ось, а затем поворачивалось на 90 градусов, чтобы отобразить малую ось.
Их использование было ограничено в основном конструкциями с почти абсолютной осевой симметрией, где прямая секция обнаруживала бы дублирование зеркального изображения. Однако сегодня этот метод имеет более широкое применение, особенно в схемах с искривленными пространствами, осевыми сдвигами или наклонными сетками, где разрез сечения может искривляться, сдвигаться или наклоняться, чтобы представить все элементы конструкции как ортогонально, так и в масштабе.
Хотя некоторые дизайнеры могут рассматривать это как метод искажения, обеспечивающий нереалистичное изображение, он позволяет показывать раздел, который раскрывает больше информации о схеме, чем традиционные разделы.
Существует составной тип чертежа, который традиционно использовался для разработки и демонстрации взаимосвязи между главным фасадом здания и его основным внутренним пространством.
Рисуя как высоту, так и разрез как единое изображение (два изображения встречаются вокруг центральной оси), можно проводить прямые сравнения между двумя соединенными изображениями.Хотя такие рисунки давно вышли из обихода, у них есть уникальная особенность, которую нельзя упускать из виду. Это может побудить дизайнера разрабатывать внутренние объемы и внешние поверхности одновременно, создавая их вместе как единую композицию.
Можно легко понять, как основной внутренний объем выражается на основном фасаде здания, и проектирование с использованием такого типа чертежа может создавать схемы, которые в этом отношении лучше решаются, чем схемы, разработанные с более типичными «отдельными» чертежами.
Полезность этих чертежей обычно ограничивается конструкциями, составленными с полной двусторонней симметрией, и проектировщик должен понимать, что сам тип чертежа может вызвать симметрию схемы. Как и многие другие аналитические методы, этот метод представляет информацию крайне абстрактно, выделяя одну информацию за счет других (то есть, как на самом деле выглядит вся высота?).
Кроме того, он подчеркивает определенные идеологии дизайна (двусторонняя симметрия, внешнее выражение основных интерьеров, единство частей и т. Д.), которые могут совпадать, а могут и не совпадать с имеющимися проблемами проектирования или с намерениями дизайнера.
Перспективы разреза
Чертежи составного сечения сочетают в себе характеристики сечения с характеристиками других чертежей, наиболее широко используемым является перспектива сечения. Чтобы произвести эффект убедительной глубины, сохраняя при этом преимущества сечения в истинном масштабе, можно построить одноточечные перспективы, в которых используется разрез сечения для картинной плоскости.
Обычно изображается основное пространство здания с точкой схода, расположенной внутри него на уровне глаз.Если необходимо показать более одного основного пространства на одном чертеже, можно использовать несколько точек схода, хотя построение таких чертежей может привести к странным искажениям. damntools помогает мне узнать об этой информации.
Наклонные сечения
Наклонные разрезы аналогичны перспективам разрезов, но их проще выполнить. Однако, поскольку их точка зрения обычно берется намного выше уровня глаз, потолки и верхние части стен часто скрыты от глаз.Тем не менее, все элементы можно нарисовать в масштабе, что делает эти чертежи полезными для проектирования.
квадратных футов, Содержание, планы в масштабе 1/8 дюйма с общим планы с полным размером 1/4 дюйма в масштабе балки перекрытий и схемы балок, конструкционные гребни и впадины, скаты кровли, Корона со шкалой 1/2 дюйма, поручень стула, 3/8 дюйма в поперечном сечении домашнего интерьера конструкция резьбы и подступенка, детали перил, 3/4 дюйма масштабированные секции с подробным изображением Макеты в масштабе 1/4 дюйма, интерьер |
Семь советов, которые помогут выбрать идеальную секцию для построения на
Есть несколько шагов к строительству нового дома, и выбор секции — одно из первых, что вам нужно сделать.Это также одно из самых важных.
Выбор правильной секции может упростить сборку и обеспечить комфортное и безопасное место в вашем новом доме. С другой стороны, неправильный выбор — верный способ превратить простую сборку в кошмар.
1. Подумайте о доступе
Строительство дома требует определенного уровня доступа к сайту, который может быть заблокирован или затруднен деревьями, линиями электропередач, общими подъездными путями и другими препятствиями. Перед покупкой раздела позвоните нам, чтобы еще раз проверить доступность вашего сайта.
2. Проверьте аспект и форму
Секции, затененные высокими зданиями или выходящие на юг, могут затруднить попадание естественного света в новый дом. Поищите участок на северной стороне, залитый светом весь день, если можете.
Также следует учитывать форму секции. Вообще говоря, широкая квадратная земля проще и лучше и обеспечивает большую гибкость при проектировании дома, тогда как длинные узкие участки менее идеальны.
Перед покупкой раздела узнайте расположение инженерных коммуникаций
3.Учитывать расположение инженерных коммуникаций
Подключение таких коммуникаций, как вода и электричество, к новому дому стоит денег, и чем дальше эти коммуникации находятся от дома, тем дороже это будет. Прежде чем покупать какой-либо раздел, проверьте, как далеко находятся инженерные сети, и получите представление о том, сколько будет стоить их подключение.
4. Получить геотехнический отчет
Секция — это больше, чем верхний дюйм травы и почвы. Вы также покупаете и строите землю под травой, поэтому важно знать, что там происходит.Геотехнический отчет расскажет вам все, что вам нужно знать об устойчивости участка и обычно требуется при подаче заявки на разрешение на строительство.
5. Еще раз проверьте заголовок
Всегда проверяйте право собственности на землю со своим юристом перед покупкой участка. Особенно важно отметить любые сервитуты на земле и наличие сервитутов, чтобы облегчить подключение услуг к участку.
Выбор правильной секции — один из самых важных шагов в любой сборке.
6. Исследование зонирования и ковенантов
Зонирование и / или соглашения могут ограничивать тип, размер или стиль дома, который вы можете построить на участке, поэтому вам необходимо знать о них перед покупкой. Ваш юрист может проверить их в офисе совета перед покупкой, чтобы убедиться, что вы не столкнетесь с неприятными сюрпризами после покупки.
7. Изучите риски и проблемы
Если ваш участок расположен на утесе или на берегу моря, вам необходимо знать, является ли край обрыва и сам участок устойчивым.Если поблизости есть ручей или источник воды, вам нужно узнать больше о том, есть ли это риск наводнения. Существует еще много возможных рисков, которые могут затруднить построение вашего раздела и его жизнь, поэтому вам нужно убедиться, что вы понимаете их, прежде чем покупать.
Поговорите со своим местным советом и своим строителем, поскольку они могут предоставить вам информацию о факторах риска на вашем участке или поблизости от него. Хороший отчет по геотехнике также должен помочь ответить на ваши вопросы. Но если это не так, убедитесь, что вы продолжили расследование, чтобы избежать покупки проблемного раздела.
Выбор раздела может быть непростым, и многое зависит от вашего решения. Если вам нужна помощь или совет на любом этапе, не стесняйтесь обращаться к команде Golstruct Homes для разговора. Мы готовы помочь на каждом этапе вашего строительства, от выбора пустого раздела до передачи ключей от вашего нового дома.
Глава 14. Основные функции лидерства | Раздел 5. Формирование и поддержание приверженности | Основной раздел
Узнайте, как ваша организация может укрепить приверженность своему делу и желание участвовать в их деятельности, а также как поддерживать ее. |
Что такое обязательство?
Почему вам нужно мобилизовать и поддерживать приверженность?
Когда хорошее время для того, чтобы укреплять и поддерживать обязательства?
Как вы можете мобилизовать и поддерживать приверженность?
Что такое обязательство?
Приверженность — это преданность определенной организации, делу или убеждениям и готовность принять участие.
Люди, преданные организации или усилиям, искренне верят, что это важно, и они появляются, доводят до конца и придерживаются этого.
Чем больше людей предано вашей организации, тем больший импульс вы можете создать для выполнения работы.
Почему вам нужно мобилизовать и поддерживать приверженность?
Обязательства — это основа группы или организации. Это то, что придает группе силу.
Вот несколько причин, по которым это важно:
- Чем больше преданных людей, тем эффективнее они влияют на других.Если вся группа будет действовать решительно и целеустремленно, большое количество людей действительно обратят внимание.
- Верные люди — это те, кто не воспринимает разочарование всерьез — они не сдаются. Они подают пример тем, у кого нет уверенности или опыта, чтобы пережить трудные времена и удержаться за вознаграждение в виде успеха.
- Люди сотрудничают на более высоком уровне, когда разделяют обязательства. Приверженность укрепляет дух товарищества, доверия и заботы — то, что нужно группе, чтобы поддерживать ее в долгосрочной перспективе.
- Если люди прилагают усилия в течение определенного периода времени, они узнают то, что им нужно знать, чтобы быть более эффективными. Людям нужно время, чтобы попробовать что-то, сделать ошибки, а затем придумать эффективную стратегию.
Когда хорошее время для того, чтобы укреплять и поддерживать обязательства?
Всегда, в любое время. Приверженность обычно не возникает в один момент. Со временем он растет внутри людей.
Приверженность растет, когда людей:
- Работаем вместе
- Чувствуйте себя успешным в своем деле
- Принимайте решения вместе
- Работа через конфликты
- Поддерживать лидерство друг друга
- Развлекайтесь и играйте вместе
- Преодолеть препятствия
- Придерживайтесь высоких принципов друг друга
- Цените и уважайте друг друга
- Бросьте вызов друг другу, чтобы сделать следующий шаг
- Построить отношения
- Одержите победу вместе
- Учитесь на ошибках и неудачах
- См. Их лидерские обязательства по модели
Приверженность может уменьшиться, когда люди, когда верно обратное, — когда они плохо общаются, не строят отношений и не поддерживают друг друга, становятся втянутыми в неразрешенные конфликты, не живут по своим принципам и не видят лидеров. демонстрируя приверженность.
Хотя приверженность растет естественным образом, вы, как лидер или член группы, можете укрепить приверженность в своей организации. Вы можете встроить приверженность в свою организационную культуру. Хотя это и незаметно, приверженность — вполне реальное качество, с которым вы можете что-то сделать, если хотите сосредоточить на нем свое внимание.
Как вы можете мобилизовать и поддерживать приверженность?
Как вы укрепляете и поддерживаете приверженность? Как получить это невидимое качество и заставить его расти в своей организации?
Во-первых, давайте подумаем о том, почему люди становятся вовлеченными в группу или организацию и предаются ей.Начните с себя: почему вы привержены своему проекту или организации?
Что для вас самое важное?
- Цели вашей группы?
- Ваше видение того, что возможно?
- Люди, с которыми вы работаете?
- Сколько времени вы вложили в эту группу?
- Ваша роль в вашей группе или организации?
- Что вы узнали в этой группе?
- Удовлетворение от выполнения значительной работы?
- Другие причины?
Люди принимают участие в группе или организации, потому что они извлекают из своего участия нечто важное.Когда вы приглашаете их принять участие, вы не только просите их помощи, вы предлагаете им возможность:
- Работа над важным для них вопросом
- На пользу обществу
- Встречайтесь и проводите время с единомышленниками
- Расширять свои возможности
- Стань частью команды
- Научитесь вести за собой
- Примите вызов
- Соответствовать высоким стандартам
- Сделайте что-то значимое
Вы можете гордиться, когда приглашаете людей быть приверженными вашей организации.Вы не навязываетесь им; вы предлагаете им что-то ценное.
Ниже приведены некоторые конкретные идеи о том, как укреплять и поддерживать приверженность, многие из которых также укрепят вашу организацию в целом.
Добро пожаловать в вашу организацию
Иногда все, что нужно людям для участия, — это искренне чувствовать себя желанным гостем. Если они не чувствуют себя желанными гостями, они скоро уйдут. Как лидер вы можете подать пример, лично приветствуя любого, кто входит в дверь или спрашивает о присоединении к вашей организации или инициативе.Задайте им вопросы и узнайте их, чтобы они почувствовали себя ценными. Это не только дает людям хорошее представление о прилагаемых усилиях и побуждает их участвовать, но и создает основу для развития отношений, которые помогают вам действовать как лидер и укрепляют приверженность в будущем.
Пример:
Новый член общественной организации зашел в офис директора, чтобы поздороваться. Директору потребовалось 45 минут, чтобы узнать об участнице и познакомиться с ней поближе.Новый член почувствовал себя желанным гостем и быстро включился в программный комитет. Она стала активным, целеустремленным членом, а через несколько лет стала президентом Совета директоров.
Научите всех в вашей организации приветствовать новых людей. Сделайте это частью своей организационной культуры. Вы также можете создать Комитет приветствия для открытых встреч или специальных мероприятий, или вы можете настроить систему друзей. Люди в вашей организации поймут, что приветствовать — это работа, к которой нужно относиться серьезно.
Будьте открыты и четко изложите миссию, принципы и цели вашей организации
Люди должны знать, что они делают. Они хотят присоединиться к организации, если разделяют схожие принципы и цели. Убедитесь, что все в вашей организации знакомы с ее миссией, принципами и целями.
Как руководитель, открыто говорите о том, почему вам небезразличны эти принципы и цели. Например, если вы работаете над разработкой программы наставничества для подростков в вашем районе, расскажите, почему эта программа важна для вас.Вы могли бы рассказать людям, какой была бы ваша жизнь, если бы взрослый не уделил вам немного времени и внимания, когда вы были подростком.
Обязательство модели
Каждый смотрит на лидера группы или проекта, чтобы узнать, привержена ли она. Если вам небезразлична работа, это отразится на вашем отношении и поступках. Люди будут смотреть, как вы действуете, и последуют за вами. Если они могут рассчитывать на вас, более вероятно, что вы сможете рассчитывать на них.Если вы задержитесь, чтобы отправить письмо, другие будут готовы это сделать. Приверженность заразительна.
С другой стороны, если вы так усердно работаете, что вы измотаны и всегда недовольны, люди тоже заметят это и будут уклоняться от вашего следования. Постарайтесь найти баланс: не делайте обязательств непосильным бременем.
Дайте людям работу
Если кто-то проявляет интерес к участию в вашей группе, не ждите слишком долго, чтобы дать ему чем-нибудь заняться.Людям нужно чувствовать, что они вносят значительный вклад, чтобы чувствовать себя ответственными. Узнайте, чем они заинтересованы, и посмотрите, сможете ли вы сопоставить их интересы с работой, которую необходимо выполнить.
Кроме того, дайте новым людям работу, которая позволит им контактировать с другими людьми в организации. Это приведет их в группу раньше и легче.
Выберите подходящий уровень сложности для людей
Людям нужно чувствовать себя успешными, а также им нужно расширять свои способности.Оба важны. Когда вы впервые знакомитесь с кем-то, постарайтесь сопоставить его с работой, в которой, как вы думаете, он может добиться определенного успеха. Это поможет людям чувствовать себя хорошо и побудит их остаться.
По мере того, как вы узнаете их лучше, давайте им постепенно увеличивающиеся задачи. Получение вызова заставляет людей увлекаться работой, которую они делают. Иногда людям нужно ободрение попробовать то, о чем они раньше не задумывались. Сядьте и поговорите с людьми, чтобы узнать, какую работу они хотели бы попробовать.Это стоит потратить время, потому что они будут знать, что вы заботитесь о них и их развитии, а не только о том, что они могут для вас произвести.
Создать организационную культуру, в которой сотрудники, волонтеры и члены ценят и уважают друг друга
Людям нужно чувствовать, что их уважают и ценят, чтобы оставаться на связи и быть преданными группе или организации. Это просто и важно, но иногда нелегко запомнить. Тем не менее, есть несколько шагов, которые вы можете предпринять, чтобы создать групповую или организационную культуру, в которой люди хорошо относятся друг к другу:
- Образцовая оценка и уважение: найдите время, чтобы подумать о людях, с которыми вы работаете, и открыто цените их и их работу.Хотя некоторые люди могут быть удивлены, когда вы это сделаете, всем нравится, когда их ценят. Относитесь ко всем так же, как к другим — с уважением и хорошим юмором. Вы можете быть лидером, но это не значит, что вы более важны как человек, чем человек, который отвечает на телефонные звонки или помогает с рассылкой писем.
- Научите сотрудников вашей организации замечать, что идет хорошо, а не просто замечать, что нужно улучшить. Например, вы можете начать собрания, попросив каждого человека рассказать о том, что он сделал хорошо с момента вашей последней встречи.Вы также можете попросить людей выразить признательность друг другу, чтобы завершить встречи.
- В горячих дискуссиях или конфликтах убедитесь, что люди продолжают проявлять уважение друг к другу. Конфликты могут быть важными периодами роста. Чтобы они были полезными, а не разрушительными, не позволяйте людям лично нападать друг на друга. Продолжайте обсуждение вопросов. Если у людей есть личные конфликты, разрешите конфликт или пригласите для этого постороннего человека.
Слушайте, слушайте и слушайте
Прослушивание — мощный инструмент.Каждый мог использовать кого-нибудь, чтобы их послушать. Когда вы слушаете других с уважением, они чувствуют, что вы им доверяете и их интересует, что они думают. В свою очередь, ваш интерес и уверенность помогают им мыслить ясно и творчески.
Если вы хотите, чтобы молодые люди, старики, иммигранты, люди с низким доходом, цветные или кто-либо еще были привержены вашей организации, прислушивайтесь к ним. Попробуйте попросить подростка или молодого человека поделиться с вами своими мыслями по какой-либо теме.Как вы думаете, как нам следует спроектировать этот общественный центр? Что является ключевым вопросом в этом районе? Поначалу этот подросток может быть удивлен, потому что взрослых так редко волнует, что они думают. Однако, если вам удастся преодолеть их «крутизну», подростки будут рады рассказать вам, что они думают.
Поддерживать лидерство людей
Чтобы поддерживать приверженность вашей группе или организации, думайте о каждом человеке как о потенциальном лидере и обучайте его руководству. Если люди считают себя лидером группы, они будут рассматривать группу как свою.У них появится чувство сопричастности, и они с большей вероятностью проявят инициативу, чтобы все работало хорошо.
Мы традиционно думаем о лидерах как о людях, которые являются директорами организации и принимают все важные решения, но вы можете расширить свое определение лидерства. Например, вы можете рассматривать организатора мероприятия как одного из ключевых лидеров, но человек, который неформально разрешает конфликты, также является лидером. Даже человек, который заставляет всех в комнате смеяться, когда энергия уходит в тупик, выполняет важную лидерскую функцию.
Помогите людям распознать свои лидерские качества и побудите их пробовать больше. Пригласите их выступить публично или возглавьте собрание. Необязательно давать людям титулы лидера, но иногда это помогает им серьезно относиться к себе.
Несмотря на то, что у людей разный уровень лидерских качеств, каждый может внести что-то важное. У каждого есть ценная точка зрения. У каждого есть таланты, которыми можно поделиться.
Праздновать
Не забывайте праздновать.Подойдет любое оправдание: победа, юбилей организации, время для вручения призов или сертификатов волонтерам или работникам или время, когда люди делятся культурой, — все это веские причины для людей собраться вместе, расслабиться и насладиться обществом друг друга.
Несколько дополнительных советов
- Приверженность растет неуклонно, но часто медленно. Потерпи. Он придет.
- Цените любой уровень обязательств, который может взять на себя человек. Люди сильно различаются по уровню приверженности, и это нормально.У некоторых людей будет больше времени, они будут больше интересоваться вашими целями и миссией и будут лучше понимать ценность обязательств, чем у других.
- Вы всегда можете пригласить и побудить людей делать больше. Если они это сделают, отлично. Если они этого не делают, цените их за то, что они умеют.
- Не заставляйте людей брать на себя обязательства. Обычно это не дает желаемых долгосрочных результатов. Людям нужно чувствовать, что их вклад имеет значение, даже если он невелик. Если они чувствуют, что разочаровывают лидера, они могут не оставаться там.
- Люди часто жаждут смысла своей жизни. Когда вы просите людей посвятить себя делу, делу или организации, вы предлагаете им что-то очень ценное.
И помните: обязательство требует времени!
Вкратце
По словам Джона Гарднера, «Приверженность требует тяжелой работы в пылу дня; она требует искренних усилий во имя выбранных целей и укрепления выбранных ценностей».
Составить файл | Документация Docker
Справочные материалы и руководства
В этих разделах описывается реализация Docker Compose формата Compose.Docker Compose 1.27.0+ реализует формат, определенный спецификацией Compose. Предыдущие версии Docker Compose поддерживали несколько форматов файлов Compose — 2, 2.x и 3.x. Спецификация Compose — это унифицированный формат файлов 2.x и 3.x, объединяющий свойства этих форматов.
Матрица совместимости Compose и Docker
Существует несколько версий формата файла Compose — 2, 2.x и 3.x. В
В таблице ниже представлены снимки различных версий.Для получения полной информации о том, что включает в себя каждая версия, и
как обновить, см. О версиях и обновлении .
В этой таблице показано, какие версии файлов Compose поддерживают определенные выпуски Docker.
Составить формат файла | Версия Docker Engine |
---|---|
Составить спецификацию | 19.03.0+ |
3,8 | 19.03.0+ |
3.7 | 18.06.0+ |
3,6 | 18.02.0+ |
3,5 | 17.12.0+ |
3,4 | 17.09.0+ |
3,3 | 17.06.0+ |
3,2 | 17.04.0+ |
3,1 | 1.13.1+ |
3,0 | 1.13.0+ |
2.4 | 17.12.0+ |
2,3 | 17.06.0+ |
2,2 | 1.13.0+ |
2,1 | 1.12.0+ |
2,0 | 1.10.0+ |
В дополнение к версиям формата файла Compose, указанным в таблице, функция Compose
сам находится в графике выпуска, как показано в Compose
выпуски, но версии в формате файлов
не обязательно увеличивать с каждым выпуском.Например, формат файла Compose
3.0 был впервые представлен в выпуске Compose
1.10.0 и версиями
постепенно в последующих выпусках.
Последний формат файла Compose определяется спецификацией Compose и реализован в Docker Compose 1.27.0+ .
Составьте документацию
инжир, композиция, докер, составить,
The Manifest Format — The Cargo Book
Файл Cargo.toml
для каждого пакета называется его манифестом .Это написано
в формате TOML. Каждый файл манифеста состоит из следующих разделов:
-
Cargo-features
— Нестабильные функции, работающие только в ночное время. -
[пакет]
— Определяет пакет.-
name
— Имя пакета. -
версия
— Версия пакета. -
авторов
— Авторы пакета. -
издание
— издание Rust. -
описание
— Описание упаковки. -
документация
— URL документации пакета. -
readme
— Путь к файлу README пакета. -
домашняя страница
— URL домашней страницы пакета. -
репозиторий
— URL репозитория исходного кода пакета. -
лицензия
— Пакет лицензионный. -
license-file
— Путь к тексту лицензии. -
ключевые слова
— Ключевые слова для пакета. -
категории
— Категории пакета. -
рабочая область
— Путь к рабочей области для пакета. -
build
— Путь к скрипту сборки пакета. -
ссылки
— Имя собственной библиотеки, с которой связан пакет. -
exclude
— Файлы для исключения при публикации. -
include
— Файлы для включения при публикации. -
publish
— Может использоваться для предотвращения публикации пакета. -
метаданные
— Дополнительные настройки для внешних инструментов. -
default-run
— Бинарный файл по умолчанию для запускаcargo run
. -
autobins
— Отключает автоматическое обнаружение двоичных файлов. -
autoexamples
— Отключает автоматическое обнаружение примеров. -
autotests
— Отключает автоматическое обнаружение тестов. -
autobenches
— Отключает автоматическое обнаружение стендов. -
resolver
— Устанавливает используемый преобразователь зависимостей.
-
- Целевые таблицы: (настройки см. В конфигурации)
- Таблицы зависимостей:
-
[значки]
— Значки для отображения в реестре. -
[особенности]
— Возможности условной компиляции. -
[патч]
— Переопределить зависимости. -
[заменить]
— Переопределить зависимости (устарело). -
[профиль]
— Настройки и оптимизация компилятора. -
[рабочая область]
— Определение рабочей области.
[пакет]
раздел
Первый раздел в Cargo.toml
— это [package]
.
[посылка]
name = "hello_world" # название пакета
version = "0.1.0" # текущая версия, подчиняющаяся semver
авторы = ["Алиса ", "Боб "]
Единственные поля, обязательные для заполнения: имя
и
версия
. При публикации в реестре реестр может
требуются дополнительные поля. См. Примечания ниже и публикацию
Глава о требованиях для публикации на crates.io.
Имя
поле
Имя пакета — это идентификатор, используемый для ссылки на пакет.Это использовано
когда указано как зависимость в другом пакете и как имя по умолчанию для
предполагаемые цели lib и bin.
Имя должно содержать только буквенно-цифровые символы или -
или _
и не может быть пустым.
Обратите внимание, что грузовой новый
и грузовой init
накладывают некоторые дополнительные ограничения на
имя пакета, например, указание на то, что это действительный идентификатор Rust, а не
ключевое слово. crates.io налагает еще больше ограничений, например
применение только символов ASCII, а не зарезервированного имени, а не специального Windows
название типа «нул», не слишком длинное и т. д.
Версия
поле
Cargo вписывается в концепцию Semantic
Управление версиями, поэтому убедитесь, что вы соблюдаете некоторые основные правила:
- Прежде чем вы дойдете до 1.0.0, все пойдет, но если вы внесете критические изменения,
увеличить второстепенную версию. В Rust критические изменения включают добавление полей в
структуры или варианты перечислений. - После 1.0.0 вносите критические изменения только при увеличении основной версии.
Не ломайте сборку. - После 1.0.0 не добавляйте никаких новых общедоступных API (никаких новых
pub
) на уровне исправлений.
версии.Всегда увеличивайте младшую версию, если вы добавляете какие-либо новые структурыpub
,
черты, поля, типы, функции, методы или что-то еще. - Используйте номера версий с тремя числовыми частями, например 1.0.0, а не 1.0.
См. Главу Resolver для получения дополнительной информации о том, как Cargo использует версии для
разрешить зависимости и ознакомиться с инструкциями по установке собственной версии. Увидеть
Глава о совместимости с Semver для получения более подробной информации о том, что именно составляет
ломка сдачи.
авторов
поле
Необязательное поле авторов
перечисляет людей или организации, которые считаются
«авторы» пакета.Точное значение открыто для интерпретации — это
может указывать первоначальных или основных авторов, текущих сопровождающих или владельцев
упаковка. Необязательный адрес электронной почты может быть заключен в угловые скобки в
конец каждой записи автора.
Это поле отображается только в метаданных пакета и в CARGO_PKG_AUTHORS
переменная окружения в build.rs
. Не отображается в crates.io
пользовательский интерфейс.
Предупреждение : манифесты пакетов нельзя изменить после публикации, поэтому это
поле нельзя изменить или удалить в уже опубликованных версиях
упаковка.
Издание
поле
Ключ edition
— это необязательный ключ, который влияет на версию Rust Edition вашего пакета.
компилируется с помощью. Установка ключа выпуска в
[пакет]
повлияет на все
цели / ящики в пакете, включая наборы тестов, тесты, бинарные файлы,
примеры и др.
[посылка]
# ...
edition = '2018'
В большинстве манифестов поле edition
заполняется автоматически с помощью cargo new
с последней стабильной версией.По умолчанию cargo new
создает манифест с
издание 2018 года в настоящее время.
Если поле edition
отсутствует в Cargo.toml
, то это издание 2015 г.
предполагается для обратной совместимости. Обратите внимание, что все манифесты
созданный с грузом , новый
не будет использовать этот исторический запасной вариант, потому что они
будет иметь издание
, явно указанное для более нового значения.
Описание
поле
Описание представляет собой краткую аннотацию к упаковке.crates.io отобразит
это с вашим пакетом. Это должен быть обычный текст (не Markdown).
[посылка]
# ...
description = "Краткое описание моего пакета"
Примечание : crates.io требует, чтобы было установлено описание
.
Документация
поле
Документация Поле
задает URL-адрес веб-сайта, на котором размещен
документация. Если в файле манифеста не указан URL-адрес, crates.io будет
автоматически привяжите свой ящик к соответствующей странице docs.rs.
[посылка]
# ...
документация = "https://docs.rs/bitflags"
readme
поле
Поле readme
должно указывать путь к файлу в корне пакета (относительный
на этот Cargo.toml
), который содержит общую информацию о пакете.
Этот файл будет перенесен в реестр при публикации. crates.io
будет интерпретировать его как Markdown и отобразить на странице ящика.
[посылка]
# ...
readme = "README.md"
Если для этого поля не указано значение, а файл с именем README.md
,
README.txt
или README
существует в корне пакета, тогда имя этого
файл будет использоваться. Вы можете подавить это поведение, установив для этого поля значение
ложь
. Если в поле установлено значение true
, значение по умолчанию README.md
будет
предполагается.
Домашняя страница
поле
Поле homepage
должно быть URL-адресом сайта, который является домашней страницей вашего
упаковка.
[посылка]
# ...
homepage = "https://serde.rs/"
Хранилище
поле
Поле репозитория
должно быть URL-адресом исходного репозитория для вашего
упаковка.
[посылка]
# ...
репозиторий = "https://github.com/rust-lang/cargo/"
Лицензия
и файл лицензии
поля
Поле лицензия
содержит название лицензии на программное обеспечение, которое
выпущен под.Файл лицензии Поле
содержит путь к файлу
содержащий текст лицензии (относительно этого Cargo.toml
).
crates.io интерпретирует поле license
как лицензию SPDX 2.1.
выражение. Имя должно быть известной лицензией
из списка лицензий SPDX 3.11. Скобки не
в настоящее время поддерживается. Дополнительную информацию см. На сайте SPDX.
Выражения лицензии
SPDX поддерживают операторы AND и OR для объединения нескольких
лицензии. 1
[посылка]
#...
лицензия = "MIT OR Apache-2.0"
Использование ИЛИ
означает, что пользователь может выбрать любую лицензию. Использование И
указывает
пользователь должен соответствовать обеим лицензиям одновременно. Оператор С
указывает на лицензию с особым исключением. Некоторые примеры:
-
MIT ИЛИ Apache-2.0
-
Только LGPL-2.1 И MIT И BSD-2-Пункт
-
GPL-2.0 или более поздняя версия С Bison-exception-2.2
Если пакет использует нестандартную лицензию, то поле файл лицензии
может
должно быть указано вместо поля лицензия
.
[посылка]
# ...
license-file = "LICENSE.txt"
Примечание : crates.io требует установки либо лицензии
,
, либо файла лицензии.
ключевые слова
поле
Ключевые слова Поле
представляет собой массив строк, описывающих этот пакет. Этот
может помочь при поиске пакета в реестре, и вы можете выбрать любой
слова, которые помогут кому-нибудь найти этот ящик.
[посылка]
#...
ключевые слова = ["разработчик игр", "графика"]
Примечание : crates.io имеет максимум 5 ключевых слов. Каждое ключевое слово должно быть
Текст ASCII, начинающийся с буквы и содержащий только буквы, цифры,_
или
–
и содержат не более 20 символов.
Категории
поле
Поле категорий
представляет собой массив строк категорий, которые этот пакет
принадлежит.
Categories = ["утилиты командной строки", "инструменты разработки :: плагины-груз"]
Примечание : ящики.io имеет максимум 5 категорий. Каждая категория должна
соответствовать одной из строк, доступных на https://crates.io/category_slugs, и
должно точно совпадать.
Рабочее пространство
поле
Рабочее пространство Поле
можно использовать для настройки рабочего пространства, которое этот пакет
будет членом. Если не указано иное, это будет считаться первым
Cargo.toml с [рабочее пространство]
вверх в файловой системе. Установка этого
полезно, если член не находится в подкаталоге корня рабочей области.
[посылка]
# ...
workspace = "путь / к / рабочему пространству / корню"
Это поле нельзя указать, если в манифесте уже есть [рабочая область]
таблица определена. То есть ящик не может одновременно быть корневым ящиком в рабочей области.
(содержать [рабочая область]
), а также быть членом ящика другой рабочей области
(содержат пакет . рабочее пространство
).
Для получения дополнительной информации см. Главу «Рабочие пространства».
build
поле
Поле build
указывает файл в корне пакета, который является сборкой
скрипт для сборки нативного кода.Более подробную информацию можно найти в сборке
руководство по сценариям.
[посылка]
# ...
build = "build.rs"
По умолчанию "build.rs"
, который загружает сценарий из файла с именем
build.rs
в корне пакета. Используйте build = "custom_build_name.rs"
для
укажите путь к другому файлу или build = false
для отключения автоматического
обнаружение скрипта сборки.
связывает
поле
В поле ссылок
указывается имя собственной библиотеки, к которой выполняется ссылка.
к.Более подробную информацию можно найти в разделе ссылок
сборки
руководство по сценариям.
[посылка]
# ...
links = "foo"
исключает
и включает
поля
Вы можете явно указать, что набор шаблонов файлов должен игнорироваться или
включены в целях упаковки. Шаблоны, указанные в
exclude
поле идентифицирует набор файлов, которые не включены, а поле
шаблоны в включают
указывают файлы, которые явно включены.
Шаблоны должны быть в стиле gitignore. Кратко:
-
foo
соответствует любому файлу или каталогу с именемfoo
в любом месте
упаковка. Это эквивалентно шаблону** / foo
. -
/ foo
соответствует любому файлу или каталогу с именемfoo
только в корне
посылка. -
foo /
соответствует любому каталогу с именемfoo
в любом месте пакета. - Общие шаблоны глобусов, такие как
*
,? Поддерживаются
и[]
:-
*
соответствует нулю или более символов, кроме/
. Например,* .html
.
соответствует любому файлу или каталогу с расширением.html
в любом месте
упаковка. -
?
соответствует любому символу, кроме/
. Например,foo?
соответствуетеда
,
но неfoo
. -
[]
позволяет сопоставить диапазон символов.Например,[ab]
соответствует либоa
, либоb
.[a-z]
соответствует буквам от a до z.
-
-
** /
соответствует префиксу в любом каталоге. Например,** / foo / bar
соответствует
файл или каталогbar
где угодно, что находится непосредственно в каталогеfoo
. -
/ ** суффикс
соответствует всему внутри. Например,foo / **
соответствует всем
файлы внутри каталогаfoo
, включая все файлы в подкаталогах ниже
foo
. -
/ ** /
соответствует нулю или более каталогам. Например,a / ** / b
соответствует
a / b
,a / x / b
,a / x / y / b
и т. Д. -
! Префикс
отменяет шаблон. Например, шаблонsrc / **. Rs
и
! Foo.rs
будет соответствовать всем файлам с расширением.rs
внутриsrc
каталог, за исключением любого файла с именемfoo.rs
.
Если для пакета используется git, поле exclude
будет заполнено
настройки gitignore
из репозитория.
[посылка]
# ...
exclude = ["build / ** / *. o", "doc / ** / *. html"]
[посылка]
# ...
include = ["src / ** / *", "Cargo.toml"]
Параметры являются взаимоисключающими: настройка включать
отменяет
исключить
. Обратите внимание, что включает
должен быть исчерпывающим списком файлов, иначе
необходимые исходные файлы могут не быть включены. В пакете Cargo.toml
есть
автоматически включается.
Список включения / исключения также используется в некоторых ситуациях для отслеживания изменений.Для целей, созданных с помощью rustdoc
, он используется для определения списка файлов для
отслеживать, чтобы определить, нужно ли перестраивать цель. Если в пакете есть
скрипт сборки, который не генерирует никаких директив rerun-if- *
, тогда
Список include / exclude используется для отслеживания необходимости повторного запуска скрипта сборки
если какой-либо из этих файлов изменится.
опубликовать
поле
Поле публикации
можно использовать для предотвращения публикации пакета в
реестр пакетов (например, crates.io ) по ошибке, например, чтобы сохранить пакет
частное лицо в компании.
[посылка]
# ...
publish = false
Значение также может быть массивом строк, которые являются именами реестра, которые
разрешено к публикации в.
[посылка]
# ...
publish = ["some-registry-name"]
Если массив публикации содержит один реестр, команда cargo publish
будет использовать
это когда флаг --registry
не указан.
Таблица метаданных
Cargo по умолчанию будет предупреждать о неиспользованных ключах в Cargo.toml
, чтобы помочь в
обнаружение опечаток и тому подобное. Таблица package.metadata
, однако, полностью
игнорируются Cargo и не будут предупреждены. Этот раздел можно использовать для
инструменты, которые хотели бы сохранить конфигурацию пакета в Cargo.toml
. Для
пример:
[посылка]
name = "..."
# ...
# Метаданные, используемые, например, при создании Android APK.
[package.metadata.android]
package-name = "my-awesome-android-app"
assets = "путь / к / статическому"
Аналогичная таблица есть на уровне рабочей области по адресу
рабочее пространство.метаданные
. В то время как груз не указывает
формат для содержания любой из этих таблиц, рекомендуется, чтобы
внешние инструменты могут захотеть использовать их последовательно, например, ссылаясь
к данным в workspace.metadata
, если данные отсутствуют в package.metadata
,
если это имеет смысл для рассматриваемого инструмента.
Поле
, запускаемое по умолчанию,
, поле
Можно использовать поле , запускаемое по умолчанию,
в разделе [пакет]
манифеста.
чтобы указать двоичный файл по умолчанию, выбранный cargo run
.Например, когда есть
оба src / bin / a.rs
и src / bin / b.rs
:
[посылка]
default-run = "а"
[значки]
раздел
Раздел [значки]
предназначен для указания значков состояния, которые могут отображаться
на веб-сайте реестра при публикации пакета.
Примечание: crates.io ранее отображал значки рядом с ящиком на своем
веб-сайт, но эта функция была удалена. Пакеты следует разместить
значки в файле README, которые будут отображаться на ящиках.io (см.
поле readme
).
[значки]
# В таблице «maintenance» указывается статус обслуживания
# ящик. Это может быть использовано реестром, но в настоящее время не
# используется crates.io. См. Https://github.com/rust-lang/crates.io/issues/2437
# и https://github.com/rust-lang/crates.io/issues/2438 для получения более подробной информации.
#
# Поле `status` обязательно. Доступные варианты:
# - `активно-разработано`: добавляются новые функции и исправляются ошибки.# - `пассивно-обслуживаемый`: новых функций нет, но сопровождающий намеревается
# реагировать на возникшие проблемы.
# - `as-is`: набор функций завершен, сопровождающий не намерен продолжать работу над
# это или предоставление поддержки, но он работает для тех целей, для которых был разработан.
# - `экспериментальный`: автор хочет поделиться им с сообществом, но не намерен встречаться
# чей-либо конкретный вариант использования.
# - `ищу-сопровождающего`: Текущий сопровождающий хотел бы передать ящик кому-нибудь
# еще.# - `deprecated`: Сопровождающий не рекомендует использовать этот ящик (описание ящика
# может описать почему, может быть доступно лучшее решение или могут быть проблемы с
# ящик, который автор не хочет исправлять).
# - `none`: не отображает значок на crates.io, так как сопровождающий не указал
# свои намерения потенциальные пользователи ящиков должны будут исследовать самостоятельно.
обслуживание = {status = "..."}
Разделы зависимостей
См. Страницу с указанием зависимостей для
информация о [зависимости]
, [dev-dependencies]
,
[build-dependencies]
и целевой [target.* .dependencies]
разделов.
[профиль. *]
секции
Таблицы [профиль]
позволяют настраивать параметры компилятора, например
оптимизации и настройки отладки. См. Главу "Профили" для
Подробнее.
Справочник по командам rpmbuild
Когда RPM вызывается с параметром -b , процесс
сборки пакета начато. Остальная часть команды будет
точно определить, что должно быть построено и как далеко должна быть построена
продолжить.В этой главе мы исследуем каждый аспект об / мин.
-b .
Команда сборки RPM должна содержать две дополнительные части информации,
сверх " rpmbuild ":
Имена одного или нескольких файлов спецификаций, представляющих программное обеспечение, которое будет
в упаковке.Желаемый этап, на котором должна остановиться сборка.
Как мы обсуждали в главе 10, файл спецификации является одним
входов в процесс сборки RPM.Он содержит информацию
необходимо RPM для выполнения сборки и упаковки программного обеспечения.
RPM проходит несколько этапов во время сборки. От
указав, что процесс сборки должен остановиться на определенном этапе,
конструктор пакетов может следить за ходом сборки, вносить любые изменения
необходимо, и перезапустите сборку. Начнем с рассмотрения различных
этапы, которые можно указать в команде сборки.
Команда rpmbuild -bp указывает RPM на выполнение самого
первый шаг в процессе сборки.В файле спецификации этот шаг
с маркировкой % преп . Каждая команда в
% Prep раздел будет выполнен, когда
-bp используется опция.
Вот простой раздел % Prep из файла спецификации, который мы
используется в главе 11:
Эта % раздел состоит из одного
% настройка макроса. При использовании об / мин
-bp против этого файла спецификации, мы можем точно увидеть, что
% setup делает:
# rpmbuild -bp cdplayer-1.0.spec * Пакет: cdplayer Выполняется (% преп): + umask 022 + cd / usr / src / redhat / СТРОИТЬ + cd / usr / src / redhat / СТРОИТЬ + rm -rf cdplayer-1.0 + gzip -dc /usr/src/redhat/SOURCES/cdplayer-1.0.tgz + tar -xvvf - drwxrwxr-x root / пользователи 0 4 августа 22:30 1996 cdplayer-1.0 / -rw-r - r-- root / users 17982 10 ноября 01:10 1995 cdplayer-1.0 / КОПИРОВАНИЕ -rw-r - r-- root / users 627 10 ноября 01:10 1995 cdplayer-1.0 / ChangeLog … -rw-r - r-- root / users 2806 10 ноября 01:10 1995 cdplayer-1.0 / volume.c -rw-r - r-- root / users 1515 10 ноября 01:10 1995 cdplayer-1.0 / объем.ч + [0 -ne 0] + компакт-диск cdplayer-1.0 + компакт-диск /usr/src/redhat/BUILD/cdplayer-1.0 + chown -R root.root. + chmod -R a + rX, g-w, o-w. + выход 0 # |
Сначала RPM подтверждает, что пакет cdplayer
предмет этой сборки. Затем он устанавливает маску и запускает
выполнение раздела % Prep . На данный момент
% setup макрос делает свое дело. Меняется
каталог в область сборки и удаляет все старые копии
дерево сборки cdplayer.
Далее, установка % распаковывает исходники и использует
tar для создания дерева сборки. Мы удалили
полный список файлов, но будьте готовы увидеть
лотов вывода, если упаковываемое программное обеспечение
большой.
Наконец, % setup меняет каталог на
дерево сборки cdplayer меняет владельца и
соответствующие права доступа к файлам. Съезд
0 означает конец подготовки %
раздел, и, следовательно, конец настройки %
макрос.Поскольку мы использовали опцию -bp , обороты остановились.
с этой точки зрения. Посмотрим, какой RPM остался в области сборки:
# cd / usr / src / redhat / BUILD # ls -l всего 1 drwxr-xr-x 2 root root 1024 4 августа 22:30 cdplayer-1.0 # |
Есть каталог верхнего уровня. Смена каталога на
cdplayer-1.0, мы обнаруживаем, что исходники готовы к работе
построено:
# cd cdplayer-1.0 # ls -lF всего 216 -rw-r - r-- 1 root root 17982 10 ноября 1995 г. КОПИРОВАНИЕ -rw-r - r-- 1 root root 627 10 ноября 1995 г. Изменения … -rw-r - r-- 1 root root 2806 10 ноября 1995 г. volume.c -rw-r - r-- 1 root root 1515 10 ноя 1995 volume.h # |
Мы видим, что % setup 's chown
и команды chmod сделали то, что должны были
- файлы принадлежат root, с установленными разрешениями
соответственно.
Если не остановлен опцией -bp , следующий шаг в
Процесс сборки RPM будет заключаться в создании программного обеспечения. RPM также может быть
остановился в конце раздела сборки % в
spec файл. Это делается с помощью опции -bc :
Когда параметр -bc используется во время сборки, RPM
останавливается после создания программного обеспечения. Что касается файла спецификации,
каждая команда в разделе % build будет
выполнен.В следующем примере мы удалили вывод из
% Prep Секция для сокращения избыточного выхода,
но имейте в виду, что он тем не менее выполняется:
# rpmbuild -bc cdplayer-1.0.spec * Пакет: cdplayer Выполняется (% преп): … + выход 0 Выполнение (% build): + cd / usr / src / redhat / СТРОИТЬ + компакт-диск cdplayer-1.0 + сделать gcc -Wall -O2 -c -I / usr / include / ncurses cdp.c gcc -Wall -O2 -c -I / usr / include / ncurses color.c gcc -Wall -O2 -c -I / usr / include / ncurses display.c gcc -Wall -O2 -c -I / usr / include / ncurses misc.c gcc -Wall -O2 -c -I / usr / include / ncurses volume.c volume.c: В функции `mix_set_volume ': volume.c: 67: предупреждение: неявное объявление функции `ioctl ' gcc -Wall -O2 -c -I / usr / include / ncurses hardware.c gcc -Wall -O2 -c -I / usr / include / ncurses database.c gcc -Wall -O2 -c -I / usr / include / ncurses getline.c gcc -o cdp cdp.o color.o display.o misc.o volume.o hardware.o database.o Getline.о -I / usr / include / ncurses -L / usr / lib -lncurses groff -Tascii -man cdp.1 | сжать> cdp.1.Z + выход 0 # |
После команды мы видим, что RPM выполняет % Prep
раздел (который мы почти полностью удалили). Далее начинается RPM
выполнение содержимого раздела % build . В
в нашем примере файла спецификации, раздел % build выглядит
как это:
Мы видим, что до команды make обороты меняются.
в каталог верхнего уровня cdplayer.Затем RPM запускает make , который заканчивается
groff команда. На этом этапе выполнение
% build раздел завершен. Поскольку
-bc использовалась опция, обороты останавливаются на этом месте.
Следующим шагом в процессе сборки будет установка недавно созданного
программное обеспечение. Это делается в % install (и
% проверьте ) в разделе спецификации.RPM может быть
остановлен после завершения установки с помощью
-bi опция:
При использовании опции -bi частота вращения останавливается.
после того, как программное обеспечение будет полностью построено и установлено, и
набор тестов был запущен в системе сборки. Вот что
вывод сборки с использованием опции -bi выглядит так:
# rpmbuild -bi cdplayer-1.0.spec * Пакет: cdplayer Выполняется (% преп): … + выход 0 Выполнение (% build): … + выход 0 Выполнение (% install): + cd / usr / src / redhat / СТРОИТЬ + компакт-диск cdplayer-1.0 + сделать установку chmod 755 cdp chmod 644 cdp.1.Z cp cdp / usr / local / bin ln -s / usr / local / bin / cdp / usr / local / bin / cdplay cp cdp.1 / usr / local / man / man1 + выход 0 Выполнение (% check): + umask 022 + cd / usr / src / redhat / СТРОИТЬ + компакт-диск cdplayer-1.0 + сделать тест Все тесты проходят успешно. + выход 0 Выполнение (% doc): + cd / usr / src / redhat / СТРОИТЬ + cd cdplayer-1.0 + DOCDIR = // usr / doc / cdplayer-1.0-1 + rm -rf //usr/doc/cdplayer-1.0-1 + mkdir -p //usr/doc/cdplayer-1.0-1 + cp -ar README //usr/doc/cdplayer-1.0-1 + выход 0 # |
Как и раньше, мы удалили большую часть ранее описанных разделов.
В этом примере раздел % install выглядит так:
После % подготовки и % сборки
разделов, выполняется раздел % install .Глядя на результат, мы видим, что RPM меняет каталог на
каталог верхнего уровня cdplayer и выдает
make install команда, единственная команда в
% установить раздел. Выход с этой точки до
первый выход 0 , это с
сделать установку .
Следующая часть вывода - это чек %
раздел, т.е. единственная команда делает тест .
Остальные команды связаны с содержимым файла спецификации.
% файлов список. Вот как это выглядит:
% файлов % doc README / USR / местные / bin / cdp / USR / местные / bin / cdplay /usr/local/man/man1/cdp.1 |
Ответственная линия: % doc README . В
% doc тег идентифицирует файл как
документация.RPM обрабатывает файлы документации, создавая
каталог в / usr / doc и поместив все
документация в нем. выезд 0 на
конец означает конец раздела % install .
Обороты останавливаются из-за опции -bi .
Следующий шаг, на котором процесс сборки RPM может быть остановлен, происходит после
был создан файл двоичного пакета программного обеспечения. Это делается с помощью
вариант -bb :
# rpmbuild -bb cdplayer-1.0.spec * Пакет: cdplayer Выполняется (% преп): … + выход 0 Выполнение (% build): … + выход 0 Выполнение (% install): … + выход 0 Выполнение (% check): … + выход 0 Выполнение (% doc): … + выход 0 Бинарная упаковка: cdplayer-1.0-1 Поиск зависимостей ... Требуется (2): libc.so.5 libncurses.so.2.0 usr / doc / cdplayer-1.0-1 usr / doc / cdplayer-1.0-1 / README USR / местные / бен / cdp USR / местные / бен / cdplay usr / местные / человек / человек1 / cdp.1 93 блока Генерация подписи: 0 Написал: /usr/src/redhat/RPMS/i386/cdplayer-1.0-1.i386.rpm Выполнение (% clean): + umask 022 + cd / usr / src / redhat / СТРОИТЬ + cd cdplayer-1.0 + выход 0 # |
После выполнения % подготовки ,
% сборка , % установка и
% проверяют разделов и обрабатывают любые специальные
файлов документации, RPM затем создает двоичный файл пакета.
В выходных данных примера мы видим, что первый об / мин
выполняет автоматическую проверку зависимостей. Это достигается путем определения
какие разделяемые библиотеки требуются исполняемым программам
содержится в упаковке.Затем RPM архивирует файлы для
упакованный, при необходимости подписывает файл пакета и выводит готовый
продукт.
Последняя часть вывода RPM подозрительно похожа на раздел в
spec-файл выполняется. В нашем примере нет
% чистый раздел. Если бы, однако, RPM
выполнили любые команды в разделе. В отсутствие
% чистый раздел , РПМ просто выдает обычный
cd команды и завершается нормально.
Опция -ba указывает RPM на выполнение
всего этапов сборки пакета. С этим
одна команда, об / мин:
Распаковывает первоисточники.
Применяет исправления (при желании).
Создает программное обеспечение.
Устанавливает программное обеспечение.
Запускает набор тестов для программного обеспечения.
Создает файл двоичного пакета.
Создает файл исходного пакета.
Это довольно много работы для одной команды! Вот он в действии:
# rpmbuild -ba cdplayer-1.0.spec * Пакет: cdplayer Выполняется (% преп): … + выход 0 Выполнение (% build): … + выход 0 Выполнение (% install): … + выход 0 Выполнение (% check): … + выход 0 Выполнение (% doc): … + выход 0 Бинарная упаковка: cdplayer-1.0-1 … Выполнение (% clean): … + выход 0 Исходный код: cdplayer-1.0-1 cdplayer-1.0.spec cdplayer-1.0.tgz 80 блоков Генерация подписи: 0 Написал: /usr/src/redhat/SRPMS/cdplayer-1.0-1.src.rpm # |
Как и в предыдущих примерах, RPM выполняет % Prep ,
% сборка , % установка и
% проверяет секций, обрабатывает любые специальные
файлы документации, создает двоичный файл пакета и очищает
после себя.
Последним шагом в процессе сборки является создание пакета с исходным кодом.
файл. Как видно из выходных данных, он состоит из файла спецификации и
первоисточники. Пакет с исходным кодом может дополнительно включать один или несколько
патч-файлы, хотя в нашем примере cdplayer
не требует.
В конце сборки с использованием опции -ba
программное обеспечение было успешно создано и упаковано как в двоичном, так и в
исходная форма.Но есть еще несколько вариантов сборки, которые мы можем
использовать. Один из них - вариант -bl :
Здесь можно указать последнюю букву при об / мин.
-b , но в отличие от других, которые указывают стадию, на которой
процесс сборки должен быть остановлен, эта опция выполняет множество проверок
в списке % файлов в указанном файле спецификации. Когда
l добавлен к rpmbuild ,
выполняются следующие проверки:
Расширяет список % файлов спецификации и
проверяет, действительно ли существует каждый указанный файл.Определяет, какие разделяемые библиотеки требуются программному обеспечению.
проверка каждого исполняемого файла в списке.Определяет, какие разделяемые библиотеки предоставляются пакетом.
Зачем нужно делать все эти проверки? Когда это будет полезно?
Имейте в виду, что должен быть сгенерирован список % файлов
вручную.Используя опцию -bl , следующие
шаги - это все, что необходимо для создания % файлов
список:
Для выполнения этих шагов может потребоваться более одной итерации, но
в конечном итоге проверка списка пройдет. Использование -bl
возможность проверить список % файлов конечно лучше
чем начать двухчасовую сборку пакета, только чтобы узнать
конец, что список содержит имя файла с ошибкой.
Вот пример действия опции -bl :
# rpmbuild -bl cdplayer-1.0.spec * Пакет: cdplayer Проверка списка файлов: cdplayer-1.0-1 Поиск зависимостей ... Требуется (2): libc.so.5 libncurses.so.2.0 # |
Трудно точно увидеть, что делает RPM на выходе, но если мы
добавьте -vv , мы можем получить немного больше информации:
# rpmbuild -bl -vv cdplayer-1.0.spec D: переключен на пакет BASE D: Источник (0) = sunsite.unc.edu:/pub/Linux/apps/sound/cds/cdplayer-1.0.tgz D: Переход к партии: 12 D: fileFile = D: переключено на пакет: (null) D: Переход к части: 2 D: fileFile = D: Переход к партии: 3 D: fileFile = D: Переход к партии: 4 D: fileFile = D: Переход к партии: 10 D: fileFile = D: переключено на пакет: (null) * Пакет: cdplayer Проверка списка файлов: cdplayer-1.0-1 D: ДОБАВЛЕНИЕ: /usr/doc/cdplayer-1.0-1 D: ДОБАВЛЕНИЕ: /usr/doc/cdplayer-1.0-1/README D: ДОБАВЛЕНИЕ: / usr / local / bin / cdp D: ДОБАВЛЕНИЕ: / usr / local / bin / cdplay D: ДОБАВЛЕНИЕ: / usr / local / man / man1 / cdp.1 D: md5 (/usr/doc/cdplayer-1.0-1/README) = 2c149b2fb1a4d65418131a19b242601c D: md5 (/ usr / local / bin / cdp) = 0f2a7a2f81812c75fd01c52f456798d6 D: md5 (/ usr / local / bin / cdplay) = d41d8cd98f00b204e9800998ecf8427e D: md5 (/usr/local/man/man1/cdp.1) = b32cc867ae50e2bdfa4d6780b084adfa Поиск зависимостей ... D: Добавление требует: libncurses.so.2.0 D: Добавление require: libc.so.5 Требуется (2): libc.so.5 libncurses.so.2.0 # |
Глядя на этот более подробный вывод, легко увидеть, что есть отличный
сделка продолжается.Некоторые из них не имеют прямого отношения к проверке
Однако % файлов список. Например, вывод
от первой строки до строки со значением *
Пакет: cdplayer , отражает обработку, которая требует
место во время сборки пакета, и его можно игнорировать.
После этого раздела находится фактический список % файлов
проверять. В этом разделе каждый файл, названный в
Список % файлов проверяется на наличие.В
фраза, ДОБАВЛЕНИЕ: , снова отражает число оборотов в минуту
корни здания пакета. При использовании опции -bl ,
однако RPM просто проверяет наличие файлов в сборке.
система. Если опция --timecheck (немного описана
позже в разделе --timecheck
- Распечатать предупреждение, если файлы для упаковки закончились
присутствуют, проверки, требуемые этой опцией, выполняются здесь, как
хорошо.
После проверки списка вычисляются контрольные суммы MD5 каждого файла.
и отображается. Хотя эта информация жизненно важна во время фактического пакета
здания, он не используется при использовании опции -bl .
Наконец, RPM определяет, в каких разделяемых библиотеках перечислены файлы.
требовать. В данном случае их всего два -
libc.so.5 и
libncurses.so.2.0. Хотя это не совсем часть
процесс проверки списка, отображение зависимостей разделяемых библиотек может
быть весьма полезным на этом этапе.Он может указать на возможные проблемы,
например, предположение, что целевые системы имеют определенную библиотеку
установлены, хотя на самом деле их нет.
До сих пор мы видели только то, что происходит, когда
% файлов список правильный. Давай посмотрим что происходит
где в списке есть проблемы. В этом примере мы добавили фиктивный
файл в список % файлов пакета:
# rpmbuild -bl cdplayer-1.0.spec * Пакет: cdplayer Проверка списка файлов: cdplayer-1.0-1 Файл не найден: / usr / local / bin / bogus Сборка не удалась. # |
Отражая больше своих корней сборки, об / мин
-bl говорит, что «сборка не удалась». Но суть в том, что
что нет такого файла, как / usr / bin / bogus. В
в этом примере мы сделали имя явно неправильным, но в более
в реальных условиях, имя, скорее всего, будет написано с ошибкой в
% файлов список.ОК, давайте исправим
Список % файлов и повторите попытку:
# rpmbuild -bl cdplayer-1.0.spec * Пакет: cdplayer Проверка списка файлов: cdplayer-1.0-1 Файл не найден: / usr / local / bin / cdplay Сборка не удалась. # |
Еще одна ошибка! В этом случае файл написан правильно, но он
не в системе сборки, хотя она должна быть. Возможно это было
удалил случайно.В любом случае давайте пересобираем софт и пробуем
очередной раз:
# rpmbuild -bi cdplayer-1.0.spec * Пакет: cdplayer Выполняется (% преп): … + выход 0 Выполнение (% build): … + выход 0 Выполнение (% install): … ln -s / usr / local / bin / cdp / usr / local / bin / cdplay … + выход 0 Выполнение (% check): … + выход 0 Выполнение (% doc): … + выход 0 # # rpmbuild -bl cdplayer-1.0.spec * Пакет: cdplayer Проверка списка файлов: cdplayer-1.0-1 Поиск зависимостей ... Требуется (2): libc.so.5 libncurses.so.2.0 # |
Готово! Мораль этой истории заключается в том, что при об / мин
-bl и исправление отмеченной ошибки не обязательно означает
ваш список % файлов готов к работе в прайм-тайм: всегда
запустите его еще раз, чтобы убедиться!
Хотя это звучит опасно, - короткое замыкание
вариант может быть вашим другом.Эта опция используется во время начального
разработка пакета. Ранее в этой главе мы исследовали
остановка процесса сборки RPM на разных этапах. С использованием
- короткозамыкание , можем запустить
процесс сборки на разных этапах.
Один раз, когда - короткое замыкание пригодится, это
когда вы пытаетесь создать программное обеспечение правильно. Подумай, что
это было бы похоже на то, что вы взламываете источники, пытаетесь
построить, получить сообщение об ошибке и еще немного взломать, чтобы исправить эту ошибку.Без - короткого замыкания вам пришлось бы:
Внесите изменения в источники.
Используйте tar для создания нового исходного архива.
Начните сборку примерно с rpmbuild -bc .
Смотрите еще одну ошибку.
Вернитесь к шагу 1.
Довольно громоздко! Поскольку процесс сборки RPM предназначен для запуска
с исходниками в исходном файле tar , если только
ваши модификации попадают в этот файл tar , они
не будет использоваться в следующей сборке.
Но есть другой способ. Просто выполните следующие действия:
Поместите исходный файл tar в пакеты RPM
Каталог ИСТОЧНИКИ.Создайте частичный файл спецификации в SPECS RPM
каталог (обязательно включите действительный Источник
линия).Выпустите rpmbuild -bp для правильного создания сборки
среда.
Теперь используйте --short-circuit для попытки компиляции.
Вот пример:
# rpmbuild -bc --short-circuit cdplayer-1.0.spec * Пакет: cdplayer Выполнение (% build): + umask 022 + cd / usr / src / redhat / СТРОИТЬ + компакт-диск cdplayer-1.0 + сделать gcc -Wall -O2 -c -I / usr / include / ncurses cdp.c gcc -Wall -O2 -c -I / usr / include / ncurses color.c gcc -Wall -O2 -c -I / usr / include / ncurses display.c gcc -Wall -O2 -c -I / usr / include / ncurses misc.c gcc -Wall -O2 -c -I / usr / include / ncurses volume.c volume.c: В функции `mix_set_volume ': volume.c: 67: предупреждение: неявное объявление функции `ioctl ' gcc -Wall -O2 -c -I / usr / include / ncurses оборудование.c gcc -Wall -O2 -c -I / usr / include / ncurses database.c gcc -Wall -O2 -c -I / usr / include / ncurses getline.c gcc -o cdp cdp.o color.o display.o misc.o volume.o hardware.o database.o getline.o -I / usr / include / ncurses -L / usr / lib -lncurses groff -Tascii -man cdp.1 | сжать> cdp.1.Z + выход 0 # |
Обычно опция -bc указывает RPM на
остановить сборку после
% build раздел spec-файла выполнен.Однако, добавив - короткозамыкание , об / мин
запускает сборку, выполнив
% построить раздел и останавливается, когда все в
% Сборка выполнена.
Есть только один другой этап сборки, который может быть
- короткое замыкание 'ред, и это этап установки.
Причина этого ограничения - затруднить обход
RPM использует чистые исходные коды.Если бы можно было
- короткое замыкание на -bb или
-ba , сборщик пакетов может пойти по "легкому" пути
и просто взламывайте дерево сборки, пока программное обеспечение
успешно, затем упакуйте взломанные исходники. Таким образом, RPM будет только
- короткое замыкание на -bc или
-bi . Больше ничего не поделаешь.
Что именно делает rpmbuild -bi --short-circuit ,
в любом случае? Как и rpmbuild -bc --short-circuit , запускается
выполняется на указанном этапе, который в данном случае
% установить .Обратите внимание, что среда сборки должна быть
готов к установке, прежде чем пытаться
- короткое замыкание на % установка
сцена. Если программное обеспечение устанавливается через , выполните установку ,
make автоматически скомпилирует программу
в любом случае.
А что будет, если среда сборки не готова и
- попытка короткого замыкания ? Посмотрим:
# rpmbuild -bi --short-circuit cdplayer-1.0.spec * Пакет: cdplayer Выполнение (% install): + umask 022 + cd / usr / src / redhat / СТРОИТЬ + компакт-диск cdplayer-1.0 / var / tmp / rpmbu01157aaa: cdplayer-1.0: нет такого файла или каталога Плохой статус выхода # |
RPM вслепую начал выполнение этапа % install ,
но внезапно остановился, когда попытался сменить каталог на
cdplayer-1.0, которого не существовало. После предоставления
описательное сообщение об ошибке, RPM завершился со статусом сбоя.Кроме
для некоторых незначительных отличий rpmbuild -bc будет иметь
потерпели неудачу точно так же.
Параметр --buildarch используется для отмены числа оборотов в минуту.
логика определения архитектуры. За вариантом следует желаемый
название архитектуры. Вот пример:
# rpmbuild -ba --buildarch i486 cdplayer-1.0.spec * Пакет: cdplayer … Бинарная упаковка: cdplayer-1.0-1 … Написал: /usr/src/redhat/RPMS/i486/cdplayer-1.0-1.i486.rpm … Написал: /usr/src/redhat/SRPMS/cdplayer-1.0-1.src.rpm # |
Мы удалили большую часть вывода RPM из этого примера, но основной
из этого примера видно, что пакет был создан для
архитектура i486, за счет включения
параметр --buildarch в командной строке. Мы можем
также обратите внимание, что RPM написал бинарный пакет в
директория по архитектуре,
/ USR / SRC / Redhat / RPMS / i486.Использование RPM
--queryformat опция подтверждает пакет
архитектура:
# rpmquery -qp --queryformat '% {arch} \ n' /usr/src/redhat/RPMS/i486/cdplayer-1.0-1.i486.rpm i486 # |
Для получения дополнительной информации о пакетах сборки для нескольких архитектур,
см. главу 19.
Параметр --buildos используется для отмены скорости вращения
логика обнаружения операционной системы.За опцией следует
желаемое имя операционной системы. Вот пример:
# rpmbuild -ba --buildos osf1 cdplayer-1.0.spec … Бинарная упаковка: cdplayer-1.0-1 … Написал: /usr/src/redhat/RPMS/i386/cdplayer-1.0-1.i386.rpm Исходный код: cdplayer-1.0-1 … Написал: /usr/src/redhat/SRPMS/cdplayer-1.0-1.src.rpm # |
В выходных данных сборки нет ничего, что явно указывало бы на сборку
Операционная система установлена на osf1 .Посмотрим, если
--queryformat сообщит нам:
# rpmquery -qp --queryformat '% {os} \ n' /usr/src/redhat/RPMS/i386/cdplayer-1.0-1.i386.rpm osf1 # |
Пакет действительно был создан для указанной операционной системы. Для
больше информации о создании пакетов для нескольких операционных систем,
см. главу 19.
Параметр --sign указывает RPM на добавление цифрового
подпись создаваемого пакета.В настоящее время это делается с помощью
PGP. Вот пример действия --sign :
# rpmbuild -ba --sign cdplayer-1.0.spec Введите парольную фразу: парольную фразу (не отображается эхом) Парольная фраза - это хорошо. * Пакет: cdplayer … Бинарная упаковка: cdplayer-1.0-1 … Генерация подписи: 1002 Написал: /usr/src/redhat/RPMS/i386/cdplayer-1.0-1.i386.rpm … Исходный код: cdplayer-1.0-1 … Генерация подписи: 1002 Написал: / usr / src / redhat / SRPMS / cdplayer-1.0-1 об / мин # |
Наиболее очевидный эффект от добавления опции --sign
к команде сборки - RPM затем запрашивает ваш закрытый ключ
кодовая фраза. После ввода ключевой фразы (которая не отображается эхом)
сборка продолжается как обычно. Единственная другая разница между этим и
не подписанная сборка состоит в том, что Generating
подпись: строк имеют ненулевое значение.
Давайте проверим только что созданные исходные и двоичные пакеты и посмотрим.
если они действительно подписаны:
# rpmsign --checksig / usr / src / redhat / SRPMS / cdplayer-1.0-1 об / мин /usr/src/redhat/SRPMS/cdplayer-1.0-1.src.rpm: размер pgp md5 OK # rpmsign --checksig /usr/src/redhat/RPMS/i386/cdplayer-1.0-1.i386.rpm /usr/src/redhat/RPMS/i386/cdplayer-1.0-1.i386.rpm: размер pgp md5 OK # |
Дело в том, что в
--checksig показывает, что пакеты
были подписаны.
Дополнительную информацию о подписании пакетов см. В главе 17.Также Приложение G
содержит информацию о получении и установке PGP.
Бывают случаи, когда может потребоваться более подробное представление
конкретной сборки. Используя опцию --test ,
это просто. Когда --test добавляется в сборку
, сценарии, которые RPM обычно использует для фактического выполнения
build, создаются и сохраняются для просмотра. Посмотрим как это
работает:
# rpmbuild -ba --test cdplayer-1.0.spec * Пакет: cdplayer # |
В отличие от обычной сборки, вывода не так много. Но
- опция test привела к сбою набора скриптов.
написано и сохранено для вас. Возникает вопрос: где они?
Если вы используете настроенный файл rpmrc,
скрипты будут записаны в каталог, указанный в
rpmrc запись tmppath . если ты
не меняли этот параметр, RPM по умолчанию записывает скрипты в
/ var / tmp.Вот они:
# ls -l / var / tmp всего 4 -rw-rw-r-- 1 root root 670 17 сен 20:35 rpmbu00236aaa -rw-rw-r-- 1 root root 449 17 сентября 20:35 rpmbu00236baa -rw-rw-r-- 1 корень root 482 17 сентября 20:35 rpmbu00236caa -rw-rw-r-- 1 root root 552 17 сентября 20:35 rpmbu00236daa # |
Каждый файл содержит сценарий, который выполняет заданную часть сборки.Вот первый файл:
#! / Bin / sh -e # Скрипт сгенерирован rpm RPM_SOURCE_DIR = "/ usr / src / redhat / ИСТОЧНИКИ" RPM_BUILD_DIR = "/ usr / src / redhat / BUILD" RPM_DOC_DIR = "/ usr / doc" RPM_OPT_FLAGS = "- O2 -m486 -fno-force-reduce" RPM_ARCH = "i386" RPM_OS = "Linux" RPM_ROOT_DIR = "/ tmp / cdplayer" RPM_BUILD_ROOT = "/ tmp / cdplayer" RPM_PACKAGE_NAME = "cdplayer" RPM_PACKAGE_VERSION = "1.0" RPM_PACKAGE_RELEASE = "1" установить -x маска 022 echo Executing (% преп) cd / usr / src / redhat / BUILD cd / usr / src / redhat / BUILD rm -rf cdplayer-1.0 gzip -dc /usr/src/redhat/SOURCES/cdplayer-1.0.tgz | tar -xvvf - если [$? -ne 0]; тогда выход $? фи компакт-диск cdplayer-1.0 cd /usr/src/redhat/BUILD/cdplayer-1.0 chown -R root.root. chmod -R a + rX, g-w, o-w. |
Как мы видим, этот скрипт содержит % prepare
раздел из файла спецификации. Сценарий начинается с определения
количество переменных среды, а затем приводит к
% преп секция.В спецификационном файле, используемом в этом
сборка, % Prep секция состоит из одного
% настройка макроса. В этом файле мы можем увидеть, как именно
RPM расширяет этот макрос. Остальные файлы следуют тому же основному
layout - раздел, определяющий переменные среды, за которым следует
команды, которые нужно выполнить.
Обратите внимание, что опция --test создаст только сценарий
файлы для каждого этапа сборки, как указано в командной строке.Для
Например, если указанная выше команда была изменена на:
# rpmbuild -bp --test cdplayer-1.0.spec # |
только один файл сценария, содержащий % Prep
команды, были бы написаны. В любом случае независимо от того, какой RPM билд
используется команда, параметр --test позволяет увидеть
что именно будет происходить во время сборки.
Опция --clean может использоваться для проверки того, что
дерево каталогов сборки пакета удаляется в конце сборки.Хотя его можно использовать на любом этапе сборки, он не всегда
есть смысл сделать так:
# rpmbuild -bp --clean cdplayer-1.0.spec * Пакет: cdplayer Выполняется (% преп): … + выход 0 Выполнение (- чистое): + cd / usr / src / redhat / СТРОИТЬ + rm -rf cdplayer-1.0 + выход 0 # |
В этом примере мы видим типичную секцию подготовки %.
выполняется.Линия
« Executing (- clean): » означает
начало активности --clean .
После смены каталога на
каталог сборки, RPM затем выполняет рекурсивное удаление на
каталог верхнего уровня пакета.
Как мы отметили выше, этот конкретный пример не имеет особого смысла.
Мы выполняем только раздел % Prep , который
создает дерево сборки пакета и с помощью
- чистка , которая его удаляет! С использованием
- очистить с опцией -bc
тоже не очень продуктивен, так как недавно созданное программное обеспечение остается в
дерево сборки.Опять же, после
--clean сделал свое дело.
Обычно опция --clean используется после того, как
программное обеспечение строится и может быть успешно упаковано. Это особенно
полезно, когда нужно собрать более одного пакета, так как
--clean гарантирует, что файловая система, содержащая
область сборки не будет заполняться деревьями сборки из каждого пакета.
Обратите внимание, что опция --clean удаляет только
файлы, которые находятся в дереве сборки программного обеспечения.Если есть
файлы, которые сборка создает вне этой иерархии, будут
необходимо написать сценарий для файла спецификации
% чистый раздел.
Параметр --buildroot может усложнить два
ситуации намного проще:
Давайте подробнее рассмотрим первую ситуацию. Скажем, для
Например, этот sendmail должен быть упакован.
В процессе создания sendmail
пакет, программное обеспечение должно быть установлено.Это означало бы, что
важные файлы sendmail, такие как
sendmail.cf и псевдонимы,
будет перезаписан. Обработка почты в системе сборки будет почти
непременно сорвется.
Во втором случае, конечно, можно установить такие разрешения, как
что пользователи без полномочий root могут устанавливать программное обеспечение, но маловероятно, что
системный администратор, стоящий их соли, сделает это. Что может быть сделано
чтобы сделать эти ситуации более разумными?
Параметр --buildroot используется для указания RPM
используйте каталог, отличный от /, в качестве "корня сборки".Эта фраза немного вводит в заблуждение, поскольку корень сборки
, а не корневой каталог, в котором программное обеспечение
построено. Скорее, это корневой каталог для фазы установки
сборка. Если корень сборки не указан, программное обеспечение
packaged устанавливается относительно корневого каталога системы сборки
"/".
Однако недостаточно просто указать корень сборки в команде
линия.Файл спецификации для пакета должен быть настроен для поддержки сборки
корень. Если вы не внесете необходимые изменения, это то, что вы
видеть:
# rpmbuild -ba --buildroot / tmp / foo cdplayer-1.0.spec Пакет не может делать префиксы сборки Сборка не удалась. # |
Глава 16 содержит полные инструкции по
модификации, необходимые для настройки пакета для использования альтернативного
build root, а также методы, позволяющие пользователям создавать пакеты
без рут-доступа.Предполагая, что необходимые модификации имеют
Сделано, вот как будет выглядеть сборка:
# rpmbuild -ba --buildroot / tmp / foonly cdplayer-1.0.spec * Пакет: cdplayer Выполняется (% преп): + cd / usr / src / redhat / СТРОИТЬ … + выход 0 Выполнение (% build): + cd / usr / src / redhat / СТРОИТЬ + компакт-диск cdplayer-1.0 … + выход 0 Выполнение (% install): + umask 022 + cd / usr / src / redhat / СТРОИТЬ + компакт-диск cdplayer-1.0 + сделать ROOT = / tmp / только для установки установить -m 755 -o 0 -g 0 -d / tmp / foonly / usr / local / bin / установить -m 755 -o 0 -g 0 cdp / tmp / foonly / usr / local / bin / cdp rm -f / tmp / foonly / usr / local / bin / cdplay ln -s / tmp / foonly / usr / local / bin / cdp / tmp / foonly / usr / local / bin / cdplay установить -m 755 -o 0 -g 0 -d / tmp / foonly / usr / local / man / man1 / установить -m 755 -o 0 -g 0 cdp.1 /tmp/foonly/usr/local/man/man1/cdp.1 + выход 0 Выполнение (% check): + umask 022 … + выход 0 Выполнение (% doc): + cd / usr / src / redhat / СТРОИТЬ + компакт-диск cdplayer-1.0 + DOCDIR = / tmp / foonly // usr / doc / cdplayer-1.0-1 + rm -rf /tmp/foonly//usr/doc/cdplayer-1.0-1 + mkdir -p /tmp/foonly//usr/doc/cdplayer-1.0-1 + cp -ar README /tmp/foonly//usr/doc/cdplayer-1.0-1 + выход 0 Бинарная упаковка: cdplayer-1.0-1 Поиск зависимостей ... Требуется (2): libc.so.5 libncurses.so.2.0 usr / doc / cdplayer-1.0-1 usr / doc / cdplayer-1.0-1 / README USR / местные / бен / cdp USR / местные / бен / cdplay usr / местные / человек / man1 / cdp.1 93 блока Генерация подписи: 0 Написал: /usr/src/redhat/RPMS/i386/cdplayer-1.0-1.i386.rpm Выполнение (% clean): + umask 022 + cd / usr / src / redhat / СТРОИТЬ + компакт-диск cdplayer-1.0 + выход 0 Исходный код: cdplayer-1.0-1 cdplayer-1.0.spec cdplayer-1.0.tgz 82 блока Генерация подписи: 0 Написал: /usr/src/redhat/SRPMS/cdplayer-1.0-1.src.rpm # |
Как видно из несколько отредактированных выходных данных, % prepare ,
% строят и % устанавливают секций
выполняются в обычном каталоге сборки RPM.Тем не менее
--buildroot опция вступает в игру, когда
сделать установку выполнено. Как видим,
ROOT Переменная
установлена на
/ tmp / foonly - значение, следующее за
--buildroot в командной строке. С этого момента
on, мы видим, что make заменили новую сборку
корневое значение на этапе установки.
Корень сборки также используется при установке файлов документации.Каталог документации cdplayer-1.0-1:
создан в / tmp / foonly / usr / doc, а
В него помещается файл README.
Единственная оставшаяся разница, возникающая в результате использования
--buildroot , это то, что файлы, которые будут включены в
бинарный пакет не расположен относительно корня системы сборки
каталог. Вместо этого они расположены относительно корня сборки
/ tmp / foonly. Результирующий двоичный файл и исходный код
файлы пакетов функционально эквивалентны пакетам, созданным без
использование - buildroot .
Использование
--buildroot Can Bite You!
Хотя опция --buildroot может решить некоторые
проблемы, использование корня сборки может быть опасным. Как?
Рассмотрим следующую ситуацию:
В файле спецификации настроен корень сборки
/ tmp / blather, например.В секции % Prep
, есть rm -rf $ RPM_BUILD_ROOT
команда для очистки любого старого установленного программного обеспечения.Вы решили собрать программное обеспечение так, чтобы оно устанавливало относительную
в корневой каталог вашей системы, поэтому вы вводите следующий
команда: « rpmbuild -ba --buildroot / foo.spec ».
Конечный результат? Поскольку указание "/" в качестве
корень сборки устанавливает $ RPM_BUILD_ROOT
в
"/", этот безобидный маленький rm -rf
$ RPM_BUILD_ROOT
превращается в rm -rf
/ ! Рекурсивное удаление, начиная с корня вашей системы
каталог, может не быть полной катастрофой, если вы его быстро поймаете,
но в любом случае вы будете проверять свою способность восстанавливать из
резервное копирование ... Эээ, у вас , есть ли у резервные копии, не надо
Вы?
Мораль этой истории - быть очень осторожным
при использовании --buildroot .Хорошее практическое правило:
чтобы всегда указывать уникальный корень сборки. Например, вместо
указание / tmp в качестве корня сборки (и, возможно,
потеряв системный каталог для хранения временных файлов), используйте
путь / tmp / mypackage, где каталог
mypackage используется только тем пакетом, который вы
строительство.
Хотя можно обнаружить много ошибок в
% файлов список с использованием rpmbuild -bl , там
- это еще один тип проблемы, которую невозможно обнаружить.Рассмотрим
следующий сценарий:
Пакет, который вы создаете, создает файл
/ usr / bin / foo.Из-за проблемы с make-файлом пакета,
foo никогда не копируется в
/ usr / bin.Старая несовместимая версия foo,
создан несколько месяцев назад, уже существует в
/ usr / bin.RPM создает файл двоичного пакета.
Несовместимый / usr / bin / foo включен в
упаковка? Вы держите пари, что это так! Если бы только был способ RPM поймать
такого рода проблемы ...
Ну есть! Добавив --timecheck , а затем
число, RPM проверит каждый упаковываемый файл, чтобы убедиться, что файл
старше указанного количества секунд.Если это так, предупреждение
отображается сообщение. Опция --timecheck работает
с -ba или -bl
параметры. Вот пример использования -bl :
# rpmbuild -bl --timecheck 3600 cdplayer-1.0.spec * Пакет: cdplayer Проверка списка файлов: cdplayer-1.0-1 предупреждение: сбой TIMECHECK: /usr/doc/cdplayer-1.0-1/README Поиск зависимостей ... Требуется (2): libc.так.5 libncurses.so.2.0 # |
В этом примере файл
/usr/doc/cdplayer-1.0-1/README больше 3600
секунды или один час назад. Если мы посмотрим на файл, мы найдем
что это:
# ls -al /usr/doc/cdplayer-1.0-1/README -rw-r - r-- 1 root root 1085 10 ноября 1995 г. README # |
В данном случае предупреждение от
--timecheck не является поводом для тревоги.Поскольку
README файл был просто скопирован с оригинала
источник, который был создан 10 ноября 1995 года, его дата не изменилась.
Если бы файл был исполняемым файлом или библиотекой, предположительно
построено недавно, предупреждение --timecheck должно быть
воспринимается более серьезно.
Если вы хотите установить значение проверки времени по умолчанию на один час, вы можете
включите следующую строку в свой файл rpmrc:
Это значение может быть заменено значением в командной строке, если
желанный.Для получения дополнительной информации об использовании
rpmrc, см. Приложение B.
В отличие от большинства других команд RPM, здесь нет -v
вариант для rpmbuild . Это потому, что команда
по умолчанию должен быть подробным. Однако можно получить еще больше информации.
получается добавлением -vv . Вот пример:
# rpmbuild -bp -vv cdplayer-1.0.spec D: переключен на пакет BASE D: Источник (0) = солнце.unc.edu:/pub/Linux/apps/sound/cds/cdplayer-1.0.tgz D: Переход к партии: 12 D: fileFile = D: переключено на пакет: (null) D: Переход к части: 2 D: fileFile = D: Переход к партии: 3 D: fileFile = D: Переход к партии: 4 D: fileFile = D: Переход к партии: 10 D: fileFile = D: переключено на пакет: (null) * Пакет: cdplayer D: РАБОТАЕТ:% преп. Выполняется (% преп): + umask 022 + cd / usr / src / redhat / СТРОИТЬ + cd / usr / src / redhat / СТРОИТЬ + rm -rf cdplayer-1.0 + gzip -dc /usr/src/redhat/SOURCES/cdplayer-1.0.тгз + tar -xvvf - drwxrwxr-x root / пользователи 0 4 августа 22:30 1996 cdplayer-1.0 / -rw-r - r-- root / users 17982 10 ноября 01:10 1995 cdplayer-1.0 / КОПИРОВАНИЕ … -rw-r - r-- root / users 1515 10 ноября 01:10 1995 cdplayer-1.0 / volume.h + [0 -ne 0] + компакт-диск cdplayer-1.0 + компакт-диск /usr/src/redhat/BUILD/cdplayer-1.0 + chown -R root.root. + chmod -R a + rX, g-w, o-w. + выход 0 # |
Большая часть вывода, генерируемого параметром -vv , является
предшествует D: .В этом примере
дополнительный вывод представляет внутреннюю обработку RPM во время
начало процесса сборки. Использование опции -vv
с другими командами сборки будет производить другой результат.
Как мы упоминали выше, команда сборки обычно многословна. В
- опция может использоваться для сокращения
вывод команды:
# rpmbuild -ba --quiet cdplayer-1.0.spec * Пакет: cdplayer volume.c: В функции `mix_set_volume ': volume.c: 67: предупреждение: неявное объявление функции `ioctl ' 90 блоков 82 блока # |
Это полный результат сборки пакета
CD-плеер. Обратите внимание, что предупреждающие сообщения (на самом деле,
все, что отправлено на стандартный вывод), все еще печатаются.
Параметр --rcfile используется для указания файла.
содержащий настройки по умолчанию для RPM.Обычно этот вариант не работает.
нужный. По умолчанию RPM использует / etc / rpmrc и
файл с именем .rpmrc, расположенный в вашем логине
каталог.
Эта опция использовалась бы при необходимости переключения между
несколько наборов значений RPM по умолчанию.